關於Java中的類和物件筆記

Leftty1發表於2024-09-11

什麼是物件:在現實世界中,隨處可見的一種事物就是物件。

物件導向的特點:封裝性、繼承性、多型性

1.1 封裝(思想):物件的屬性和行為封裝起來,載體即為類。儲存類資料結構的完整性,提高了程式的可維護性。

1.2 繼承:可以繼承父類的行為和屬性,其中還可以新增獨特的屬性及行為。可複用性強,提高系統效能,減少系統在使用過程中出現的錯誤機率。

1.3 多型:父類的物件運用於子類特徵

1.4 類:成員變數

`package Demo01;

public class Book {
private String name; //成員變數
public String getName(){ //獲取圖書方法
return name;
}
public void setName(){ //設定設定圖書
this.name = name;
}
}
`
1.5 成員方法

許可權修飾符 返回值型別 方法名(引數型別 引數名){
...//方法體
return 返回值;
}

1.6 許可權修飾符

private: 本類中是可見的,同包和其他類或子類不可見,其他包的類或者子類是不可見的。
protect: 本類中是可見的,同包和其他類或子類可見,其他包的類或者子類是不可見的。
public: 本類中是可見的,同包和其他類或子類可見,其他包的類或者子類是可見的。

1.7 區域性變數的使用

`package Demo01;

public class ChangeDemo {
public static int[] exchange(int[] arr){
int temp = arr[0];
arr[0] = arr[1];
arr[1] = temp;
return arr;
}

public static void main(String[] args) {
    int arr[] = {1,2};
    System.out.println("第一個值為"+ arr[0] + "第二個值為" + arr[1]);
    arr = exchange(arr);
    System.out.println("第一個值為"+ arr[0] + "第二個值為" + arr[1]);
}

}
`

1.8 this關鍵字

特點:只能用於本類。可以呼叫成員變數和成員方法。

物件.成員變數 物件.成員方法

1.9 構造方法

特點:構造方法沒有返回值、構造方法名稱要與本類的名稱相同。

`package Demo01;

public class Eggcake {
int eggCount; //雞蛋灌餅的個數
public Eggcake(int eggCount){
this.eggCount = eggCount; //將引數值eggcount的值賦值給成員變數屬性eggcount
}
public Eggcake(){ //定義一個無參構造方法,預設加一個雞蛋
//呼叫引數為雞蛋餅裡蛋的個數,並設定個數為1
this(1);
}

public static void main(String[] args) {
    Eggcake cake1 = new Eggcake();
    System.out.println("不要求加,會有"+cake1.eggCount);
    Eggcake cake2 = new Eggcake(2);
    System.out.println("要求加,會有" + cake2.eggCount);
}

}
`
2.1 靜態變數和靜態方法

static關鍵字特點:設定為靜態,共享一個記憶體空間,被宣告為static的變數和方法被稱為靜態成員。

`package Demo01;

public class Cust {
static int count = 0;
String name;
public Cust(String name){
this.name = name;
count++;
}

public static void main(String[] args) {
    Cust c1 = new Cust("tom");
    System.out.println("我是第" + Cust.count + "名顧客,我叫" + c1.name);
    Cust c2 = new Cust("tim");
    System.out.println("我是第" + Cust.count + "名顧客,我叫" + c2.name);
    Cust c3 = new Cust("tny");
    System.out.println("我是第" + Cust.count + "名顧客,我叫" + c3.name);
}

}
`
總結:在靜態方法中不能使用this關鍵字、不可以直接呼叫非靜態方法、區域性變數不能使用static關鍵字進行宣告、主方法必須用static關鍵字進行宣告、只有內部類可以使用static關鍵字進行宣告。

相關文章