文章目錄
- 👏類和對象的概念
- 什么是類?
- 什么是對象?
- 🥝構造方法
- 如何創建一個對象?
- 🥝對象內存布局
- 完整應用 - 編寫一個類:人,其具備年齡、性別、姓名等基礎屬性,并實例化一個人員對象
- 注意事項??
- 1.定義類有什么需要注意的?
- 2.成員變量有什么需要注意的?
👏類和對象的概念
什么是類?
類(class)是對一類事務的抽象描述,它定義了這類事物具有共同的屬性(數據)和行為(方法)。
比如:“汽車”可以看作一個類:
- 屬性:顏色、品牌、排量、價格(這些都是所有汽車都具備的特征)
- 行為:啟動、加速、剎車、鳴笛(這些都是所有汽車都能執行的操作)
類只規定了事物的特征和能力,本身并不存在實體,在Java中類的定義需要使用class關鍵字,基本結構如下:
public class 類名 {// 屬性(成員變量)數據類型 屬性名1;數據類型 屬性名2;// 行為(成員方法)返回值類型 方法名1(參數列表) {// 方法體}返回值類型 方法名2(參數列表) {// 方法體} }
什么是對象?
對象(Object)是類的具體實例,是根據類創建的“實體”。如果類是學生,那么 “張三(學號:2023001,年齡:18)” 就是一個對象。
對象具有唯一的標識(內存地址)、狀態(屬性的具體值)一張圖解釋類和對象的關系:
通過上圖來創建一個簡單的類來理解下Java中類的定義:public class Dog {String breed;int size;String colour;int age;void eat() {}void run() {}void sleep(){}void name(){} }
一個類可以包含以下類型變量:
- 局部變量:在方法、構造方法或者語句塊中定義的變量被稱為局部變量。變量聲明和初始化都是在方法中,方法結束后,變量就會自動銷毀。
- 成員變量.:成員變量是定義在類中,方法體之外的變量。這種變量在創建對象的時候實例化。成員變量可以被類中方法、構造方法和特定類的語句塊訪問。
- 類變量:類變量也聲明在類中,方法體之外,但必須聲明為 static 類型。
一個類可以擁有多個方法,在上面的例子中:eat()、run()、sleep() 和 name() 都是 Dog 類的方法
🥝構造方法
?每個類都有自己的構造方法,如果沒有顯示地為類定義構造方法,Java編譯器將會為該類提供一個默認構造方法。
?而在創建一個對象的時候,至少要調用一個構造方法。構造方法的名稱必須與類名相同,一個類可以有多個構造方法。
下面是一個構造方法示例:public class Puppy{public Puppy(){}public Puppy(String name){// 這個構造器僅有一個參數:name} }
如何創建一個對象?
對象是根據類創建的。在Java中,使用關鍵字 new 來創建一個新的對象。創建對象需要以下三步:
- 聲明:聲明一個對象,包括對象名稱和對象類型。
- 實例化:使用關鍵字 new 來創建一個對象。
- 初始化:使用 new 創建對象時,會調用構造方法初始化對象。 下面是一個創建對象的例子:
public class Puppy{public Puppy(String name){//這個構造器僅有一個參數:nameSystem.out.println("小狗的名字是 : " + name ); }public static void main(String[] args){// 下面的語句將創建一個Puppy對象Puppy myPuppy = new Puppy( "tommy" );} }
🥝對象內存布局
Cat類:
public class Cat {String name;String color;int age; }
圖片左邊為執行的操作,右邊為new的對象在內存中的存在形式:
說明:age為int類型,屬于基本數據類型,直接存放在所new對象的堆中;而age和color都和數組一樣,屬于常量引用類型,所以new對象后在堆中存放的是對應常量池的地址完整應用 - 編寫一個類:人,其具備年齡、性別、姓名等基礎屬性,并實例化一個人員對象
class Person {int age;String name;String gender;public void sleep() {System.out.println(name + "正在睡覺");}public void show() {System.out.println(name + " " + age + " " + gender);} }public class Test {public static void main(String[] args){Person p = new Person();p.name="林七夜";p.age=20;p.gender="男";p.sleep();p.show();} }
運行結果:
林七夜正在睡覺 林七夜 20 男
注意事項??
1.定義類有什么需要注意的?
- 類名首字母建議大寫、英文、有意義,滿足駝峰模式,不能用關鍵字
- 一個代碼文件中可以定義多個類,但是只能有一個類是public修飾的,public修飾的類名必須是Java文件的文件名稱
2.成員變量有什么需要注意的?
- 成員變量的完整定義格式是:修飾符 數據類型 變量名稱 = 初始化值 ;
- 一般無需指定初始化值
如果我的內容對你有幫助,請 點贊 , 評論 , 收藏 。創作不易,大家的支持就是我堅持下去的動力!