【Java】零基礎語法筆記(三)面向對象

面向對象

  1. 對象

  2. 構造方法

  3. 引用與對象實例

  4. static

  5. final

  6. 封裝

  7. 繼承

  8. 方法重載與重寫

  9. 多態

  10. 抽象類

  11. 接口

  12. 內部類

1. 類

public class 類名 {

//定義屬性部分(成員變量)

屬性1的類型 屬性1;

屬性2的類型 屬性2;

...

//定義方法部分

方法1

方法2

...

}

樣例

public class People {
//屬性(成員變量) 有什麼
    double height;  //身高
    int age;     //年齡
    int sex;    //性別,0爲男性,非0爲女性

//方法 幹什麼
    void cry(){
        System.out.println("我在哭!");
    }
    void laugh(){
        System.out.println("我在笑!");
    }
    void printBaseMes(){
        System.out.println("我的身高是"+height+"cm");
        System.out.println("我的年齡是"+age+"歲");
        if(this.sex==0)
            System.out.println("我是男性!");
        else
            System.out.println("我是女性!");

    }
}

 

1.1 類變量

  • 局部變量:在方法、構造方法或者語句塊中定義的變量被稱爲局部變量。變量聲明和初始化都是在方法中,方法結束後,變量就會自動銷燬。
  • 成員變量:成員變量是定義在類中,方法體之外的變量。這種變量在創建對象的時候實例化。成員變量可以被類中方法、構造方法和特定類的語句塊訪問。
  • 類變量:也叫靜態變量,類變量也聲明在類中,方法體之外,但必須聲明爲 static 類型

2. 對象

類名 對象名 = new 類名();

public class NewObject {
    public static void main(String[] args) {
        People LiLei = new People(); //創建一個People對象LiLei

        LiLei.height =170;
        LiLei.age = 20;
        LiLei.sex = 1;

        LiLei.printBaseMes();
    }
}

 2.1 對象的屬性和方法

//引用對象屬性
對象名.屬性

//引用對象方法
對象名.方法

LiLei.height = 170;
LiLei.cry();

 2.2 對象變量的使用範圍

  1. 局部變量的作用域僅限於定義它的方法內。而成員變量的作用域在整個類內部都是可見的。
  2. 同時在相同的方法中,不能有同名的局部變量;在不同的方法中,可以有同名的局部變量。
  3. 成員變量和局部變量同名時,局部變量具有更高的優先級。 

3. 構造方法

 創建一個對象的時候,至少調用一個構造方法。

//與類同名,可以指定參數,沒有返回值

public 構造方法名(){

//初始化代碼

}

public class People{
    //無參構造方法
    public People(){

    }
    //有一個參數的構造方法
    public People(int age){

    }
}
  • 如果在定義類的時候沒有寫構造方法,系統會默認生成一個無參構造方法,這個構造方法什麼也不會做。
  • 當有指定的構造方法時,系統都不會再添加無參構造方法了。
  • 構造方法的重載:方法名相同,但參數不同的多個方法,調用時會自動根據不同的參數選擇相應的方法。

4. 引用與對象實例

Object object=new Object();

5. static 靜態方法 與 靜態成員

5.1 靜態成員

Java 中被 static 修飾的成員稱爲靜態成員或類成員。

它屬於整個類所有,而不是某個對象所有,即被類的所有對象所共享。

靜態成員可以使用類名直接訪問,也可以使用對象名進行訪問。

5.2 靜態方法

被 static 修飾的方法是靜態方法,

靜態方法不依賴於對象,不需要將類實例化便可以調用,

由於不實例化也可以調用,所以不能有 this,也不能訪問非靜態成員變量和非靜態方法。

但是非靜態成員變量和非靜態方法可以訪問靜態方法。 

6. final 關鍵字

final 關鍵字可以修飾類、方法、屬性和變量

  1. final 修飾類,則該類不允許被繼承,爲最終類
  2. final 修飾方法,則該方法不允許被覆蓋(重寫)
  3. final 修飾屬性:則該類的屬性不會進行隱式的初始化(類的初始化屬性必須有值)或在構造方法中賦值(只能選其一)
  4. final 修飾變量,則該變量的值只能賦一次值,即常量
//靜態常量
public final static String GIT_HUB_ID="@HANXU2018";

 

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