面向對象

面線對象三個基本特征:繼承,封裝,多態。

繼承:子類繼承父類,子類獲得父類的屬性和方法。

封裝:將客觀事物封裝成抽象的類,并且只能讓特定的對象操作。

多態:一個類實例的相同方法在不同情形有不同的表現形式。


多態的兩種實現方式:重載和重寫。

重載(Overload):是一個類中多態性的一種表現,方法名必需相同,參數列表必需不同.(長度不同或類型不同),與返回值類型沒有關系.構造器也可以重載.方法名和類名相同,參數不同. Overloaded的方法是可以改變返回值的類型。

重寫(Override):是父類與子類之間多態性的一種表現。如果在子類中定義某方法與其父類有相同的名稱和參數,我們說該方法被重寫。


抽象和接口

抽象和抽象方法:abstract

1.抽象類和抽象方法都是通過abstract關鍵字修飾。

2.抽象類不能實例化。抽象類中可以沒有、有一個或者多個抽象方法,甚至全部方法都可以是抽象方法。

3.抽象方法只有方法聲明,沒用方法實現。有抽象方法的類必須聲明為抽象類。子類必須重寫所有的抽象方法才能實例化,否則子類還是一個抽象類。

接口:interface定義了一套標準(方法),這些方法通常都是沒有實現的,類可以來實現這些方法來支持(implements)這個標準

特點:

1.接口不能被實例化

2.一個類只能有一個父類,但是可以實現多個接口

3.接口不能有實例變量,但是可以有static final變量

4.接口的方法都是抽象方法 - 靜態(public static)和default方法除外

5.接口可以沒有任何方法

6.接口可以有屬性,但屬性默認是public static和final

接口和抽象的區別:

1.接口只能做方法申明,抽象類可以做方法申明,也可以做方法實現。

2.接口要被類實現,抽象類要被子類繼承。

3.接口可以繼承接口,并可以多繼承接口,但類只能單個繼承。

4.接口定義的變量只能是公共的靜態的常量,抽象類中的變量是普通變量。


常用關鍵字:

static:

1.變量:被static修飾的變量叫做靜態變量(類變量),沒有被修飾的叫實例變量。

區別:靜態變量在內存中只有一份拷貝,JVM只為靜態分配一次內存,在加載過程中完成靜態變量的內存分配,直接通過類名訪問。

? ? ? ? ? 實例變量,每創建一個實例,就會為實例變量分配一次內存,實例變量可以在內存中多個拷貝,互不影響。

2.靜態方法:靜態方法可以直接通過類名調用,任何的實例也都可以調用。

因此靜態方法中不能用this和super關鍵字,不能直接訪問所屬類的實例變量和實例方法(就是不帶static的成員變量和成員成員方法),只能訪問所屬類的靜態成員變量和成員方法

3.static代碼塊:static代碼塊也叫靜態代碼塊,是在類中獨立于類成員的static語句塊,可以有多個,位置可以隨便放,它不在任何的方法體內,JVM加載類時會執行這些靜態的代碼塊,如果static代碼塊有多個,JVM將按照它們在類中出現的先后順序依次執行它們,每個代碼塊只會被執行一次

利用靜態代碼塊可以對一些static變量進行賦值。

final:

final用于聲明屬性,方法和類,分別表示屬性不可變。

修飾類:不能被繼承;修飾方法:不能被重寫;修飾變量:不能被修改,是常量

synchronized線程、同步:

1.synchronized 關鍵字可以應用于方法或語句塊,并為一次只應由一個線程執行的關鍵代碼段提供保護。

2.synchronized 關鍵字可防止代碼的關鍵代碼段一次被多個線程執行。

3.如果應用于靜態方法,那么,當該方法一次由一個線程執行時,整個類將被鎖定。

4.如果應用于實例方法,那么,當該方法一次由一個線程訪問時,該實例將被鎖定。

5.如果應用于對象或數組,當關聯的代碼塊一次由一個線程執行時,對象或數組將被鎖定。

this:

this關鍵字必須放在非靜態方法里面

this關鍵字代表自身,在程序中主要的使用用途有以下幾個方面:

1. 使用this關鍵字引用成員變量

2.使用this關鍵字在自身構造方法內部引用其它構造方法

3.使用this關鍵字代表自身類的對象

4. 使用this關鍵字引用成員方法

修飾符:

default不加 - 在自己的package里面可用

public - 所有地方都可以用

private - 只有在自己的類里面可用

protected - 在子類和當前package




常見面試題:

1.談談final, finally, finalize的區別。

2.Overload和Override的區別。Overloaded的方法是否可以改變返回值的類型?(可以)

3.接口和抽象的區別。

4.構造器 Constructor 是否可被 Override?

:構造器 Constructor 不能被繼承,因此不能重寫 Override,但可以被重載 Overload。

5. 兩個對象值相同(x.equals(y) == true),但卻可有不同的 hash code,這句 話對不對?

答:不對,如果兩個對象 x 和 y 滿足 x.equals(y) == true,它們的哈希碼(hash code)應當相同。(要擴展)

(1)如果兩個對象相同(equals 方法返回 true ),那么它們的 hashCode 值一定要相同;

(2)如果兩個對象的 hashCode相同,它們并不一定相同。當然,你未必要按照要求 去做,但是如果你違背了上述原則就會發現在使用容器時,相同的對象可以出現在 Set 集合中,同時增加新元素 的效率會大大下降(對于使用哈希存儲的系統,如果哈希碼頻繁的沖突將會造成存取性能急劇下降)

6.java 中實現多態的機制是什么?

答:靠的是父類或接口定義的引用變量可以指向子類或具體實現類的實例對象,而程序調用的方法在運行期才動態綁定,就是引用變量所指向的具體實例對象的方法,也就是內存里正在運行的那個對象的方法,而不是引用變量的類型中定義的方法

7.關于static和this的題:

public class This{

static int value = 9; //注意value是靜態的成員變量

public static void main(String[] args) throws Exception{

new This().printValue();

}

private void printValue(){

int value = 69;

System.out.println(this.value);

System.out.println(value);

}}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,327評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,996評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,316評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,406評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,128評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,524評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,576評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,759評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,310評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,065評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,249評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,821評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,479評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,909評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,140評論 1 290
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,984評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,228評論 2 375

推薦閱讀更多精彩內容