iT邦幫忙

1

關於 物件(Object)與類別(class)

  • 分享至 

  • xImage
  •  

正在複習C#~(書 和影片 文章 看到頭暈/images/emoticon/emoticon06.gif)
發現有些觀念真的簡單又不簡單
一定要用自己的方式搞懂~!/images/emoticon/emoticon13.gif
(P.S以下是自學筆記淺談而已)

物件(object)是什麼?

概念:真實世界中的所有具體或抽象的事物,
都可以將之視為一個『物件』 ,
物件是動態的,狀態會隨時改變但架構與行為不會改變。

物件(Object)有的特性:

  • 屬性(Property):指物件各種特性的現況,物件擁有許多特性(attribute),這些特性代表了一個物件的外觀或某些性質。
  • 方法(Method):每個物件都擁有不同的行為,這些行為在物件導向程式設計中稱之為方法(Method)指物件的功能。

舉例具體的東西
車子
屬性(Property):品牌名、速度、排氣量、顏色、重量
方法(Method): 往前行駛、倒退、煞車


屬性(Property):名字、性別、生日、身高、體重
方法(Method):講話、吃飯、走路

哈利波特OOP

在程式設計或執行階段,我們可以藉由改變屬性值來改變整個物件的某些特性,完成我們想要的物件表示形式。
例如:把車子漆成藍色、將波特的眼鏡換為方形...等。

物件的宣告

宣告物件的方法,直接使用類別的名稱來宣告

class Student
{
   String name;
   String sex;
   int age;
}
Student Harry;   //宣告物件變數Harry

產生物件實體語法(要先建立實體物件,然後才能使用實體屬性)

產生物件實體使用的是new運算子,範例如下:

//物件變數 = new 類別名稱(引數1,引數2…);
Harry = new Student(); 

可以直接寫成這樣

Student Harry = new Student();

類別(Class)是什麼?

類別算是一個藍圖、一個範本、一個可參考的文件,他沒有 實體 (Instance) 的概念,屬靜態的
類別可像結構一樣,可以在類別中定義多種基本資料型態(如int、char、float)的變數,
這些資料變數稱為類別的資料成員(data member)。

類別還可以定義所需的功能函數稱為成員函數(member function)。是一種加上行為(函式)的結構
也把「資料」與處理資料的程式「函式」整合起來

類別(Class)有的特性

  • 一個類別包含:

    • 資料成員(Data member)
    • 成員函數(Member functions)
    • 將資料和函數放在一起的動作就稱為封裝(Encapsu-lation)
  • 由類別所宣告的變數叫做物件(object)

在實際的物件導向程式設計中(例如 C#、Java),我們必須先定義類別,然後才能夠透過類別宣告各個屬於該類別下的物件,接著再設定物件的屬性來代表該物件某方面的特性,並使用物件的方法來操作物件。

宣告類別名稱

【範例】

//定義一個Person類別 裡面有姓名 性別 及年齡
//資料型態有string字串 與int整數型別

class Person
  {
    String name;
    String sex;
    int age;
  }

物件(Object)與類別(class)兩者關係

(引用保哥的比喻/images/emoticon/emoticon24.gif)
蓋世武功

類別:武林密笈
物件:修練武林密笈而成的武林高手
兩者關係:
武林密笈(類別)記載許多各種攻擊與回應的方式,
讓武林高手(物件)知道遭遇到什麼攻擊時要用什麼招式回應。

程式設計:每執行到我們用 new 運算子時,等同於將物件產生,
也等同於成功得到武林密笈可以開始練功,或是在「建構子」的時候就已經賦予你基本功力。

大概介紹到以上 哈哈
關於所有類型和類型成員都具有存取範圍層級
public
protected
internal
protected internal
就等下一篇文章出產啦

來源參考自:
Will保哥的物件導向基礎:何謂類別(Class)?何謂物件(Object)?
陳鍾誠老師的C#程式教學


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言