一、類
一、類的定義
具有同種屬性的物件稱為類。定義了它所包含的全體物件的公共特徵和功能,物件就是類的一個例項化。
類的三種常見成員:屬性、方法、構造器
二、類的編寫
1.類名的定義;
2.類屬性(特性)的編寫;屬性 ( 成員變數 ) = 訪問修飾符 + 資料型別 +變數名
//定義人類
public class Person{
public String name; //名字(屬性)
public int age; //年齡(屬性)
public String sex; //性別(屬性)
}
3.類方法(行為)的編寫。 方法 = 訪問修飾符 + 返回值型別 +方法名 + 方法引數 + 方法體
public class Person{
public void study(){ //方法
System.out.println("Good good study, day day up!")
}
}
三、類的宣告
類在使用前必須先宣告然後才可以宣告變數,建立物件
類宣告語法如下:
[識別符號] [修飾符] class 類名 {
//類的屬性(特性)-名詞(只定義和業務邏輯相關的程式碼)
//類的方法(行為)-動詞(只定義和業務邏輯相關的程式碼)
}
四、例項
public class Person {
String name;
int age;
String sex;
//定義一個學習方法
public void study(){
System.out.println("Good good study, day day up!");
}
//顯式編寫一個空構造器
public Person() {
System.out.println("Person 空構造器");
}
//編寫一個帶引數的構造器
public Person(String name, int age, String sex) {
this.name = name; //this.name代表Person中的屬性name,= 後面的name代表構造器中的引數name
this.age = age;
this.sex = sex;
}
//方法過載
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public static void main(String[] args) {
Person p1 = new Person("二兩客", 22, "Male");
System.out.println(p1.name + " " + p1.age + " " + p1.sex);
p1.study();
Person p2 = new Person("椰椰", 22);
System.out.println(p2.name + " " + p2.age);
p2.study();
}
}
二、物件
一、物件的定義
現實世界存在的任何事務都可以稱之為物件。
二、物件的建立和使用
常見例項化物件的方式有四種:使用類建立物件(new)、cloae方法、反序列化、反射。
1.建立物件的格式:
類名 物件名 = new 類名([引數列表]);
Person person = new Person;
注:透過使用new運算子,一個類可以建立多個物件,每個物件被分配的不同的記憶體空間,改變一個物件的變數不會影響其它物件的變數。
每個類都有一個不帶引數的預設構造方法,當透過new運算子呼叫預設構造方法建立物件時,系統會自動初始化所分配的記憶體空間。對於數值變數,賦初值0,對於布林變數,賦初值false,對於引用變數,賦予一個特殊的值null。
2.給物件的屬性賦值:
物件名.屬性名
person.name = "二兩客";
person.age = 22;
person.sex = "男";
3.呼叫物件的方法:
[ 返回值型別 名字 = ] 物件名.方法名(引數列表)
注: [ ]內容可省略。
person.study();
三、例項
public class Person {
String name;
int age;
String sex;
//定義一個學習方法
public void study(){
System.out.println("Good good study, day day up!");
}
}
public class Test {
public static void main(String[] args) {
// 建立物件
Person person = new Person();
// 設定屬性
person.name = "二兩客";
person.age = 22;
person.sex = "男";
//對屬性進行提取
System.out.println(person.name);
System.out.println(person.age);
System.out.println(person.sex);
// 呼叫方法
person.study();
}
}
四、匿名物件
1.定義
匿名物件就是例項化沒有名字的物件,指的是在建立一個物件時,只有建立的語句,卻沒有將其地址賦值給某個變數,
建立一個匿名物件:
//沒有賦值給某個變數
new Person();
2.適應場景
1.只呼叫一次物件的方法時
new Person().study();
2.作為方法的實際引數或返回值時
3.特點
-
匿名物件作為物件,也具有普通物件所有功能;
-
每一次使用匿名物件,都是new出的新物件;
-
匿名物件執行完畢後,由於沒有其他引用,會被Java的垃圾回收機制判斷為垃圾,進行自動回收。
五、物件的銷燬
-
物件的銷燬是指當物件使用完畢後,釋放物件所佔用的記憶體空間。
-
Java物件的銷燬是採用垃圾回收機制(Garbage Collection ------GC),自動回收不再訪問的物件。
- GC可以回收new 的物件,系統資源不能回收;
- GC回收物件不是馬上回收,而是在空閒時回收;
- 呼叫System.GC(),不是立即回收程式設計師決定不了
-
java 程式設計師不需要關注Java物件的銷燬,只需要關注Java物件的建立(或例項化)——GC的作用
-
Java物件被銷燬後將不允許再訪問該物件,這將導致執行時錯誤(或程式崩潰)。