1. 類中變量的分類this
1)局部變量:在方法中定義的變量spa
2)成員變量:類的屬性code
3)類變量:靜態變量,用static修飾對象
2. 關於構造方法blog
每一個類都有一個構造方法,沒寫的,默認有一個空的構造方法。同時,構造方法能夠重載(同名但參數列表不一樣)。繼承
3. 關於final教程
修飾類:該類沒法被繼承接口
修飾方法:該方法沒法被覆蓋或者說重寫(子類本身再寫一個相同的方法)作用域
修飾屬性:常量get
4. 引用和對象實例
【類名】【對象名】 = new 【類名】();
其中,「【類名】【對象名】」只是建立了一個對象的引用,而「new 【類名】();」 纔是在堆區中建立了對象。因此,
Object o1 = new Object(); Object o2 = o1; // 只是起了一個別名
以上操做並不會建立連個對象,而是兩個引用指向了同一個對象。
5. 權限修飾符
權限 | 本類 | 同包 | 子類 | 其餘 |
private | ● | |||
默認 | ● | ● | ||
protected | ● | ● | ● | |
public | ● | ● | ● | ● |
利用權限封裝:先將屬性用private修飾,而後使用建立相應的get和set方法。
6. 關於this
避免因爲和成員變量重名而發生的衝突。
public class DemoClass { privated int x = 1; public void setX(int x) { this.x = x; } }
7. 關於繼承
使用關鍵字extends父類,可使用除privated外父類全部的屬性和方法,同時子類還能夠重寫父類的方法。Java中的繼承方式是單繼承,同時引入接口interface彌補單繼承的不足之處。
8. 關於super
1)訪問父類的方法和屬性時加用「super.XXX」;
2)調用父類的構造方法時,在子類的第一行添加「super()」方法。
9. 關於重載和重寫
1)重載:同一個類中,方法名相同,可是參數列表相同;
2)重寫:子類繼承父類時,寫一個和父類徹底相同的方法,調用時,優先使用子類本身定義的方法。
10. 向上轉型和向下轉型
1)向上轉型:父類對象引用指向子類對象,該引用不能訪問子類獨有的屬性和方法,同時優先訪問子類重寫過的方法;
2)向下轉型:建立一個子類的對象引用,並指向向上轉型過的對象。
// 《菜鳥教程》的一個實例
public class Test { public static void main(String[] args) { show(new Cat()); // 以 Cat 對象調用 show 方法 show(new Dog()); // 以 Dog 對象調用 show 方法 Animal a = new Cat(); // 向上轉型 a.eat(); // 調用的是 Cat 的 eat Cat c = (Cat)a; // 向下轉型 c.work(); // 調用的是 Cat 的 work } public static void show(Animal a) { a.eat(); // 類型判斷 if (a instanceof Cat) { // 貓作的事情 Cat c = (Cat)a; c.work(); } else if (a instanceof Dog) { // 狗作的事情 Dog c = (Dog)a; c.work(); } } } abstract class Animal { abstract void eat(); } class Cat extends Animal { public void eat() { System.out.println("吃魚"); } public void work() { System.out.println("抓老鼠"); } } class Dog extends Animal { public void eat() { System.out.println("吃骨頭"); } public void work() { System.out.println("看家"); } }
11. 抽象類
1)用關鍵字abstract修飾抽象方法和和抽象名;
2)抽象類能夠包含普通方法,能夠不包含抽象方法,但有抽象方法的必定是抽象類。
public abstract Demo{ public abstract void fun(){ } }
12. 關於接口
1) 不能用於實例化對象;
2) 接口中的方法有抽象方法(能夠不加abstract修飾符,默認就是抽象方法)、default方法(加default修飾符,至關於類中的普通方法)和靜態方法(調用時使用「【類名】.【方法名】」);
3) 成員變量是static final類型;
4)一個接口能夠繼承多個接口,一個類也可使用多個接口。
13. 關於內部類
1)成員內部類:至關於一種特殊的成員變量;能夠直接訪問外部類的屬性和方法,反之不行,遇到屬性和方法相同時,優先用本身的,也能夠藉助this用外部的;沒法擁有static屬性和方法;
2)靜態成員類(嵌套類):成員內部類用static修飾;
3)局部內部類:定義在方法和做用域內的內部類;
4)匿名內部類:沒有名字的內部類,用於簡化代碼,只能用一次。