面向對象三大基本特征: 封裝,繼承,多态
什麼是類
類:一組相關的屬性和行為的集合,我們使用事物的屬性和行為特征來描述該事物,類可以
看做是一個模闆。
屬性:事物的【狀态】資訊
行為:該類事物具備功能,能做什麼,相當于方法
什麼是對象
對象:對象是類的執行個體,該執行個體具備類的屬性和行為特征
類與對象的關系
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