類(lèi)和對(duì)象的關(guān)系
?????類(lèi)實(shí)質(zhì)上定義的是一種對(duì)象類(lèi)型媚污,他是對(duì)具有相似行為的對(duì)象的一種抽象邮弹,廣義上說(shuō)就是對(duì)象的集合黔衡,比如說(shuō),眾多的人組成人類(lèi)腌乡,人就是人類(lèi)這個(gè)類(lèi)的實(shí)例化盟劫,再比如,找女朋友這個(gè)問(wèn)題上与纽,女朋友是一個(gè)類(lèi)侣签,這個(gè)類(lèi)具有女性塘装,膚白貌美的屬性,將女朋友這個(gè)類(lèi)實(shí)例化就是確定到某一個(gè)人了影所。類(lèi)是對(duì)象的抽象表現(xiàn)蹦肴,對(duì)象是類(lèi)的具象,ps:對(duì)象不止一個(gè).
封裝的概念
概念:把相關(guān)的數(shù)據(jù)及其操作組織在類(lèi)內(nèi)猴娩,構(gòu)成獨(dú)立意義的構(gòu)件(組件)阴幌,稱(chēng)為封裝。
比如:生活中的各種控制開(kāi)關(guān)卷中,遙控器矛双,都用到類(lèi)的封裝,他們把這些功能封裝在一個(gè)小盒子里蟆豫,在操作時(shí)背零,只需要按控制鍵,不需要知道怎么去工作的无埃,對(duì)外只是表現(xiàn)為封裝體系間的接口關(guān)系。包概念的體現(xiàn)了封裝性毛雇,將一組類(lèi)封裝在一個(gè)包內(nèi)嫉称。
封裝基本單位:
對(duì)象
類(lèi)的創(chuàng)建
類(lèi)有2中基本成分:變量和方法,變量可以使是基本類(lèi)型灵疮,是數(shù)組织阅,也可以是實(shí)例,方法負(fù)責(zé)處理這些變量震捣,【方法中變量只能在類(lèi)中定義荔棉,類(lèi)的方法一般是public??? ?類(lèi)的變量一般是private】
比如創(chuàng)建一個(gè)女朋友的類(lèi)
public class girlfriend
{
private float shengao;
private float sanwei;
private int age;
private float weight;
以上是對(duì)這個(gè)類(lèi)進(jìn)行屬性的定義【身高蒿赢,三圍润樱,年齡,定義為私有羡棵,不能隨隨便便被人知道吧】
有了成員變量壹若,得有成員方法來(lái)處理這些變量,女生大都愛(ài)吃皂冰,就定義一個(gè)吃的方法
void eat(){
System.out.println("l like eating")
}
方法定義完成后就開(kāi)始調(diào)用這個(gè)方法店展,前提是你得有個(gè)女朋友⊥毫鳎【也就是類(lèi)的實(shí)例化】
public static void main(String args[])//主函數(shù)入口
{
girlfriend mm=new girlfriend();//類(lèi)的實(shí)例化赂蕴,女朋友有了,叫mm舶胀。
mm.eat();調(diào)用這個(gè)方法//使用女朋友的功能
?? }
}
注意事項(xiàng):
訪問(wèn)對(duì)象方法/屬性概说。如果是靜態(tài)方法/屬性碧注,是帶有static關(guān)鍵字的屬性,可以直接通過(guò)類(lèi)名來(lái)訪問(wèn)
Java程序執(zhí)行過(guò)程分析席怪,一張圖告訴你
舉個(gè)栗子:
源文件:鮮活的魚(yú)
編譯器:刀具
字節(jié)碼文件:被殺的魚(yú)
解釋器:炊具
工程:鮮美的魚(yú)湯
方法的分類(lèi)
1類(lèi)方法【靜態(tài)方法应闯,帶有static的關(guān)鍵字的方法】
2.實(shí)例方法,用戶(hù)自己寫(xiě)的方法【自定義方法】
3.構(gòu)造方法【方法名與類(lèi)名一模一樣】
聲明方法常用格式
訪問(wèn)修飾符? 返回類(lèi)型 方法名(參數(shù)列表){
方法體
}
帶有final的關(guān)鍵字的方法挂捻,表名該方法不能被重載碉纺,也不能被覆蓋
方法重載
概念:多個(gè)方法名相同,參數(shù)不同【在一個(gè)類(lèi)中】
參數(shù)不同體現(xiàn)在以下2點(diǎn)
1.參數(shù)類(lèi)型相同刻撒,個(gè)數(shù)不同
2參數(shù)個(gè)數(shù)相同骨田,類(lèi)型不同
方法調(diào)用
1,非靜態(tài)???? 對(duì)象名.方法名()声怔;
2态贤,靜態(tài)????? 對(duì)象名/類(lèi)名.方法名();
方法與方法之間的調(diào)用
1.在本類(lèi)中醋火,靜態(tài)方法直接調(diào)用靜態(tài)方法悠汽,直接寫(xiě)方法名即可
2.在本類(lèi)中究飞,靜態(tài)調(diào)用非靜態(tài)方法日麸,就必須通過(guò)對(duì)象來(lái)調(diào)用【對(duì)象名.方法()】
3.在不同類(lèi)中茂嗓,靜態(tài)調(diào)用其他類(lèi)中靜態(tài)方法???? 方法【類(lèi)名.靜態(tài)方法名.()】
4.在不同類(lèi)中吆倦,靜態(tài)調(diào)用其他類(lèi)中非靜態(tài)方法?? 需要導(dǎo)入被調(diào)用的類(lèi)中的包签餐,以及通過(guò)創(chuàng)建對(duì)
象調(diào)用【在調(diào)用主類(lèi)中創(chuàng)建從類(lèi)中的對(duì)象調(diào)用】調(diào)用的類(lèi)稱(chēng)主類(lèi)必盖,被調(diào)用的稱(chēng)從類(lèi) 容易曲分
非靜態(tài)方法內(nèi)部調(diào)用
1.在本類(lèi)中朵栖,非靜態(tài)方法可以直接調(diào)用非靜態(tài)方法
2.在不同類(lèi)中非靜態(tài)方法調(diào)用其他類(lèi)靜態(tài)方法踏志,需要導(dǎo)入被調(diào)用類(lèi)中的包丽猬,并且需要通過(guò)類(lèi)名來(lái)調(diào)用
3.在不同類(lèi)中 ?宿饱,非靜態(tài)調(diào)用其他類(lèi)中非靜態(tài)方法?,需要導(dǎo)入被調(diào)用的類(lèi)中的包脚祟,以及通過(guò)創(chuàng)建對(duì)象調(diào)用【在調(diào)用主類(lèi)中創(chuàng)建從類(lèi)中的對(duì)象調(diào)用】調(diào)用的類(lèi)稱(chēng)主類(lèi)谬以,被調(diào)用的稱(chēng)從類(lèi) 容易曲分。
方法參數(shù)及其傳遞問(wèn)題
Java中只有值傳遞由桌,不存在引用傳遞
值傳遞:
1.基本類(lèi)型傳遞:在棧道中分配內(nèi)存蛉签,在傳入時(shí),實(shí)參會(huì)多復(fù)制一份沥寥,在方法內(nèi)修改參數(shù)不影響原實(shí)參碍舍。
2.引用類(lèi)型傳遞【不是引用傳遞】這里看代碼
方法遞歸
所謂遞歸,就是方法調(diào)用自身邑雅,但不會(huì)無(wú)休止調(diào)用下去片橡,這里遵循條件。要想使用遞歸淮野,遵尋下面要求捧书;
1.必須滿(mǎn)足一個(gè)結(jié)束條件
2.方法調(diào)用自身
類(lèi)的屬性
1.全局變量【定義在類(lèi)中 在方法外面吹泡,類(lèi)中的方法都可以訪問(wèn)它】
2.局部變量【定義在類(lèi)中,某個(gè)方法里经瓷,只有這個(gè)方法可以訪問(wèn)】
this關(guān)鍵字
接地氣來(lái)說(shuō)爆哑,this指的是當(dāng)前對(duì)象,至于哪個(gè)對(duì)象舆吮,只有在運(yùn)行期間才能知道是哪一個(gè)對(duì)象
最后來(lái)說(shuō)說(shuō)包
?? 咱要說(shuō)的包可不是書(shū)包揭朝,背包,LV包色冀,要說(shuō)的是Java中的包潭袱。
怎么說(shuō)呢 ,比如锋恬,在電腦上創(chuàng)建文件夾屯换,對(duì)文件進(jìn)行分類(lèi),分成視屏与学,音樂(lè)彤悔,照片,學(xué)習(xí)資料索守,當(dāng)然還有蒼老師晕窑,這就是對(duì)文件分文別類(lèi),Java中的包就起到類(lèi)似文件夾的作用蕾盯,主要給class分類(lèi)的工作。便于維護(hù)管理蓝丙。
包名的定義:package com.canglaoshi
用包導(dǎo)入類(lèi)型
1.導(dǎo)入包中所有的類(lèi)
import? 包名.*级遭;
2.導(dǎo)入包中具體的類(lèi)
import 包名.類(lèi)名
3.編輯包
{
1.javac -d.類(lèi)名.java
d:創(chuàng)建目錄
"?. ":當(dāng)前目錄 比如編輯一個(gè)女朋友類(lèi) Javac -d. girlfriend.java
如果在類(lèi)中是這樣去定義一個(gè)包【package com.women.meimv;】
那么就可以在com的文件夾下的women的文件下的entity文件夾下找到 girlfriend.java 文件
2.Java? 包路徑/類(lèi)名【了解即可】
}
包名規(guī)范
建議全部小寫(xiě),不管有多少個(gè)單詞組成