天天看點

類,,,,,對象,,,,成員變量和局部變量 面向對象的封裝 構造方法面向對象三大基本特征: 封裝,繼承,多态

面向對象三大基本特征: 封裝,繼承,多态

什麼是類

類:一組相關的屬性和行為的集合,我們使用事物的屬性和行為特征來描述該事物,類可以

看做是一個模闆。

屬性:事物的【狀态】資訊

行為:該類事物具備功能,能做什麼,相當于方法

什麼是對象

對象:對象是類的執行個體,該執行個體具備類的屬性和行為特征

類與對象的關系

a.類是對一類事物的描述,是抽象的

b.對象是一類事物的執行個體,是具體的

c.類是對象的模闆,對象是類的實體

java中的描述事物:

成員變量:對應事物的屬性

成員方法:對應事物的行為

定義類格式:

public class ClassName{

//成員變量

//成員方法

}

定義類:定義類的成員,成員變量和成員方法

成員變量定義:和普通變量定義方法一樣,隻是位置不一樣,普通變量定義在方法體内

部,成員變量定義在類體裡面,方法體外面。

成員方法定義:和之前的方法一樣,隻不過成員方法沒有【static】

成員方法格式: public static 傳回值 方法名(){}

普通方法格式: public 傳回值 方法名(){}

以前調用方法三種格式:

//以前的調用方法,都是有static,是以main可以用以下的三種方式

//1.單獨調用 方法名();

//2.列印調用 System.out.println(方法名(參數));

//3.指派調用 資料類型 變量名=方法名(參數);

類的對象建立格式

類名 對象名=new 類名()

對象使用格式:使用對象中的成員資訊

成員變量通路:對象名.成員變量名;

成員方法通路:資料類型 變量名=對象名.成員方法名();

成員變量指派:對象名.成員變量名=數值;

通過對象調用成員屬性步驟

1.建立類的對象

2.通過 對象名.變量名 或者 對象名.方法名() 完成調用

成員變量有預設值,局部變量沒有把預設值,是以,成員變量沒有初始化也可以使用,普通變量沒有預設值不能使用

對象記憶體了解:

在棧記憶體當中,方法在執行的時候才會壓棧,遵循先進後出,後進先出的原則,此時變量

(對象名)指向對内當中的空間,尋找方法的資訊,執行該方法。

就是建立對象,對象調用方法的時候方法進行壓棧,在堆記憶體中找到相應方法的記憶體空

間,由記憶體空間在方法區找到相應的方法所在位置,最終達到,不管多少次調用方法,最

終結果都是隻需要一個記憶體來儲存方法,達到節約空間目的。

成員變量和局部變量的差別

a.定義位置不同:

成員變量:類中方法外

局部變量:方法中

b.作用範圍不同

成員變量:作用于這個類

局部變量:作用于本方法

c.初始值不同

成員變量:有預設初始值

局部變量:沒有預設初始值,複制之後才能使用

d.記憶體中位置不同

成員變量:位于堆記憶體

局部變量:位于棧記憶體,

e.生命周期不同

成員變量:随着對象建立誕生,随着對象消失而消失

局部變量:随着方法調用産生,方法調用結束而消失

f.修飾符不同

成員變量:可以使用修飾符 ------ 例如:public String name

局部變量:不可以使用修飾符 ----- 例如:String name

面向對象特征---->封裝

什麼是封裝:封裝就是可以防止其他類裡面随意修改類中的資料,使得必須通過特殊的方

法才能夠完成修改,加強了代碼安全性,和可維護性。

封裝原則:

本質就是把屬性隐藏,想要通路屬性,隻能通過提供公共的方法對其通路

如何實作封裝:主要是使用private關鍵字

a.使用【private】關鍵字修飾成員變量

b.對需要通路的成員變量,提供一對setXxx和getXxx方法,通過這兩個方法完成對屬性的取值和指派

private關鍵字含義:

a.private是一個關鍵字,更是一個權限修飾符,表示最小限制

b.可以修飾成員變量,也可以修飾成員方法

c.修飾成員方法的時候,該成員方法隻能在目前類使用,其他類不能使用

private關鍵字使用格式:

格式: private 資料類型 變量名:

步驟;

1.先使用private關鍵字修飾成員變量

2.生成相應的get和set方法

封裝優化---->this關鍵字

我們發現,setXxx()方法中形參名字不符合,我們辨別符不符合命名規範–>見名知意,

如果修改為和成員變量變量名相同,會根據就近原則,會把方法内比那裡統統設定為形參

變量,導緻指派失敗,我們就可以采用【this】關鍵字來完成變量重命名問題

this的含義

this代表所在類的對象,this.成員變量===>對象名.成員變量

意思就是方法被哪個對象調用,方法中的this就是哪個對象,誰到用this就是誰的對象

this的使用:

格式:this.成員變量

備注:如果方法中隻有一個變量名,預設也是使用this修飾

導包:

如果我們需要的類和本類不在一個包下就需要導包

格式:import 包名.類名------->import java.util

構造方法

當一個對象呗建立出來,構造方法用來初始化對象,對象指派,把所有的成員變量放在一

起指派,避免每個成員變量單獨指派很麻煩。

備注:

對象建立,預設一個無參構造方法,一旦自己寫了一個構造方法,那麼無慘構造

方法就會被收回

構造方法定義格式:

修飾符 構造方法名(參數清單){

//方法體内容

}

構造方法沒有傳回值,(void都沒有),構造方法名和類名一樣

使用構造方法注意事項

1.構造方法名稱必須和所在類名稱一樣

2.構造方法不用聲明傳回值類型,void也不需要

3.構造方法不能return一個具體傳回值

4.如果定義類沒有顯示構造方法,那麼就會預設提供一個無參構造,

一旦編寫其他構造方法,無慘構造就被收回,要使用需要寫出

5.構造方法可以重載

有關:參數個數,順序,參數資料類型

無關:傳回值,修飾符,形參名稱

靜态方法在類建立的時候在方法區,在執行整個類的時候會映射在堆記憶體裡面,不像非靜态方法需要通過對象調用

靜态方法調用格式:類名.靜态方法名()

用封裝思想定義一個标準類–>javaBean

1.所有成員變量都要使用【private】關鍵詞修飾

2.為所有成員變量提供一對公共的set和get方法

3.要編寫一個無參構造方法

4.要寫一個全參構造

符合以上四點稱為javaBean