? 越來越難了T1恪H蘧弧!
局部變量和全局變量 1.定義的位置不同:局部變量是定義在局部范圍內(nèi)(方法內(nèi))偿衰,全局變量是定義類中挂疆,方法外的 2.初始化不同,對于局部變量來說下翎,局部變量未賦值不能直接使用(局部變量不會自動初始化)缤言,全局變量如果沒有賦值,系統(tǒng)會自動賦一個默認值
? (int-0视事,double-0.0胆萧,String-null,boolean-false,char-空格)? 3.生命周期:一個對象在程序當中(內(nèi)存當中)從生到死的過程,局部變量一般定義在方法內(nèi)郑口,從該方法被調(diào)用開始創(chuàng)建鸳碧,到該方法中從棧中彈出時消亡盾鳞,
? 全局變量從它所在的對象被創(chuàng)建時開始存在犬性,到從該對象從堆中被垃圾回收期(gc)回收時消亡? 4.存儲的位置不同:局部變量大多存儲在(方法棧)棧中,全局變量一般存儲在堆當中腾仅。
? 封裝特性:
? ? ? 1.把功能的一些實現(xiàn)細節(jié)隱藏掉乒裆,對外提供功能接口,堆第三方開發(fā)者或者使用用戶來說比較方便推励,大大提高了后續(xù)開發(fā)的效率? ? ? 2.提高代碼的復用性
廣義封裝:
對程序當中任何高頻重復性的代碼進行提取的動作鹤耍,我們都認為是一種封裝
工具類的概念
工具方法(通用方法)
狹義封裝:
對類當中的屬性進行封裝
? ? ? ? ? ? 使用關(guān)鍵字private
? ? ? ? ? ? 提供對應的Getter和Setter方法? ? ? ? Getter方法是用在外類中獲取該類當中對應的屬性值
? ? ? ? ? 固定寫法:
? ? ? ? ? ? ? ? ? ? public 屬性對應的數(shù)據(jù)類型 get屬性名稱[首字母大寫](){
? ? ? ? ? ? ? ? ? ? return 屬性名稱肉迫;}
? ? ? ? Setter方法是用在外類當中設(shè)置該類的屬性值
? ? ? ? ? 固定寫法:? ? ? ? ? ? ? ? ? public void set屬性名稱[首字母大寫](數(shù)據(jù)對應的數(shù)據(jù)類型 屬性名稱){
? ? ? ? ? ? ? ? ? this.屬性名稱=屬性名稱;}
? ? ? ? ? 快捷鍵Alt+insert
創(chuàng)建一個類的時候稿黄,這個類如果主要是用來存儲數(shù)據(jù)的
一般按照以下方式進行定義:
類的定義需要是公共的 public class 類名{}
類的屬性必須是私有的 private 屬性數(shù)據(jù)類型 屬性名稱喊衫;
類當中必須提供 Getter和 Setter方法
類當中必須有該方法 public 類名(){}
以下信息可以非標準的
? 類當中還需提供該方法public 類名(聲明全部的屬性參數(shù)信息){需要對類當中所有的屬性都進行賦值 this.屬性名稱=屬性名稱;}
? 該類還需實現(xiàn) public class 類名implements Serializable{}
? 該類還需提供 public String toString(){return 屬性名稱+“杆怕,”+屬性名稱+“,"+...}
? 如果按照以上方式定義出來的類族购,我們把這種類稱之為Java和bean類? bean---(bean)描述Java的軟件組件模型(Enterprise java bean)java模型類 model類 實體類--->這種類不參與業(yè)務邏輯,只用來存儲數(shù)據(jù)的
構(gòu)造方法:
作用:主要用來創(chuàng)建類的對象(完成類的實例化 )
次要作用在完成類的實例化的時候陵珍,對類當中的私有屬性進行初始化(賦值)
? 構(gòu)造方法定義的語法格式:? ? ? public 當前類名[類名首字母大寫]{屬性的數(shù)據(jù)類型 屬性名稱寝杖,屬性的數(shù)據(jù)類型 屬性名稱2.... }{
? ? ? this.屬性名稱1=屬性名稱1;? ? ? this.屬性名稱2=屬性名稱2互纯;......
}
? 構(gòu)造方法的特點:? ? ? 1.構(gòu)造方法聲明格式上沒有指定具體的返回值類型(是因為該方法的返回值類型是確定的瑟幕,返回值類型唯一)使用void是不可以的? ? ? 2.構(gòu)造方法名稱需要和當前類名完全保持一致,大小寫完全相同? ? ? 3.構(gòu)造方法是支持方法重載(構(gòu)造方法可以在類當中定義多個)? ? ? 4.構(gòu)造方法修飾符一旦使用private修飾留潦,意味著該類不能在外類當中進行類的實例化只盹,一般情況下需要在該類當中調(diào)用其他方法來完成實例化? ? ? 5.構(gòu)造方法如果在該類當中沒有定義過,不影響開發(fā)者進行該類的實例化(系統(tǒng)會添加一個默認的構(gòu)造方法---空參構(gòu)造方法)愤兵,一旦你定義了其他的構(gòu)造方法
? ? ? 那么系統(tǒng)會刪除添加的默認構(gòu)造方法---空參構(gòu)造鹿霸,需要手動添加默認的空參構(gòu)造方法。? this關(guān)鍵字:
? 該關(guān)鍵字是用在方法當中秆乳,該方法不能是一個被static修改的方法(比如main就是一個被static修飾是的)
意義:
當方法聲明格式上有參數(shù)傳遞時懦鼠,參數(shù)名稱和類當中的屬性 名稱重名了
? ? ? 按照Java當中的就近原創(chuàng),優(yōu)先使用方法聲明上參數(shù)屹堰,但是對于開發(fā)者來說使用的是類當中定義的屬性肛冶,就需要使用this關(guān)鍵字來指代它是一個屬性名稱