1. 程式人生 > >Java基礎練習2(構造方法)

Java基礎練習2(構造方法)

family static 存在 聲明 public pan jvm super() java基礎

1.以下關於面向對象概念的描述中,不正確的一項是()

A.在構造方法中,this()只能出現在構造方法第一行位置

B.在構造方法中,super()只能出現在構造方法第一行位置

C.this()和super()可以同時出現在同一個構造方法中,this()指代調用本類中其他構造方法,super()指代調用父類構造方法

D.this()和super()不能同時出現在同一個構造方法中,否則編譯器會報錯

答案:C

解析:this()和super()不能同時出現在一個構造函數裏面,因為this()和super()會爭搶第一行的位置,並且都必須放在第一行位置,所以在同一個構造函數裏面不能同時出現shit()和super(),否則編譯器也不會通過

2.以下程序的輸出結果是:()

class Super {
      public Super() {
            System.out.println("Super ");
      }
}

public class Sub extends Super{
      public Sub() {
              System.out.println("Sub");
      }

      public static void main(String[] args) {
              Super fc = new
Super(); Sub cc = new
Sub(); } }

A.Super B.Super C.Sub D.Super

Super Sub Super Sub

Sub Sub

答案:A

解析:子類繼承父類,先構造父類構造方法,再構造自己的構造方法,子類構造方法中默認有super(),且位於第一行

每日筆記:

  構造方法和成員方法的區別:

   1) 業務方面:

    構造器: 是描述"對象創建"過程, 如: 創建一個Student

     方法: 是描述對象的行為, 對象的功能, 如: 學生學習 study()

   2) 語法層面:

    構造器: 構造器名字與類名一致, 不能定義返回值

    方法: 名字一般與類名不同, 一定聲明返回值C

   3) 使用:

    構造器是使用 new 調用構造器. 如: new Student()

     方法則是使用對象的引用調用. 如:stu.study()

    方法簽名=方法名+參數類型列表,java同一個類中不能存在相同方法簽名的方法

  4)默認構造器:java類一定有構造器

    當使用new 關鍵字時,JVM必定調用構造方法創建對象

     如果類沒有聲明任何構造器,javac自動提供一個無參默認,而如果你自己建了一個有參的構造方法,那麽就不會再提供默認的無參構造了

Java基礎練習2(構造方法)