第五次作業

2021-10-14 16:07:01 字數 2107 閱讀 5697

1.this和 super各有幾種用法?

this

當成員變數和區域性變數重名時,在方法中使用this時,表示的是該方法所在類中的成員變數。(this是當前物件自己)

把自己當作引數傳遞時,也可以用this.(this作當前引數進行傳遞)

當在匿名類中用this時,這個this則指的是匿名類或內部類本身。這時如果我們要使用外部類的方法和變數的話,則應該加上外部類的類名

在建構函式中,通過this可以呼叫同一類中別的建構函式

this同時傳遞多個引數

super

super有三種用法

super.***;

***可以是類的屬性。

例如super.name;即從子類中獲取父類name屬性的值

super.***();

***()可以是類中的方法名。

super.***();的意義是直接訪問父類中的***()方法並呼叫

super.***();

此方法意義是直接呼叫父類的建構函式。

super(無參/有參)即呼叫父類中的某個構造方法,括號裡的內容根據你所呼叫的某個建構函式的變化而改變

2.子類物件例項化的具體過程是什麼?

(1)子類在構造物件時候,必須訪問父類的建構函式,為了完成這個必須的動作,就在子類的建構函式中加入了super()語句。

(2)如果父類中沒有定義空引數建構函式,那麼子類的建構函式必須用super明確要呼叫父類中哪個建構函式,否則子類無法完成初始化。

(3)在建構函式生效之前,程式會先執行靜態的成員活方法的初始化。

3.類的域變數和方法中定義的區域性變數在初始化上有何區別?

類的域變數在類初始化的時候就開始建立了,而方法中的變數是在呼叫到該方法時,才會為該變數建立。

4.模仿形成抽象類的過程,自選角度,形成乙個自己的抽象類,並在程式的類繼承和引用中體現抽象類的作用。

abstract class animal

public int geta()

public void seta(int a)

}class dog extends animal

}public class test

}5.介面有什麼作用?自己定義乙個介面,並給出實現類和使用類。

inte***ce a

class b implements a

}public class test

}6.抽象類與介面的異同點是什麼?

相同點:

(1)不能直接例項化,如果要例項化,抽象類變數必須指向實現所有抽象方法的子類物件,介面變數必須指向實現所有介面方法的類物件。

(2)都有自己的宣告,可以引用子類或實現類物件

不同點 :

(1)抽象類可以有域變數,介面沒有,只能是靜態常量。

(2)抽象類可以有具體方法;介面全是抽象方法。

(3)抽象類實現靠子類繼承,介面靠實現類。

7.引用比較方法有哪些?

(1)equals方法比較。

(2)使用「==」進行比較。

(3)使用instance of比較引用型別

8.內部類的作用是什麼?什麼情況下使用匿名內部類?

作用:(1)內部類可以很好的實現隱藏。一般的非內部類,是不允許有 private 與protected許可權的,但內部類可以。

(2)內部類擁有外圍類的所有元素的訪問許可權。

(3)可是實現多重繼承。

(4)可以避免修改介面而實現同乙個類中兩種同名方法的呼叫。

匿名內部類:

匿名內部類是內部類的一種特殊情況。它只有乙個例項,而且沒有引用。所以,一般在能用內部類實現,但是例項只用一次的情況下使用它(可以減少資源開銷)。

9.什麼是資料隱藏?如何證明子類對父類同名方法進行重新定義,只能是方法的覆蓋而不是方法的隱藏?

(1)在子類對父類的繼承中,如果子類的成員變數和父類的成員變數同名,此時稱為子類隱藏(override)了父類的成員變數。

(2)覆蓋:子類重寫父類的方法,要求方法名和引數型別完全一樣(引數不能是子類),返回值和異常比父類小或者相同(即為父類的子類),訪問修飾符比父類大或者相同。

隱藏:父類和子類擁有相同名字的屬性或者方法( 方法隱藏只有一種形式,就是父類和子類存在相同的靜態方法)時,父類的同名的屬性或者方法形式上不見了,實際是還是存在的。

第五次作業

一 問題及 include using namespace std class time void add a minute void add an hour void add seconds int n void add minutes int n void add hours int n voi...

第五次作業

當我們在討論多型性的時候,通常會用過載函式進行舉例,而這次發現的問題主要在過載運算子上,因此我希望通過對過載運算子的測試來得出乙個結論。我們想知道為什麼前置運算子和後置運算子會有區別,因此設計了乙個實驗來證明它 得到最終結果如預期那樣。通過這次作業,我能感受到前置和後置運算子的區別,通過x 和y x...

第五次作業

insert into student sno,sname,s sdept,sage values 201215128 陳冬 男 is 18 建表時規定學號唯一,而在建表時已經加入了該學號,所以不能有兩個相同學號。3.70 insert into student sno,sname,s sdept,...