object和Class配合工作原理
【新手可忽略不影響繼續學習】 Class是"類"的意思,是抽象的,並沒有具體的說是哪個東西。而object是具體的,實實在在存在的一個東西,一個物體。比如車就是一個類,而不是一個object,因為車這個概念是抽象的,並沒有具體指明是哪輛車。而車牌號為京HT3113的這輛車就是一個object,因為它實實在在的存在。而另外一輛車牌號為京jw2344車是另外一個實實在在的object,這兩個object屬於一類叫"車"。車這一類有別於另外一類:窗體window。window是類而不是object,原因是你並沒有實實在在,具體的指明,@馬克-to-win是哪一個window,而我電腦上,暴風的window或迅雷的window就是兩個具體的實實在在的object。
馬克- to-win:馬克 java社群:防盜版實名手機尾號: 73203。
【新手可忽略不影響繼續學習】 類相對於物件來講是抽象的,但好處是可以總結提取出所有物件的共同性,比如車這類都是有四個輪子的,而window這類都有寬度,且window這類可以被關閉。這樣屬於window這一類的物件,比如暴風window或迅雷window都有寬度,@馬克-to-win且都可以被關閉。福利來了,"關閉"這行為,所有window物件都有。具有共性的”關閉”行為如果放在類中只需放一份,而放在物件中卻要放n份,我們立刻看出了類和物件協同工作的好處。好,綜上所述,我們給出程式碼:
本章原始碼
class Window {
int width;
int height;
/*close放在類中只需放一份。省去重複工作, 每個object都可以用, 當呼叫baoFengObject.close();時, 以下方法被執行,其中width變數,是baoFengObject的屬性,而不是xunLeiObject的屬性。 */
void close() {
System.out.println("kuan" + width + "的window被關閉。");
}
}
public class Test {
public static void main(String[] args) {
/*Window baoFengObject = new Window();和 int a=3如出一轍, int a=3說明a是int這個型別的,而不是float
這個型別的。Window baoFengObject = new Window(); 說明baoFengObject這個物件屬於window這個類, 而不是
車這個類的, 而且int a=3 在記憶體中分配了a這個空間等於3,而Window baoFengObject = new Window();時
baoFengObject在記憶體 中初始化了,被分配了空間,其中width初始化成了0 @馬克-to-win*/
Window baoFengObject = new Window();
baoFengObject.width=999;//999代表暴風
baoFengObject.height=999;//999代表暴風
Window xunLeiObject = new Window();
xunLeiObject.width=111;//111代表迅雷
xunLeiObject.height=111;//111代表迅雷
/* 有新手怎麼都不明白下面一句的意思?什麼是baoFengObject.close(); ,好,在前面java一章,我們學過方法,method,子函式,這些都是一回事,close()方法,close()子函式總明白吧?這裡 baoFengObject.close(),說的就是呼叫baoFengObject的close()方法*/
baoFengObject.close();
xunLeiObject.close();
}
}
結果是:
kuan999的window被關閉。
kuan111的window被關閉。
補充:c語言子函式背景知識:
public class Test {
static void close() { //這是子函式
System.out.println("kuan" + "的window被關閉。");
}
public static void main(String[] args) {
close();//這是主函式,無輸入引數,無返回值
System.out.println("完了");
}
}
輸出結果:
kuan的window被關閉。
完了
作業:
1)做一個類名字叫Phone,有兩個屬性,分別叫做pinpai和jiage,再編一個方法叫print,生成一個物件叫做huawei,pinpai是字串型別,名叫華為。jiage的型別是int,是3000。在測試類當中列印他自己的價格和品牌。再生成一個物件,叫做蘋果,價格是4000元,品牌是蘋果。
篇幅有限更多請見擴充套件連結:http://www.mark-to-win.com/tutorial/java_2_ObjectClassDifference.html馬克java社群,馬克吐溫社群,java中“類”和“物件”到底有什麼聯絡,Java,object和Class,類和物件,馬克-to-win,青少年Java,教程,入門,零基礎,小白,菜鳥,初學者,自學者