對象是什么?
以下都是自己的讀書有感,源代碼是C#,自己配上java代碼吧,希望大家多多批評指正:
萬物皆對象,可以看到、摸到、聽到、聞到的實體。具有事物的特性標(biāo)識。
現(xiàn)在要寫個java代碼可以在控制臺打印出貓叫(“喵”)
package demo;
public class CatShout {
public static void main(String[] args) {
System.out.println("喵");
}
}
如果要打印好幾遍貓叫,可以寫好幾遍
System.out.println("喵");
但是是重復(fù)了,所以要想個別的辦法,也就是要寫個函數(shù):
public class CatShout? {
public static void main(String[] args) {
System.out.println(Shout());
}
public static String Shout(){
return "喵";
}
}
此出方法也用static修飾的原因是main 方法也用static修飾了。
但是上面的代碼有問題,Shout()加了public就是公共的,其他地方也都都可以訪問,就好像公共物品放在某人的家里,別人用的時候就去他家,這樣明顯不合理,所以公共物品要放在公共場合。這也就是類的誕生。
類是什么?
類是具有相同的屬性和功能的對象的集合。
舉個栗子:某貓的名字叫小黑。小黑就是一個對象。貓就是個類。
所以要寫個類:
public class Cat {
public String Shout(){
return "喵";
}
}
然后創(chuàng)建一個對象進(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)聲明了一個Cat的對象起名為cat(2)將cat實例化
就相當(dāng)于一只貓生了一只小貓。
構(gòu)造方法
構(gòu)造方法又叫構(gòu)造函數(shù)同時還是構(gòu)造器,其實就是對類進(jìn)行初始化。并且與類同名,無返回值,也不需要void,在new的時候調(diào)用。
也許在咱們樓上用到new的時候咱們沒有寫構(gòu)造方法,很奇怪,原因是:所有的類都有構(gòu)造方法,如果不寫,則系統(tǒng)會默認(rèn)生成一個空的構(gòu)造方法,如果你寫了那默認(rèn)的就失效了。
比如說樓上有小貓了,我們要給小貓起名字。那么就應(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());
}
}
方法重載
如果提前沒有準(zhǔn)備小貓的名字就不能創(chuàng)建了嗎?答案是否定的,這就用到了方法的重載。方法的重載就是與方法名相同,參數(shù)的類型,個數(shù)不一樣。
public class Cat {
private String name ="";
public Cat(String name) {
this.name = name;
}
public Cat() {
this.name= "沒想好";
}
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());
}
}