【中低階級】-[物件導向]-介紹

更新於 發佈於 閱讀時間約 7 分鐘

  物件導向(Object Oriented Programming,又稱OOP),在程式領域中很常會看到一些英文代稱,如果不懂的話就比較會不知道在說些什麼,所以除了知道中文名稱外也要稍微知道一下它的代稱是什麼會比較好唷!

一、什麼是物件導向?

  把程式寫出來的功能集合成一個類別(class),接著建立成一個物件(object),再利用物件(object)做溝通與操作,什麼意思?舉個生活上的小例子:

  大家一定都有考過試吧~考完成績單也就會出來了,那麼從考試到各科成績出來最後統整出成績單,這整個流程在程式中就是「主程式」在寫的內容,也就是實際上在做的事情。

  那麼成績單是怎麼生成的呢?就是一開始會有成績單的格式,既定的格式通常在腦袋中,例如說有座號、名字、各科成績、排名...這樣的項目排列,那麼為了以後可以套用此格式因此就將這樣的格式打好後存檔命名為「成績單」,這樣的命名在程式中就是命名「類別(Class)」的名稱。

  也就是只要有考試才有可能會使用這樣格式的成績單,否則它只是一個毫無用處的檔案,要使用它就需要將成績單格式另存新檔(新建立出來),也就是專屬於當天考試的成績單,這個新的成績單檔案就可以使用,學生成績出來就可以把資料輸入進去。

  在程式中一樣的道理,主程式在執行的時候,需要用到類別(Class)的時候再建立出來成為物件(Object)就可以了,否則它也只是裝飾品並毫無用處。


物件導向還有一些名詞要知道的,這邊就一一比喻與敘述,這樣就會更了解了。先看一下一般基本成績單的樣子。

基本成績單

基本成績單

•一開始要有一個空間才能設計成績單,如:將固定格式的成績單另存新的檔案,我們就稱它為空白的檔案,那麼「另存」這個在程式中就是建立「物件(object)」,也就是新建立一個檔案。

•學生的成績出來了就要使用成績單,那麼我們新建立出來的成績單就要為它做命名,因此就將這個檔案命名為「段考成績單」,這個「命名」在程式中也就是做「類別(Class)」的命名

成績單中基本會有座號、名字、各科目成績、排名,這些項目欄位在程式裡一樣也稱為「欄位(Field)」,也就是第一排的項目。

有時候可能會有成績異動需要更改,有些不用,那麼更不更改這個狀況在程式中就稱作「屬性(Property)」,在程式中會配合get 和 set 來控制外部的存取與修改。

•當學生成績建立好的時候可能就需要去做列印,那麼去做「列印」這個動作也會是在「段考成績單」這邊去做列印,在程式中就是在類別(Class)中去做動作,那這個動作就稱為「方法(Method)」,這個方法只有在這個類別(Class)中才可以使用ㄛ!其他檔案就算有列印這個功能,但資料不會是你剛輸入的資料,所以這邊成績單列印是針對「段考成績單」這個檔案去做列印的。


這邊把這些名詞簡單的統整一下:

物件(object):建立一個具體或抽象的東西,如:檔案、學生、電腦、水、生物等等

類別(class):用來分門別類的,如:小狗、小貓、小鳥...這些就屬於「動物」類

欄位(Field):特性或屬性的名稱,例如小狗的「名字」、小狗的「年齡」、小狗的「毛色」...等

屬性(Property)值:對於欄位的各名稱給予的值,就是屬性值。如:小狗名字=「吉利」、小狗穿的衣服=「紅色」...等

方法(Method):對於物件(object)所做出來的行為動作,如:學生在「說話」、電腦在「開機」、小狗在「走路」、檔案在「列印」...等

這樣有沒有更懂一點了呢?我們來看一下圖示:

建立物件圖示

建立物件圖示

這就是主程式依照類別(Class)的格式去建立一個物件(object),那類別(class)裡面就包含著欄位(Field)、屬性(Property)、方法(Method),還有一個是建構函式(Constructor),這個是將一些資料由外部取得的資料把它拿到這個類別中可以做存取使用,也就是說把成績的資料輸入到「成績單」中。

建構函式(Constructor)就有一點像是數學的函式f(x,y)=運算式,由外面取得x、y值後,再進入到運算式中進行處理,一樣的道理。

一開始要先設計類別,欄位、屬性、方法這些先規劃好後,再來寫主程式,那麼程式的執行流程就會是:

建立類別(Class)格式圖示

建立類別(Class)格式圖示

主程式去使用類別(Class)圖示

主程式去使用類別(Class)圖示

說明:
1.目前這個建立還未進入主程式喔!只是先建立Class的格式而已

2.主程式想要使用Class,就要去建立這樣個格式才可以操作,因此要new一個Class,並且裡面要有一些資料參數才可以真正建立成一個完整的物件

3.主程式想要讓剛剛輸入到Class中的資料去做列印這個動作,那麼就可以使用「.列印」("."就是去做什麼事的意思),也就是一開始我們在Class中所設計的格式去建立屬於它的方法,只有這個Class才可以使用的方法哦!因為是在這個Class下所建立的,若有其他的Class就無法使用了。


二、為什麼要有物件導向?

  程式一寫下去可能就好幾百行、好幾千行,甚至更多,那麼物件導向就是把程式用物件的方式做類別的區分主程式在執行過程只要把相同類別的東西利用我們所建立的類別(Class)格式,拉進來去建立成物件就可以使用,之後也就可以一直重複使用相同格式的程式碼,主程式就可以簡短很多,幾乎寫程式都會運用到物件導向,所以非常的重要一定要把物件導向學好。


三、什麼時候會用到它?

  只要程式有物件導向這個功能就幾乎都會用到它,像是C#、Java就都有物件導向,所以使用機率很高。


四、如何使用它?

一開始要先設計程式架構去做分門別類的事,接著再進行主程式的編寫。

Step1建立類別(Class)

加入類別

加入類別

類別命名

類別命名

Step2類別內容設計

建立類別格式-1

建立類別格式-1

建立類別格式-2

建立類別格式-2

Step3:主程式再開始寫

主程式使用類別

主程式使用類別

Step4:程式執行結果

執行結果

執行結果

執行後,因為我們主程式有做「成績單去列印」這件事,所以在我們「成績單」這個類別(Class)的方法(Method)是在做下面這件事

Console.WriteLine(id + name + "成績單去列印囉~");

因此也就會對應到在主控台就會顯示「當初給予的資料(座號與名字)+成績單去列印囉~」這樣的文字出來。


參考資料
1.[ASP.NET] [C#] 物件導向 - 十分鐘聽我說 類別 (一)
2.[C#][Visual Studio] 類別與物件 (class and object)

留言
avatar-img
留言分享你的想法!
avatar-img
橙果杏的沙龍
24會員
43內容數
Hello~ Welcome to my blog~❤ 這邊會分享我在程式這條道路中的學習與成長, 過程中從而了解自己的不足,再學習。 希望透過分享的方式, 也讓正在學習程式的夥伴們一起學習, 我們一起加油吧~ 「彼此都會成為彼此之間的影響力」(´,,•ω•,,)♡ ❣
橙果杏的沙龍的其他內容
2024/07/30
一、什麼是WinSocket? 也就是大家常說的WinSock全名為Windows Sockets API (WSA),它會透過TCP/IP通訊協定來做網路的通訊,會用在Windows操作系統上來開發網路應用的API(應用程式介面)   二、WinSocket用在哪裡?   Socket可以
Thumbnail
2024/07/30
一、什麼是WinSocket? 也就是大家常說的WinSock全名為Windows Sockets API (WSA),它會透過TCP/IP通訊協定來做網路的通訊,會用在Windows操作系統上來開發網路應用的API(應用程式介面)   二、WinSocket用在哪裡?   Socket可以
Thumbnail
2024/06/29
當我們架好站、WebService測試完,接著就是測試區域網路連線啦~
Thumbnail
2024/06/29
當我們架好站、WebService測試完,接著就是測試區域網路連線啦~
Thumbnail
2024/06/20
前面已經安裝好IIS後,並且也新建站台了,那麼接下來這篇就會分享如何使用它
Thumbnail
2024/06/20
前面已經安裝好IIS後,並且也新建站台了,那麼接下來這篇就會分享如何使用它
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
Class 類別 想像一下,假如我們要做一個有關食譜和食物的程式。首先,什麼是食譜呢?食譜是一個告訴我們如何做一道菜的指南,裡面會寫著需要的材料和做法。這就像是一個「類別」,它定義了一種事物的特性和行為。
Thumbnail
Class 類別 想像一下,假如我們要做一個有關食譜和食物的程式。首先,什麼是食譜呢?食譜是一個告訴我們如何做一道菜的指南,裡面會寫著需要的材料和做法。這就像是一個「類別」,它定義了一種事物的特性和行為。
Thumbnail
在第十五課中,我們將探索 Python 的基礎物件導向程式設計 (OOP) 概念。 物件導向程式設計是一種設計和組織程式碼的方法,它強調使用物件來表示資料和功能。
Thumbnail
在第十五課中,我們將探索 Python 的基礎物件導向程式設計 (OOP) 概念。 物件導向程式設計是一種設計和組織程式碼的方法,它強調使用物件來表示資料和功能。
Thumbnail
在第十一課中,我們將討論 Python 中的類別 (Classes) 和物件導向程式設計 (Object-Oriented Programming, OOP) 的概念。 物件導向程式設計是一種實現真實世界物件在程式中的模擬方式,這有助於更好地組織和管理程式碼。
Thumbnail
在第十一課中,我們將討論 Python 中的類別 (Classes) 和物件導向程式設計 (Object-Oriented Programming, OOP) 的概念。 物件導向程式設計是一種實現真實世界物件在程式中的模擬方式,這有助於更好地組織和管理程式碼。
Thumbnail
  物件導向(Object Oriented Programming,又稱OOP),在程式領域中很常會看到一些英文代稱,如果不懂的話就比較會不知道在說些什麼,所以除了知道中文名稱外也要稍微知道一下它的代稱是什麼會比較好唷! 一、什麼是物件導向?   把程式寫出來的功能集合成一個類別(class),接
Thumbnail
  物件導向(Object Oriented Programming,又稱OOP),在程式領域中很常會看到一些英文代稱,如果不懂的話就比較會不知道在說些什麼,所以除了知道中文名稱外也要稍微知道一下它的代稱是什麼會比較好唷! 一、什麼是物件導向?   把程式寫出來的功能集合成一個類別(class),接
Thumbnail
這篇文章專門寫給「非」資訊相關科系畢業的人,說明怎麼樣開始學寫程式,還有到什麼程度才能轉到資訊相關產業。 我大學跟研究所都是念土木系,因為對寫程式蠻有興趣,所以除了系上的課之外,還有去資工系還有電機系修一些相關課程,因為不是資訊相關科系,所以有走了一些冤枉路,但是研究所的時候我已經可以開發套裝軟體了
Thumbnail
這篇文章專門寫給「非」資訊相關科系畢業的人,說明怎麼樣開始學寫程式,還有到什麼程度才能轉到資訊相關產業。 我大學跟研究所都是念土木系,因為對寫程式蠻有興趣,所以除了系上的課之外,還有去資工系還有電機系修一些相關課程,因為不是資訊相關科系,所以有走了一些冤枉路,但是研究所的時候我已經可以開發套裝軟體了
Thumbnail
天啊!怎麼這麼混亂!網路上有一卡車的文章在談class、object、instance有什麼不同;在Stack Overflow中,關於object和instance間的差異,也一再有人問起。只是啊只是,看了一大堆的討論、解釋,似乎是懂了,但又總覺得不踏實,就好像漂蕩在太空中,明明目標就在眼前,但無
Thumbnail
天啊!怎麼這麼混亂!網路上有一卡車的文章在談class、object、instance有什麼不同;在Stack Overflow中,關於object和instance間的差異,也一再有人問起。只是啊只是,看了一大堆的討論、解釋,似乎是懂了,但又總覺得不踏實,就好像漂蕩在太空中,明明目標就在眼前,但無
Thumbnail
其實「學習」本來就是一連串自我迭代優化的歷程 學習歷程檔案作為學習歷程的紀錄,確實不太可能也不需要一次到位 我們不必強求一次做出完美成果, 而是可以為高中三年,設定不同的學習歷程檔案任務, 讓自己配合著學習的進程,使作品一步步優化
Thumbnail
其實「學習」本來就是一連串自我迭代優化的歷程 學習歷程檔案作為學習歷程的紀錄,確實不太可能也不需要一次到位 我們不必強求一次做出完美成果, 而是可以為高中三年,設定不同的學習歷程檔案任務, 讓自己配合著學習的進程,使作品一步步優化
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News