什麼是物件:在現實世界中,隨處可見的一種事物就是物件。
物件導向的特點:封裝性、繼承性、多型性
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關鍵字進行宣告。