Java Se 基礎系列(筆記),javase
記錄所學到的關於Java Se的一些基礎知識
1.對象是通過“屬性(成員變數)”和“方法”來分別對應事物所具有的靜態屬性和動態屬性
2.類(Class)是對某一類事物的抽象,對象(Object)為某個類的具體執行個體(Instance)
3.物件導向的思維:考慮問題裡頭有哪些類哪些對象,考慮它們應該具有哪些屬性和方法,再考慮類和類之間具備了什麼關係
4.成員變數和局部變數的區別:
-1 位於類體中方法體外的為成員變數,方法體內的為局部變數
-2 在定義成員變數時可對其進行初始化,如果不初始化,java會使用預設的值(0/null)對其初始化;局部變數不會被預設初始化所以必須自己去初始化
5.參考型別佔兩塊記憶體(new出來的東西在heap中,局部變數位於stack,靜態變數和字串常量在dataseg區)
Person p = new Person("聖誕");class Person { String name = null; public Person(String name) { this.name = name; }}
6.同一類中的每個對象有不同的成員變數儲存空間,同一類的每個對象共用該類的方法
7.類名首字母大寫,變數名和方法名首字母小寫
8.this是指向自身的引用
9.在類中,用static聲明的成員變數為靜態成員變數,為該類的公用變數,對該類的所有對象來說static成員變數只有一份;用static聲明的方法為靜態方法,不再針對於某個對象調用而且在靜態方法中不能訪問非靜態變數。(靜態變數和靜態方法可以不用建立對象就調用(也可通過類名進行調用),非靜態變數和方法必須建立對象後才能被調用)
10.java 許可權修飾符(對class(除了內部類)的許可權只能用public和default。-1.public類可以在任意地方被訪問 -2.default類只可以被同一個包內部的類訪問)
| |
類內部 |
同一個包 |
子類 |
任何地方 |
| private |
√ |
|
|
|
| default(沒寫修飾符) |
√ |
√ |
|
|
| protected |
√ |
√ |
√ |
|
| public |
√ |
√ |
√ |
√ |
11.繼承
-1 子類構造過程中必須調用父類(基類)的構造方法
-2 子類在自己的構造方法中使用super(argument_list)來調用父類的構造方法,並且必須寫在子類構造方法的第一行;使用this(argument_list)來調用本類的另外的構造 方法
-3 如果子類構造方法中沒有顯示調用基類的構造方法系統會預設調用基類的無參數構造方法;若既無顯式調用而基類中又無無參數的構造方法則編譯出錯
12.對象轉型
-1 一個父類的參考型別變數可以"指向"其子類的對象
-2 一個父類的引用不可以訪問其子類對象新增加的屬性和方法
-3 可用: 對象名 instanceof 類名 來判斷該對象是否屬於該類或該類的子類
13.多態(也叫動態綁定)
多態存在的3個必要條件:1.繼承 2.方法重寫 3.父類引用指向子類對象
14.抽象類別:
- 含有抽象方法的類必須聲明為抽象類別
- 抽象類別必須被繼承,抽象方法必須被重寫,抽象類別不能被執行個體化,抽象方法只需聲明不需實現
15.final
1.final的變數的值不能被改變 2.final方法不能被重寫 3.final類不能被繼承
16.介面(從本質上講,介面是一個特殊的抽象類別,該類中只包含常量和方法的定義,沒有變數也沒有方法的實現)
- 介面的特性
-1 介面中聲明的屬性預設為public static final(能且只能是public static final),可省略不寫
-2 介面中只能定義抽象方法,這些方法同樣能且只能是public static final
-3 介面可以繼承其他介面並添加新的屬性和抽象方法
-4 介面可以繼承介面,類可以繼承類,類實現介面
- 與繼承關係相似,介面與實作類別之間存在多態性