一、this和super各有幾種用法?
用法一:表示當前物件引用,常用於形參或區域性變數與類的成員變數同名的清醒,使用this.成員名表示這是當前物件的成員。
public
class
fighterplane1
public statics void
main
(string args)
}
this(引數),引起過載的構造方法。
this指代當前的類生成的物件。(書本p75頁)
二、子類物件例項化的具體過程是什麼?
子類物件例項化按照以下步驟:
為子類物件分配記憶體空間,對域變數進行預設初始化。靜態屬性若不賦初值,也在此時進行初始化。
繫結構造方法,將new物件中的引數傳遞給構造方法的形式引數。
呼叫this或super語句,注意二者必居其一,但不能同時存在,執行流程在書本p80頁。
進行例項變數的顯式初始化操作。
執行當前構造方法體中的程式**。
三、類的域變數和方法中定義的區域性變數在初始化上有何區別?
類的域變數可以不賦初值,其在生成物件時會進行預設初始化;方法中的區域性變數,若未賦初值,編譯時會提示。
四、模仿形成抽象類的過程,自選角度,形成乙個自己的抽象類,並在程式的類繼承和引用中體現抽象類的作用。
五、介面有什麼用?自己定義乙個介面,並給出實現類和使用類。
六、抽象類和介面的異同點是什麼?
同:都通過派生的子類來實現自己內部的功能。不能有自己的物件。都具有繼承性。
異:抽象類中的屬性可以有域變數,但介面中的屬性只能是靜態常量。抽象類可以有子物件,但介面和子介面都不能有自己的例項物件,他們只能被類繼承後生成類物件;抽象類當中可以有非抽象的方法,可以有零個或多個抽象方法,但介面當中只能有抽象方法。
七、引用比較方法有哪些?
equals:equals方法是object的方法,因此一般情況下所有類的物件都可以利用它進行比較判斷是否指向同乙個物件。
「==」:兩邊若是物件引用則比較是否指向同乙個物件,若是數值,則比較數值是否相等。
(string模擬較特殊,string a,需要通過雙等號來判斷是否指向同乙個物件,equals方法被覆蓋,用來判斷值是否相等。)
instanceof:判斷物件是哪個類的。
八、內部類的作用是什麼?什麼情況下使用匿名內部類?
內部類就是在某個類的內部定義乙個類,被內部類嵌入的類成為外部類。將乙個類中的一些屬性或方法對其他類進行封裝,而只對乙個類開放時,應該用內部類。
所謂的匿名內部類就是在類中需要例項化這個類的地方,定義乙個沒有名稱的類。
方法一:
new 類a()
方法二:
new 介面a()
九、d。
十、什麼是資料隱藏?如何證明子類對父類同名方法進行重新定義,只能是方法的覆蓋,不是方法的隱藏?
將資料設定為private屬性,只有本類中可以訪問。看能不能通過物件呼叫方法,若不能呼叫方法,說明方法被設定為private屬性,不能在類外被呼叫。
十一、前四句對後,後四句錯。
第六章作業
例題6.1 舉例說明了指標的幾種表示形式,p指向指標指向的變數,p指向該變數的儲存位址,例題6.1 指標的幾種形式 自動化1121 李慶典 include 預編譯處理命令 using namespace std 標準名字空間 int main q 0 cout string1 is cout 例題6...
第六章作業
6.12 要求 1 建立基類area cl的兩個派生類rectangle與isosceles,讓每乙個派生類都包含乙個函式area 分別用來返回矩形與三角形的面積。用建構函式對height與width進行初始化。2 寫出主程式,用來求height與width分別為10.0與5.0的矩形面積,以及求h...
作業第六章
一簡答題 1.說明在迴圈結構中break和continue語句的區別。答 break語句 用於終止某個迴圈,程式跳轉到迴圈體外的下一條語句。continue語句 用於跳出本次迴圈,進入下一次迴圈。2.使用for迴圈結構實現 從鍵盤上輸入接收從周一到周五每天學習時間 以小時為單位 並計算每日平均學習時...