Java - Object & Classes
Java เป็นภาษาเชิงวัตถุ เป็นภาษาที่มีคุณสมบัติเชิงวัตถุ, Java รองรับพื้นฐานต่อไปนี้
- Polymorphism
- Inheritance
- Encapsulation
- Abstraction
- Classes
- Objects
- Instance
- Method
- Message Parsing
ในบทนี้จะมองไปที่ Classes และ Objects.
Object – จะประกอบด้วย State และ Behaviors ตัวอย่าง : สุนัขมี State คือ name, breed(สายพันธุ์) ที่คอยระบุลักษณะของ Object(วัตถุ) นั้นๆ ส่วน Behavior หรือพฤติกรรมของ Dog นั้นคือ เห่า, กิน, นอน ฯลฯ
Class – คือต้นแบบที่กำหนดคุณสมบัติและพฤติกรรมการทำงานของ Object ที่ถูกสร้างมาจากคลาสนั้นๆ
องค์ประกอบของ Class มีสองส่วนหลักได้แก่
ข้อมูล (data) หรือ คุณสมบัติ (Field) สำหรับเก็บข้อมูลในการทำงานหรือบอกสถานะปัจจุบันObject ตัวอย่างเช่น คลาสชนิดบัญชีธนาคารสามารถมีข้อมูลคือ เลขที่บัญชี, ชื่อเจ้าของบัญชี, และยอดเงินปัจจุบัน
พฤติกรรมการทำงาน (method หรือ function) เป็นส่วนรับคำสั่งและทำงานตามคำสั่งนั้น เช่น Class บัญชีธนาคารจากตัวอย่างข้างบนอาจจะมีฟังก์ชันสำหรับฝากและถอนเงินจากบัญชี เป็นต้น
นอกจากนี้ คลาสยังสามารถมีฟังก์ชันพิเศษเรียกว่า constructor ซึ่งจะถูกเรียกใช้ในเวลาที่กำลังสร้างObjectจาก Class เพื่อตั้งค่าเริ่มต้นให้กับข้อมูลและคุณสมบัติของObject นั้น
การเขียน Class
ยกตัวอย่าง การสร้าง Class Dog ให้กำหนด Field, Method ของ Dog
public class Dog {
// กำหนดคุณสมบัติ(Field)
String Name;
String Breed;
// Constructor
Dog() {
}
// Method สำหรับ กำหนดชื่อสุนัข
public void setName(String name) {
Name = name;
}
// Method สำหรับ กำหนดสายพันธุ์
public void setBreed(String breed) {
Breed = breed;
}
// Method สำหรับไว้ให้เรียกดูชื่อสุนัข
public String getName() {
return Name;
}
// Method สำหรับไว้ให้เรียกดูสายพันธุ์สุนัข
public String getBreed() {
return Breed;
}
}
เมื่อสร้าง Class เสร็จ ให้ทดสอบการทำงานของ Class Dog
public class RunDog {
public static void main(String[] args) {
Dog dog1 = new Dog(); // สุนัขตัวที่ 1
dog1.setName("Red"); // ชื่อสุนัข ชื่อว่า “Red”
dog1.setBreed("Golden Retriever"); // ชื่อพันธุ์ สุนัขพันธุ์ “Golden Retriever”
Dog dog2 = new Dog(); // สุนัขตัวที่ 1
dog2.setName("Blue"); // ชื่อสุนัข ชื่อว่า “Blue”
dog2.setBreed("Siberian Husky"); // ชื่อพันธุ์ สุนัขพันธุ์ “Siberian Husky”
System.out.println("สุนัขตัวที่ 1");
System.out.println("Name :" + dog1.getName());
System.out.println("Breed :" + dog1.getBreed());
System.out.println("สุนัขตัวที่ 2");
System.out.println("Name :" + dog2.getName());
System.out.println("Breed :" + dog2.getBreed());
}
}
การทำงานเราจะทำการสร้าง Object ขึ้นมา Dog dog1 = new Dog(); ซึ่ง dog1 คือ Object จะมีคุณสมบัติเหมือนกับที่เรากำหนดไว้ใน Class Dog ซึ่ง Object ที่เราสร้างจะเปรียบเสมือนสุนัข 1 ตัว
Dog dog1 = new Dog(); //สุนัขตัวที่ 1
dog1.setName("Red"); // ชื่อสุนัข ชื่อว่า “Red”
dog1.setBreed("Golden Retriever"); // ชื่อพันธุ์ สุนัขพันธุ์ “Golden Retriever”
หลังจากที่มี Object สุนัข 1 ตัว เราก็จะตั้งชื่อโดยเรียกใช้ Method set โดย dog1.setName("Red"); ระบุสายพันธุ์ dog1.setBreed("Golden Retriever"); โดยเราสามารถเรียก Method ในการกำหนดโดยใช้ . โดยใช้ Object dog1 เป็นตัวเรียกใช้ การแสดงผลเราก็ใช้ Object เรียกใช้ Method get
System.out.println("สุนัขตัวที่ 1");
System.out.println("Name :"+dog1.getName());
System.out.println("Breed :"+dog1.getBreed());
ผลการ Run
สุนัขตัวที่ 1
Name :Red
Breed : Golden Retriever
สุนัขตัวที่ 2
Name :Blue
Breed : Siberian Husky