DAY7
07.01構(gòu)造方法Constructor
一枣耀、構(gòu)造方法的概述及作用:給對(duì)象的數(shù)據(jù)(屬性)進(jìn)行初始化笆檀。
二、構(gòu)造方法格式特點(diǎn):
1.方法名與類名相同(大小也要與類名一致)哪轿。
2.沒(méi)有返回值類型腐螟,連void都沒(méi)有。
3.沒(méi)有具體的返回值return钦幔。
注意事項(xiàng):構(gòu)造方法不能用對(duì)象調(diào)用枕屉。//p.Person();會(huì)報(bào)錯(cuò)。
07.02構(gòu)造方法的重載
一鲤氢、重載:方法名相同搀擂,與返回值類型無(wú)關(guān),只看參數(shù)列表铜异。
二哥倔、構(gòu)造方法注意事項(xiàng)
1.未給出構(gòu)造方法,系統(tǒng)將自動(dòng)提供一個(gè)無(wú)參構(gòu)造方法揍庄。
2.當(dāng)給出構(gòu)造方法咆蒿,系統(tǒng)將不再提供默認(rèn)的無(wú)參構(gòu)造方法。無(wú)參構(gòu)造建議自己手動(dòng)搭建蚂子。
舉例:
class Day7_Test1 {
publicstatic void main(String[] args){
Personp1=new Person();
p1.show();
System.out.println("*********************");
Personp2=new Person("張三",28);//相當(dāng)定義p2
p2.show();//括號(hào)內(nèi)無(wú)需填寫(xiě)沃测,起調(diào)用。
}
}
class Person {//class Person與classDay7_Test1是平級(jí)食茎,互不統(tǒng)轄
privateString name;
privateint age;
publicPerson(){
System.out.println("空參構(gòu)造");
}
publicPerson(String name,int age ){
this.name=name;
this.age=age;
System.out.println("有參構(gòu)造");
}
public void show(){//該方法無(wú)需返回蒂破,數(shù)據(jù)類型為void
System.out.println(name+"....."+age);
}
}
07.03區(qū)別給成員賦值兩種方法的區(qū)別
一、直接賦值將原對(duì)象變成垃圾别渔。
二附迷、setXxx構(gòu)造方法給屬性進(jìn)行初始化,修改屬性值哎媚,而不創(chuàng)建新的對(duì)象喇伯。
舉例:
class Day7_Test2 {
publicstatic void main(String[] args){
Personp1=new Person("蔡陽(yáng)",24);
//p1=new Person("劉恩仕",25);該方法一般是直接將原對(duì)象變成垃圾。
System.out.println(p1.getName()+"....."+p1.getAge());
System.out.println(".................");
Person p2=new Person();
p2.setName("劉恩仕");
p2.setAge(24);
System.out.println(p2.getName()+"....."+p2.getAge());
p2.setAge(25);//構(gòu)造方法給屬性進(jìn)行初始化拨与,用setXxx修改屬性值稻据。
System.out.println(p2.getName()+"....."+p2.getAge());//(p2.getName()調(diào)用方法
}
}
class Person {//class Person與class
Day7_Test1是平級(jí),互不釋統(tǒng)轄
privateString name;
privateint age;
publicPerson(){
}
publicPerson(String name,int age ){
this.name=name;//注意this的調(diào)用
this.age=age;
}
publicvoid setName(String name){//setXxx括號(hào)內(nèi)的內(nèi)容买喧,記住格式
this.name=name;
}
publicString getName(){
returnname;
}
publicvoid setAge(int age){
this.age=age;
}
publicint getAge(){
returnage;
}
}
07.04學(xué)生類捻悯、手機(jī)類的練習(xí)思路
一、分析成員變量:品牌淤毛、價(jià)格等
二今缚、構(gòu)造方法:無(wú)參、有參
三钱床、成員方法:
1.setXxx和getXxx;
2.show
07.05如何創(chuàng)建對(duì)象
一荚斯、Student.class加載進(jìn)內(nèi)存。
二、聲明一個(gè)Student類型引用事期。
三滥壕、在堆內(nèi)存創(chuàng)建對(duì)象。
四兽泣、給對(duì)象中屬性默認(rèn)初始化值绎橘。
五、屬性進(jìn)行顯示初始化唠倦。
六称鳞、構(gòu)造方法進(jìn)棧對(duì)對(duì)象中的屬性賦值,構(gòu)造方法彈棧稠鼻。冈止。
七、將對(duì)象的地址值賦值給s.
07.06 static關(guān)鍵字的特點(diǎn)
一候齿、隨著類的加載而加載熙暴。
二、優(yōu)先于對(duì)象存在慌盯。
三周霉、被類的所有對(duì)象共享。(共性用靜態(tài)亚皂,特性用非靜態(tài))
注意事項(xiàng):
1.在靜態(tài)方法中是沒(méi)有this關(guān)鍵字的俱箱。
2.靜態(tài)方法只能訪問(wèn)靜態(tài)的成員變量和靜態(tài)的成員方法,而非靜態(tài)方法兩者均可灭必。
07.07靜態(tài)變量與成員變量的區(qū)別
定義:靜態(tài)變量也叫類變量狞谱,成員變量也叫對(duì)象變量
一、所屬不同
1.靜態(tài)變量屬于類禁漓,也稱為類變量芋簿。
2.成員變量屬于對(duì)象,也稀爛實(shí)例對(duì)象璃饱。
二、內(nèi)存中的位置不同
1.靜態(tài)變量存儲(chǔ)于方法區(qū)的靜態(tài)區(qū)肪康。
2.成員變量存儲(chǔ)于堆內(nèi)存荚恶。
三、出現(xiàn)時(shí)間不同
1.靜態(tài)變量隨著類的加載而加載磷支,隨著類的消失而消失谒撼。
2.成員變量隨著的對(duì)象的創(chuàng)建而存在,隨著對(duì)象的消失而消失雾狈。
四廓潜、調(diào)用不同
1.靜態(tài)變量可以通過(guò)類名調(diào)用涕滋,也可以通過(guò)對(duì)象調(diào)用色罚。
2.成員變量只能通過(guò)對(duì)象名調(diào)用。
07.08main方法格式的詳細(xì)解釋
Public:被jvm調(diào)用,權(quán)限足夠大啄巧。
Static:被jvm調(diào)用,不要?jiǎng)?chuàng)建對(duì)象淮逊,直接類名袱耽,調(diào)用即可。
Void:被jvm調(diào)用据途,不需要任何返回值绞愚。
Main:只有這樣寫(xiě)才能被jvm識(shí)別,main不是關(guān)鍵字颖医。
String[] args:以前是用來(lái)接收鍵盤錄入的位衩。