前一天有提過,物件導向程式的個個物件都有自己該做的事,而且各自可以獨立作業,不過彼此間也能夠分工合作。接下來就來講各物件是如何運作的吧!
首先介紹物件導向的語言有哪些,其實很多程式語言都支援物件導向,包括了C語言大家族、Java、Delphi、Swift、Python、 PHP等等,幾乎平常用得到的程式語言都可以寫物件導向,只在於說我們有沒有去使用到這個功能而已。
類別,在物件導向中是很重要的概念之一,它定義了一件事物擁有的屬性(Attribute)和方法(Method),其屬性就是事物本身呈現的模樣,而方法則是事物本身能做哪些事情,詳情請看下面的程式範例(Java):
class Employee {
int ID;
String name;
int age;
int depID;
String depName;
public Employee(int id, String name, int age) { //此為建構子(Constructor)
ID = id;
this.name = name;
this.age = age;
}
//以下為方法(Method)
public void setDepartment(int depID, String depName) {
this.depID = depID;
this.depName = depName;
}
public String getEmployeeInfo() {
return "員工編號:" + ID + " 員工姓名:" + name + " 員工年齡:" + age;
}
public String getDepartment() {
return "部門編號:" + depID + " 部門名稱:" + depName;
}
}
如上面的程式範例定義了一件事物(一位員工)所擁有的屬性(員工編號、員工姓名、員工年齡、部門編號、部門名稱)和方法(setDepartment()、getEmployeeInfo()、getDepartment()),這就是一個類別裡基本會擁有的抽象特徵。
在物件導向的概念裡,物件就是類別的實例,甚麼意思呢?讓我用下面範例來解釋:
public class Company{
public static void main(String []args){
Employee Jack = new Employee(123, "Jack", 45);
}
}
可以看到,我們在程式裡宣告了Jack是一位員工,Jack是一個具體的人,員工則是一個稱謂(抽象的概念)。
Employee Jack = new Employee(123, "Jack", 45);
Employee Tom = new Employee(148, "Tom", 30);
Employee John = new Employee(136, "John", 26);
可以透過宣告的方式,來產出許多的物件(Jack、Tom 、John),而他們各自擁有屬於自己的屬性,都是獨立個個體,彼此不互相影響。
再來講的是建構子,甚麼是建構子呢?它是為了初始化類別的一個函式,我想眼尖的朋友已經發現, Employee 後面那串文字,就是在描述一個物件具有的屬性,那我們在宣告的時候,同時就賦予它需要的值。那建構子長甚麼樣子呢?請看以下程式碼:
class Employee {
int ID;
String name;
int age;
public Employee(int id, String name, int age) { //此為建構子(Constructor)
ID = id;
this.name = name;
this.age = age;
}
}
可以看到 Employee 這個類別裡有個建構子也叫 Employee ,而後面帶的參數,就是為了要在宣告物件的時候,依照對應的參數,填入此物件對應屬性的值,這樣就可以使用此物件來做事情囉!
關於物件導向的基本概念還沒結束,下一篇會再介紹類別中的方法該怎麼使用,以及物件導向的三大特性。
除此之外,也歡迎大家走走逛逛關於我們團隊夥伴的文章
lu23770127 - SASS 基礎初學三十天
10u1 - 糟了!是世界奇觀!
juck30808 - Python - 數位行銷分析與 Youtube API 教學
SiQing47 - 前端?後端?你早晚都要全端的,何不從現在開始?