類與物件
什么是類?
類: 是一組相關【屬性】和【行為】的集合.可以把類看成一類事物的模板,使用事物的屬性特征和行為
特征來描述該類事物.
現實中,描述一類事物:
屬性:描述該類事物的一種【狀態】資訊.
行為:描述該類事物具備的功能,能夠做什么.
什么是物件?
物件:就是一類事物的具體的體現.物件是類的一個【實體】,必然具備該類事物的屬性特征和行為特征.
類與物件的關系
? 類是對一類事物的描述,是【抽象的】,
? 物件是一類事物的實體,是【具體的】,
? 類是物件的模板,物件是類的物體,
類的定義
事物與類的對比
? 現實中的一類事物:
? 屬性:事物的狀態資訊
? 行為:事物能夠做什么,具備的功能
? Java中的類描述事物也是如此:
? 成員變數:對應事物的屬性
? 成員方法:對應事物的行為
類的定義格式
public class ClassName(){
// 成員變數
// 成員方法
}
定義類:定義類的成員,包括成員變數和成員方法
成員變數:和之前定義變數的格式一模一樣,只不過位置不同,變數定義在類中,方法外
成員方法:和之前定義的方法幾乎是一樣的,只不過去掉【static】
物件的使用
物件的使用格式:
? 物件創建的格式:
類名 物件名 = new 類名();
? 使用物件訪問類的成員資訊:
物件名.成員變數名
物件名.成員方法名
成員變數的默認值
| 資料型別 | 默認值 | |
|---|---|---|
| 基本型別 | 整數(byte short int long) | 0 |
| 浮點型別(float double) | 0.0 | |
| 字符型(char) | “\u0000” | |
| 布爾型別(Boolean) | false | |
| 參考型別 | 陣列 類 介面 | null |
備注:方法內定義的變數沒有初始化,不能被使用
如果成員變數沒有進行賦值,系統會自動給一個默認值,規則和陣列是一樣的.
物件的記憶體圖解
一個物件,呼叫一個方法記憶體圖解

備注:在堆疊記憶體當中運行的方法,遵循"先進后出,后進顯出的原則",此時變數phone指向堆記憶體當中的空間,尋找方法資訊,執行該方法
兩個物件,呼叫同一方法記憶體圖解
物件呼叫方法時,根據物件當中方法標記(地址值),去類中尋找方法資訊,這樣哪怕是多個物件,方法資訊只保存一份,節約記憶體空間
成員變數區域變數的區別
變數根據定義的【位置不同】,我們給變數起了不同的名字
public class People(){
String name = "小明";//成員變數
public void eat(){
String food = "雞蛋撈面" // 區域變數
System.out.println(name + "中午吃的是:" + food)
}
}
-
在類中定義的位置不同【重點】
? 成員變數:類中、方法外
? 區域變數:方法中或者方法宣告上(形式引數)
-
作用范圍不同【重點】
? 成員變數:類中
? 區域變數:方法中
-
初始值不同【重點】
? 成員變數:有默認值
? 區域變數:沒有默認值,必須先定義賦值,才能使用
-
在記憶體當中存盤的位置不同
成員變數:堆記憶體當中
區域變數:堆疊記憶體當中
-
生命周期不同
成員變數:隨著物件的創建而存在,隨著物件的消失而消失
區域變數:隨著方法的呼叫而存在,隨著方法呼叫結束而消失
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/224249.html
標籤:java
上一篇:類與物件
下一篇:opencv2學習筆記(1)
