類和對象的關系
?????類實質(zhì)上定義的是一種對象類型,他是對具有相似行為的對象的一種抽象,廣義上說就是對象的集合,比如說,眾多的人組成人類,人就是人類這個類的實例化,再比如,找女朋友這個問題上,女朋友是一個類,這個類具有女性,膚白貌美的屬性,將女朋友這個類實例化就是確定到某一個人了。類是對象的抽象表現(xiàn),對象是類的具象,ps:對象不止一個.
封裝的概念
概念:把相關的數(shù)據(jù)及其操作組織在類內(nèi),構成獨立意義的構件(組件),稱為封裝。
比如:生活中的各種控制開關,遙控器,都用到類的封裝,他們把這些功能封裝在一個小盒子里,在操作時,只需要按控制鍵,不需要知道怎么去工作的,對外只是表現(xiàn)為封裝體系間的接口關系。包概念的體現(xiàn)了封裝性,將一組類封裝在一個包內(nèi)。
封裝基本單位:
對象
類的創(chuàng)建
類有2中基本成分:變量和方法,變量可以使是基本類型,是數(shù)組,也可以是實例,方法負責處理這些變量,【方法中變量只能在類中定義,類的方法一般是public??? ?類的變量一般是private】
比如創(chuàng)建一個女朋友的類
public class girlfriend
{
private float shengao;
private float sanwei;
private int age;
private float weight;
以上是對這個類進行屬性的定義【身高,三圍,年齡,定義為私有,不能隨隨便便被人知道吧】
有了成員變量,得有成員方法來處理這些變量,女生大都愛吃,就定義一個吃的方法
void eat(){
System.out.println("l like eating")
}
方法定義完成后就開始調(diào)用這個方法,前提是你得有個女朋友?!疽簿褪穷惖膶嵗?/p>
public static void main(String args[])//主函數(shù)入口
{
girlfriend mm=new girlfriend();//類的實例化,女朋友有了,叫mm。
mm.eat();調(diào)用這個方法//使用女朋友的功能
?? }
}
注意事項:
訪問對象方法/屬性。如果是靜態(tài)方法/屬性,是帶有static關鍵字的屬性,可以直接通過類名來訪問
Java程序執(zhí)行過程分析,一張圖告訴你

舉個栗子:
源文件:鮮活的魚
編譯器:刀具
字節(jié)碼文件:被殺的魚
解釋器:炊具
工程:鮮美的魚湯
方法的分類
1類方法【靜態(tài)方法,帶有static的關鍵字的方法】
2.實例方法,用戶自己寫的方法【自定義方法】
3.構造方法【方法名與類名一模一樣】
聲明方法常用格式
訪問修飾符? 返回類型 方法名(參數(shù)列表){
方法體
}
帶有final的關鍵字的方法,表名該方法不能被重載,也不能被覆蓋
方法重載
概念:多個方法名相同,參數(shù)不同【在一個類中】
參數(shù)不同體現(xiàn)在以下2點
1.參數(shù)類型相同,個數(shù)不同
2參數(shù)個數(shù)相同,類型不同
方法調(diào)用
1,非靜態(tài)???? 對象名.方法名();
2,靜態(tài)????? 對象名/類名.方法名();
方法與方法之間的調(diào)用
1.在本類中,靜態(tài)方法直接調(diào)用靜態(tài)方法,直接寫方法名即可
2.在本類中,靜態(tài)調(diào)用非靜態(tài)方法,就必須通過對象來調(diào)用【對象名.方法()】
3.在不同類中,靜態(tài)調(diào)用其他類中靜態(tài)方法???? 方法【類名.靜態(tài)方法名.()】
4.在不同類中,靜態(tài)調(diào)用其他類中非靜態(tài)方法?? 需要導入被調(diào)用的類中的包,以及通過創(chuàng)建對
象調(diào)用【在調(diào)用主類中創(chuàng)建從類中的對象調(diào)用】調(diào)用的類稱主類,被調(diào)用的稱從類 容易曲分
非靜態(tài)方法內(nèi)部調(diào)用
1.在本類中,非靜態(tài)方法可以直接調(diào)用非靜態(tài)方法
2.在不同類中非靜態(tài)方法調(diào)用其他類靜態(tài)方法,需要導入被調(diào)用類中的包,并且需要通過類名來調(diào)用
3.在不同類中 ?,非靜態(tài)調(diào)用其他類中非靜態(tài)方法?,需要導入被調(diào)用的類中的包,以及通過創(chuàng)建對象調(diào)用【在調(diào)用主類中創(chuàng)建從類中的對象調(diào)用】調(diào)用的類稱主類,被調(diào)用的稱從類 容易曲分。
方法參數(shù)及其傳遞問題
Java中只有值傳遞,不存在引用傳遞
值傳遞:
1.基本類型傳遞:在棧道中分配內(nèi)存,在傳入時,實參會多復制一份,在方法內(nèi)修改參數(shù)不影響原實參。
2.引用類型傳遞【不是引用傳遞】這里看代碼

方法遞歸
所謂遞歸,就是方法調(diào)用自身,但不會無休止調(diào)用下去,這里遵循條件。要想使用遞歸,遵尋下面要求;
1.必須滿足一個結(jié)束條件
2.方法調(diào)用自身
類的屬性
1.全局變量【定義在類中 在方法外面,類中的方法都可以訪問它】
2.局部變量【定義在類中,某個方法里,只有這個方法可以訪問】
this關鍵字
接地氣來說,this指的是當前對象,至于哪個對象,只有在運行期間才能知道是哪一個對象

最后來說說包
?? 咱要說的包可不是書包,背包,LV包,要說的是Java中的包。
怎么說呢 ,比如,在電腦上創(chuàng)建文件夾,對文件進行分類,分成視屏,音樂,照片,學習資料,當然還有蒼老師,這就是對文件分文別類,Java中的包就起到類似文件夾的作用,主要給class分類的工作。便于維護管理。
包名的定義:package com.canglaoshi
用包導入類型
1.導入包中所有的類
import? 包名.*;
2.導入包中具體的類
import 包名.類名
3.編輯包
{
1.javac -d.類名.java
d:創(chuàng)建目錄
"?. ":當前目錄 比如編輯一個女朋友類 Javac -d. girlfriend.java
如果在類中是這樣去定義一個包【package com.women.meimv;】
那么就可以在com的文件夾下的women的文件下的entity文件夾下找到 girlfriend.java 文件
2.Java? 包路徑/類名【了解即可】
}
包名規(guī)范
建議全部小寫,不管有多少個單詞組成