java面向對象學習筆記

1.類和對象:類可以看成是一類對象的模板,對象可以看成是該類的一個具體實例.

2.類(對象)之間的關係:聚合,繼承,實現,多態.

3.內存區分:  類是靜態概念,代碼區;  對象是new出來的,位於堆內存

4.構造方法(函數):(1)與類同名且沒有返回值

                            (2)用來初始化對象的函數

                             (3)new+構造方法,創建一個新的對象

5.命名規則:類名的首字母大寫,變量名和方法首字母小寫,運用駝峯標識

6.棧內存存入一個引用指向堆內存

7.方法重載(OverLoad):相同名字,相同返回類型,當參數不同(個數不同或類型不同),的多個方法

8.static:用static聲明的成員變量稱爲靜態的成員變量,公用變量,對於該類的所有對象來說static成員變量只有一份

             用static聲明的方法稱爲靜態方法,在調用該方法時不會將對象的引用傳遞給他,所以static方法中不能訪問非 

                  static的成員

            可以通過對象引用或類名(不需要實例化)訪問靜態成員

9.訪問控制:

10.方法重寫(OverRide):在子類中可以根據需要對父類中繼承來的方法進行重寫

11.equals:Object的equals方法定義爲:x.equals(y)當x和y是同一對象的引用時返回true否則返回false(等價於==)

                String,Date等類重寫了Object中的equals()方法,x.equals(y)當x和y所引用的是同一類對象且屬性內容相等時返回true.

12.多態:(1)要有繼承

               (2)要有重寫

               (3)父類引用指向子類對象

class Animal {
    private String name;
    Animal(String name){this.name = name;}
    public void enjoy(){
        System.out.println("叫聲......");
    }
}

class Dog extends Animal{
    private String color;
    Dog(String n,String c){
        super(n);
        color = c;
    }
    public void enjoy(){
        System.out.println("狗叫聲......");
    }
}

class Cat extends Animal{
    private String eyesColor;
    Cat(String n,String c){
        super(n);
        eyesColor = c;
    }
    public void enjoy(){
        System.out.println("貓叫聲......");
    }
}

class Lady {
    private String name;
    private Animal pet;
    Lady(String name,Animal pet){
        this.name = name; this.pet = pet;
    }
    public void myPetEnjoy(){
        pet.enjoy();
    }
}

public class Poolymoph{
    public static void main(String[] args) {
        Cat c = new Cat("catname","blue");
        Dog d = new Dog("dogname","black");
        Lady l1 = new Lady("l1",c);
        Lady l2 = new Lady("l2",d);
        l1.myPetEnjoy();
        l2.myPetEnjoy();

    }
}
輸出爲:
貓叫聲......
            狗叫聲......

總結:建一個Animal父類,寫其enjoy方法,在把Cat、Dog等類作爲子類繼承Animal類,並重寫其enjoy方法;最後把Cat、Pig這些類全部扔進籃子裏,調用其enjoy方法,就會自動地去調用Cat、Pig對應的enjoy方法。

13.抽象:抽象類必須被繼承,抽象方法必須重寫,含有抽象方法的類必須被聲明爲抽象類

             抽象類不能被實例化

             抽象方法只需聲明,而不需實現

14.final:final的變量的值不能被改變,final的方法不能被重寫,final的類不能被繼承

15.接口:接口是抽象方法和常量之的定義和集合

               從本質上講,接口是一種特殊的抽象類,這種抽象類中之包含常量和方法的定義,而沒有常量和方法的實現

   接口特徵:1、接口可以多重實現

                     2、接口中聲明的屬性默認爲public static final的,也只能是public static final的

                     3、接口中只能定義抽象的方法,而且這些方法默認爲public,也只能是public的

                     4、接口可以繼承其他接口,並添加新的屬性和抽象方法


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章