Java類和物件 小白版

椰椰210162701037發表於2024-08-12

一、類

一、類的定義

具有同種屬性的物件稱為類。定義了它所包含的全體物件的公共特徵和功能,物件就是類的一個例項化。

類的三種常見成員:屬性、方法、構造器

二、類的編寫

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的垃圾回收機制判斷為垃圾,進行自動回收。

五、物件的銷燬

  1. 物件的銷燬是指當物件使用完畢後,釋放物件所佔用的記憶體空間。

  2. Java物件的銷燬是採用垃圾回收機制(Garbage Collection ------GC),自動回收不再訪問的物件。

    • GC可以回收new 的物件,系統資源不能回收;
    • GC回收物件不是馬上回收,而是在空閒時回收;
    • 呼叫System.GC(),不是立即回收程式設計師決定不了
  3. java 程式設計師不需要關注Java物件的銷燬,只需要關注Java物件的建立(或例項化)——GC的作用

  4. Java物件被銷燬後將不允許再訪問該物件,這將導致執行時錯誤(或程式崩潰)。

相關文章