標籤:java學習 現實生活 起名字 找對象 java
物件導向三種特徵:繼承、封裝、多態。
以後開發過程中就是找對象使用,沒有對象就建立一個對象。(找對象--建立對象--使用對象---維護對象)。
類和對象的關係:
現實生活中的對象:張山,李四
想要描述就是只要提取對象中的共性內容,對具體進行抽象。
描述:比如這些共性有:姓名、年齡、性別、學習java的功能。
類就是對現實生活中實物的描述。
對象:就是這類事物,實實在在存在的個體。
java中類用class來定義,具體的對象是對應java在堆記憶體中用new建立的實體。
***成員變數與局部變數:
成員變數作用於整個類中,局部變數作用於函數中或者語句中。
成員變數在堆記憶體中,因為對象的存在才存在記憶體中。
局部變數在棧記憶體中。
===========================================================================================匿名對象使用方法之一:
1、當對象的方法只需要調用一次時候可以使用匿名(沒有名字)對象來完成這樣寫比較簡化。
如果對一個對象進行多個成員調用,必須給這個對象起名字。
匿名對象使用方式二:
可以將匿名對象作為實際參數進行傳遞。
封裝:
封裝:是指隱藏對象的屬性和實現細節,僅僅對外提供公用訪問方式。
好處:
將變化隔離、便於使用、提高重用性、提高安全性
封裝的原則:
將不需要對外提供的內容隱藏起來、把屬性都隱藏,提供公用訪問對其訪問。
封裝private:私人許可權修飾符:用於修飾類中的成員(成員變數、成員函數)
私人只有在本類中有效。
***注意:私人僅僅是封裝的一種表現形式。
==========================================================================================
建構函式:
特點:
函數名與類名一致;不用定義還回實值型別;不可以寫return語句;
class test{
test(){
System.out.println("person run");
}
}
class test1{
public static void main(String[] args){
test t=new test();
}
}
##對象一建立就會調用與之對應的建構函式。建構函式的作用:可以用於給對象進行初始化。
建構函式的小細節:
當一個類中沒有定義建構函式的時候,那麼系統會預設給該類加入一個空參數的建構函式;
建構函式與一般函數在寫法上有不同。
在運行上也有不同。
建構函式在對象一建立就運行給對象初始化
而一般方法是對象調用才執行的,給對象添加對象具備的功能。
一個對象建立建構函式值運行一次
而一般方法可以被該對象調用多次
什麼時候需要定義建構函式呢?
檔分析事物時,該事物存在具備一些特性或者行為,那麼將這些內容定義在建構函式中
===========================================================================================
重載:
class test{
private String name;
private int age;
test(){
System.out.println("A: name="+name+",,age="+age);
}
test(String n){
name=n;
System.out.println("B: name="+name+",,age="+age);
}
public void setName(string n){
name=n;
}
public String getName(){
return name}
test(String n,int a){
name=n;
age=a;
System.out.println("C: name="+name+",,age="+age);
}}
class test1{
public static void main(String[] args){
test t=new test();
test t1=new test("LISI");
t1.setName("libushi")
test t2=new test("lisi",10);
}
}
輸出結果:
A: name=null,,age=0
B: name=LISI,,age=0
C: name=lisi,,age=10
構造代碼塊:作用是給對象進行初始化,對象一建立就運行而且優先於建構函式執行。
與建構函式的區別:
構造代碼塊是給所有對象進行統一初始化。
而建構函式是給對應的對象進行初始化
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/89/9E/wKiom1gYUESRvalcAADWAdx_bfo364.png-wh_500x0-wm_3-wmp_4-s_2870647462.png" title="QQ圖片20161101162124.png" alt="wKiom1gYUESRvalcAADWAdx_bfo364.png-wh_50" />
構造代碼塊代碼中定義的是不同對象的共性的初始化內容。
===========================================================================================
this關鍵字使用:
class test{
private String name;
private int age;
test(){
System.out.println("A: name="+name+",,age="+age);
}
test(String name){
this.name=name; /*this看上去是用於區分局部變數和成員變數同名的情況*/
System.out.println("B: name="+name+",,age="+age);
}
test(String n,int a){
name=n;
age=a;
System.out.println("C: name="+name+",,age="+age);
}}
class test1{
public static void main(String[] args){
test t=new test();
test t1=new test("LISI");
test t2=new test("lisi",10);
}
}
this: 代表本類的對象,到底代表哪個呢?
this代表 它所在對象所屬 對象的引用:簡單的說哪個對象在調用this所在的函數,this就代表哪個對象。
this用於建構函式之間互相調用。
JAVA學習第五天