1. 程式人生 > >什麼是類、物件、屬性、方法、成員?

什麼是類、物件、屬性、方法、成員?

日常生活中的所有東西都是物件,而具有同種屬性的一類事物被稱為,人、動物、植物、車都是類(是抽象的),而姚明這個人就是一個具體的物件。

物件是類的例項化,比如唐伯虎點秋香裡面的小強是蟑螂的例項化。
我們一般不會用類的名稱類稱呼一個物件。
周星馳說“小強,你死得好慘啊!”,而不是說“蟑螂,你死得好慘啊!”。
這裡“蟑螂”是類名,而小強是物件的名稱。

屬性用來描述具體某個物件的特徵。比如姚明身高2.26M,體重100KG,這裡身高、體重都是屬性。
面向物件的思想就是把一切都看成物件,而物件一般都由屬性+方法組成,比如說張三,嘴巴可以看成他的一個屬性,而說話成可以看成他的一個方法,其實方法就是一些function函式。

屬性屬於物件靜態的一面,用來形容物件的一些特性,方法屬於物件動態的一面,你可以些方法來操作一個物件,我們把屬性合方法稱為這個物件的成員

總結下:
類:具有同種屬性的物件稱為類,是個抽象的概念。比如說:汽車、人、狗、神;
物件:日常生活中的所有東西都是物件,是類的例項化。比如說:小強是蟑螂的例項化,
屬性:用來描述具體某個物件的特徵的是屬性,是靜態的。比如:姚明身高2.26米;
方法:每個物件有它們自己的行為或者是使用它們的方法,比如說一隻狗會跑會叫等,我們把這些行為稱之為方法,是動態的,可以使用這些方法來操作一個物件;
類的成員:屬性和方法稱為這個物件的成員,因為它們是構成一個物件的主要部分,沒有了這兩樣東西,那麼物件也沒什麼存在意義了。

下面介紹下在javascript中如何宣告一個類
在java,c#等語言中,是以class關鍵字來宣告一個類的

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 //比如在C#中宣告一個Person類 //這是一個典型的類,它包含一個欄位、一個方法和一個稱為建構函式的特殊方法 publicclassPerson{ // Field publicstringname; // Constructor publicPerson(name){ name = name; } // Method publicvoid
Sayhello(stringfriend){ System.Console.WriteLine("hello!"+ friend + ",my name is"+name); } }

但是在javascript中使用了與宣告函式一樣的方式來宣告類,這讓許多初學Js的同學很迷惑,不過熟悉了自然就理解了。
下面我們用javascript來實現上面的Person類.

PS:雖然javascript不是“面向物件”的語言,最多隻能說是“基於物件”,但是如果是初學者,最好不要太過於糾結這個,我們索性就把他當作面向物件的語言,只是形式上有些差別。

?
1 2 3 4 5 6 7 8 9 10 11 //這裡用js定義了一個與上面c#定義的一樣功能的類 //function就是Person類的建構函式 //建構函式是一種特殊的成員函式,它主要用於為物件分配儲存空間,對資料成員進行初始化. functionPerson(name){ // Field this.name = name; // Method this.Sayhello = function(friend){ document.write("hello!"+ friend + ",my name is"+name); } }

上面說過具有同種屬性的事物被稱為類,是個抽象的東西
我們使用類作為母板來建立一個物件,這個過程倍稱為“例項化”,下面我們例項化一個Person類

?
1 2 varlilei = newPerson("lilei"); lilei.Sayhello("hanmeimei");//輸出:hello!hanmeimei,my name is lilei

TODO:欄位,屬性,靜態屬性,原型等概念