Java基礎練習2(構造方法)
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(構造方法)