先說Object(對象)
對象是人們要進(jìn)行研究的任何事物,從最簡單的整數(shù)到復(fù)雜的飛機(jī)等均可看作對象套耕,它不僅能表示具體的事物谁帕,還能表示抽象的規(guī)則、計劃或事件冯袍。
Stanley B.Lippman / Josee Lajoie / Barbara E.Moo.《C++ Primer》:人民郵電出版社匈挖,2010
我們要研究對象碾牌,怎么研究呢?對象應(yīng)該有幾部分組成呢儡循?基本組成部分是狀態(tài)和行為舶吗。
對象具有狀態(tài),一個對象用數(shù)據(jù)值來描述它的狀態(tài)贮折。
對象還有操作裤翩,用于改變對象的狀態(tài)资盅,對象及其操作就是對象的行為调榄。
對象實(shí)現(xiàn)了數(shù)據(jù)和操作的結(jié)合,使數(shù)據(jù)和操作封裝于對象的統(tǒng)一體中
Stanley B.Lippman / Josee Lajoie / Barbara E.Moo.《C++ Primer》:人民郵電出版社呵扛,2010
外部環(huán)境通過行為改成對象狀態(tài)每庆。可見對象表示是事物某個具體時間的狀態(tài)行為今穿。
例如:電源開關(guān)缤灵,現(xiàn)在的狀態(tài)是開著的,人按一下蓝晒,狀態(tài)就從開狀態(tài)變成關(guān)著的狀態(tài)腮出,
在按一下就變成關(guān)著的狀態(tài)了,我們可以把電源開關(guān)抽象成狀態(tài)開和關(guān)芝薇,行為是按一下胚嘲。
這就有了個另一個概念類(class),
⑶類洛二。
具有相同特性(數(shù)據(jù)元素)和行為(功能)的對象的抽象就是類馋劈。因此,對象的抽象是類晾嘶,類的具體化就是對象妓雾,也可以說類的實(shí)例是對象,類實(shí)際上就是一種數(shù)據(jù)類型垒迂。
類具有屬性械姻,它是對象的狀態(tài)的抽象,用數(shù)據(jù)結(jié)構(gòu)來描述類的屬性机断。
類具有操作策添,它是對象的行為的抽象,用操作名和實(shí)現(xiàn)該操作的方法來描述毫缆。[2
在JAVA中 ?類
Public Class開關(guān)
{
Private ??int狀態(tài)0,1(開關(guān))唯竹,---狀態(tài)
Pubilc ?void按一下 ();----行為
]
有類了苦丁,我們想得到一個對象浸颓,我們需要給類進(jìn)行初始化方法,這個時候就有了構(gòu)造函數(shù)(constructor function)
還是上面中用上構(gòu)筑方法:
Public Class開關(guān)
{
開關(guān)(int輸入狀態(tài))
(
狀態(tài)=輸入狀態(tài);
)
Private ??int狀態(tài)0,1(開關(guān))产上,---狀態(tài)
Pubilc ?void按一下 ()棵磷;----行為
]
我們初始化開關(guān)狀態(tài)為關(guān)的對象,叫關(guān)著的開關(guān)晋涣。
開關(guān)(類名)關(guān)著的開關(guān)(對象名)= new開關(guān)(構(gòu)造函數(shù))(0)仪媒;
我們要得到一個狀態(tài)為開的對象,就開著的開關(guān)谢鹊。
開關(guān)(類名)關(guān)著的開關(guān)(對象名)= new開關(guān)(構(gòu)造函數(shù))(1)算吩;