對(duì)象是什么弛矛?
以下都是自己的讀書(shū)有感够吩,源代碼是C#,自己配上java代碼吧丈氓,希望大家多多批評(píng)指正:
萬(wàn)物皆對(duì)象周循,可以看到、摸到万俗、聽(tīng)到湾笛、聞到的實(shí)體。具有事物的特性標(biāo)識(shí)闰歪。
現(xiàn)在要寫(xiě)個(gè)java代碼可以在控制臺(tái)打印出貓叫(“喵”)
package demo;
public class CatShout {
public static void main(String[] args) {
System.out.println("喵");
}
}
如果要打印好幾遍貓叫嚎研,可以寫(xiě)好幾遍
System.out.println("喵");
但是是重復(fù)了,所以要想個(gè)別的辦法课竣,也就是要寫(xiě)個(gè)函數(shù):
public class CatShout? {
public static void main(String[] args) {
System.out.println(Shout());
}
public static String Shout(){
return "喵";
}
}
此出方法也用static修飾的原因是main 方法也用static修飾了嘉赎。
但是上面的代碼有問(wèn)題,Shout()加了public就是公共的于樟,其他地方也都都可以訪問(wèn)公条,就好像公共物品放在某人的家里,別人用的時(shí)候就去他家迂曲,這樣明顯不合理靶橱,所以公共物品要放在公共場(chǎng)合。這也就是類(lèi)的誕生。
類(lèi)是什么关霸?
類(lèi)是具有相同的屬性和功能的對(duì)象的集合传黄。
舉個(gè)栗子:某貓的名字叫小黑。小黑就是一個(gè)對(duì)象队寇。貓就是個(gè)類(lèi)膘掰。
所以要寫(xiě)個(gè)類(lèi):
public class Cat {
public String Shout(){
return "喵";
}
}
然后創(chuàng)建一個(gè)對(duì)象進(jìn)行使用:
public class CatShout? {
public static void main(String[] args) {
Cat cat = new Cat();
System.out.println(cat.Shout());
}
}
注意Cat cat = new Cat();做了兩件事:(1)聲明了一個(gè)Cat的對(duì)象起名為cat(2)將cat實(shí)例化
就相當(dāng)于一只貓生了一只小貓。
構(gòu)造方法
構(gòu)造方法又叫構(gòu)造函數(shù)同時(shí)還是構(gòu)造器佳遣,其實(shí)就是對(duì)類(lèi)進(jìn)行初始化识埋。并且與類(lèi)同名,無(wú)返回值零渐,也不需要void窒舟,在new的時(shí)候調(diào)用。
也許在咱們樓上用到new的時(shí)候咱們沒(méi)有寫(xiě)構(gòu)造方法诵盼,很奇怪惠豺,原因是:所有的類(lèi)都有構(gòu)造方法,如果不寫(xiě)风宁,則系統(tǒng)會(huì)默認(rèn)生成一個(gè)空的構(gòu)造方法洁墙,如果你寫(xiě)了那默認(rèn)的就失效了。
比如說(shuō)樓上有小貓了杀糯,我們要給小貓起名字扫俺。那么就應(yīng)該用到帶參數(shù)的構(gòu)造方法了。
public class Cat {
private String name ="";
public Cat(String name) {
this.name = name; }
public String Shout(){
return "我是"+name+"喵";
}
}
public class CatShout {
public static void main(String[] args) {
Cat cat = new Cat("咪咪");
System.out.println(cat.Shout());
}
}
方法重載
如果提前沒(méi)有準(zhǔn)備小貓的名字就不能創(chuàng)建了嗎固翰?答案是否定的狼纬,這就用到了方法的重載。方法的重載就是與方法名相同骂际,參數(shù)的類(lèi)型疗琉,個(gè)數(shù)不一樣。
public class Cat {
private String name ="";
public Cat(String name) {
this.name = name;
}
public Cat() {
this.name= "沒(méi)想好";
}
public String Shout(){
return "我是"+name+"喵";
}
}
public class CatShout {
public static void main(String[] args) {
Cat cat = new Cat("咪咪");
Cat cat1 = new Cat();
System.out.println(cat.Shout());
System.out.println(cat1.Shout());
}
}