เราหมายถึงอะไรเมื่อพูดถึง class ใน Java? มันแน่นอนไม่ใช่ class เหมือนที่คุณจะมีในโรงเรียน พร้อมนักเรียนและครู Class คือ blueprint สำหรับ object ในโค้ดของคุณ
Java เป็น object-oriented programming language นี่หมายความว่ามันรวมฟีเจอร์หลายอย่างที่ช่วยให้คุณเขียน reusable code Object-oriented programming มีประโยชน์สำหรับโปรแกรมทุกขนาด เพราะมันช่วยลดการซ้ำซ้อน ซึ่งล่ามทำให้โค้ดของคุณอ่านง่ายขึ้น
ในคู่มือนี้ เราจะพูดถึงสองคอนเซปต์สำคัญใน Java: class และ object เราจะอภิปรายว่าพวกมันทำงานอย่างไร และคุณสามารถ implement พวกมันได้อย่างไร พร้อมอ้างอิงตัวอย่าง
Java Class คืออะไร?
Class เหมือน blueprint สำหรับ object ในขณะที่ blueprint สำหรับห้องนอนอาจบอกว่าประตูและหน้าต่างประเภทไหนถูกติดตั้ง class บอกโปรแกรมของคุณว่า methods และ values อะไรที่ object ควรสามารถเข้าถึงและจัดเก็บได้
Classes มีประโยชน์เพราะพวกมันอนุญาตให้คุณ declare โครงสร้างสำหรับประเภทข้อมูลเฉพาะครั้งเดียว ซึ่งคุณสามารถ reference หลายครั้งโดยการ declare objects
มา define class ชื่อ Employee ซึ่งมีหนึ่งตัวแปรและสองเมธอด:
public class Employee { boolean isOnVacation; public void startVacation() { isOnVacation = true; System.out.println("You are now on vacation."); } public void endVacation() { isOnVacation = false; System.out.println("You are not on vacation anymore."); } } ในโค้ดของเรา เรา define สองเมธอด: หนึ่งสำหรับเริ่มวันหยุดของพนักงาน และอีกหนึ่งสำหรับจบวันหยุดของพนักงาน เรา declare boolean instance variable ชื่อ isOnVacation เพื่อติดตามข้อมูลนี้
เรายังไม่ได้สร้าง objects ใดๆ ของ employee class ของเรา เราเพียงแค่ outline blueprint ซึ่งจะกำหนดภายหลังว่า objects นั้นๆ จะมีรูปทรงอย่างไร
81% ของผู้เข้าร่วมระบุว่ารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสงานทางเทคโนโลยีหลังจากเข้าร่วมบูทแคมป์ ได้รับการจับคู่กับบูทแคมป์วันนี้
นักศึกษาจบบูทแคมป์เฉลี่ยใช้เวลาน้อยกว่า 6 เดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มบูทแคมป์จนหางานแรก
Java Object คืออะไร?
Object เป็น instance ของ class เฉพาะ มาสร้าง object โดยใช้ Employee blueprint จากก่อนหน้า เราจะสร้าง object ชื่อ john:
Employee john = new Employee();
โค้ดนี้สร้าง instance ของคลาส Employee สังเกตว่าเราเพิ่ม parentheses สองตัวหลังชื่อคลาสของเรา ซึ่งบอกโค้ดของเราให้ reference คลาส Employee คีย์เวิร์ด new บอกโค้ดของเราสร้าง object ใหม่ของคลาสนั้น
ตอนนี้ มาใช้เมธอดของ object ของเรา:
Employee john = new Employee(); john.startVacation(); john.endVacation();
มา run โปรแกรมของเราและดูว่าจะเกิดอะไร:
You are now on vacation. You are not on vacation anymore.
Object ของเราเรียกสองเมธอดที่เรา define ใน Employee class ของเรา นี่ทำให้โค้ดภายในเมธอดเหล่านั้น run เมื่อเรา execute john.startVacation() ตัวอย่างเช่น ค่าของ boolean isOnVacation ถูกตั้งเป็น true และข้อความ "You are now on vacation." ถูกพิมพ์ไปที่ Java console
แม้เราจะ define ตัวแปร isOnVacation ภายในคลาสของเรา เราก็สามารถเข้าถึงค่าที่มันถูกกำหนดใน object เฉพาะได้ พิจารณาโค้ดนี้:
Employee john = new Employee(); john.startVacation(); john.endVacation(); System.out.println(john.isOnVacation);
โค้ดนี้จะเริ่มและจบวันหยุดของ John — เหมือนตัวอย่างล่าสุด — และจากนั้นพิมพ์ค่าของตัวแปร isOnVacation ไปที่ console:
You are now on vacation. You are not on vacation anymore. false
ค่าของเมธอด isOnVacation ของเราคือ false
Java Constructors
Constructor method อนุญาตให้คุณ initialize data ใน class ในตัวอย่างด้านบน เรา declare ตัวแปรใน main body ของคลาสของเรา แต่เราไม่ได้ initialize มันด้วยค่า default
พิจารณาโค้ดต่อไปนี้:
class Employee { boolean isOnVacation; public Employee() { isOnVacation = false; System.out.println("Initialized values."); } ... } ตอนนี้ มาสร้าง object ของ Employee class ของเรา:
Employee john = new Employee(); john.startVacation();
เมื่อเราสร้าง object john constructor ของเราจะ run อัตโนมัติ เมธอดนี้อนุญาตให้คุณตั้งค่า default values ที่คุณต้องการให้คลาสของคุณจัดเก็บ เมธอดของเราคืนค่า:
Initialized values. You are now on vacation.
เมื่อ execute constructor ของเราตั้งค่า isOnVacation เป็น false มันจากนั้นพิมพ์ Initialized values ไปที่ console ของเรา
การสร้าง Multiple Objects
ถ้าเรามีสองพนักงาน สามารถใช้คลาสเดียวกันได้ไหม? ได้! นั่นคือประโยชน์ของการใช้ classes: คุณสามารถ declare objects หลายตัวโดยใช้คลาสเดียวกัน
พิจารณา main program ต่อไปนี้:
Employee john = new Employee(); john.startVacation(); john.endVacation(); System.out.println(john.isOnVacation); Employee ian = new Employee(); ian.startVacation(); System.out.println(ian.isOnVacation);
มา run โค้ดของเรา:
Initialized values. You are now on vacation. You are not on vacation anymore. false Initialized values. You are now on vacation. true
เราสร้างสอง objects ของ Employee class ของเรา: john และ ian ในโค้ดของเรา เราเริ่มและจบวันหยุดของ John จากนั้น เราสร้าง object สำหรับ Ian และเริ่มวันหยุดของเขา
เมื่อเราพิมพ์ค่าของ john.isOnVacation false จะถูกคืน เมื่อเราทำอย่างเดียวกันสำหรับ object ของ Ian true จะถูกคืน นั่นเป็นเพราะแต่ละ object ของคลาสของเราเป็นแยกกัน พวกมันใช้ blueprint เดียวกัน แตสามารถจัดเก็บค่าของตัวเองได้
สรุป
Classes และ objects เป็นหินมุมของ object-oriented programming Classes อนุญาตให้คุณ define blueprints ซึ่งคุณสามารถจากนั้น define objects ได้
คุณพร้อมสำหรับ challenge ไหม? สร้างโปรแกรมพร้อม class ที่ติดตามข้อมูลเกี่ยวกับว่านักเรียนผ่านการทดสอบหรือไม่ มันควร:
- จัดเก็บตัวแปรเพื่อติดตามว่านักเรียนผ่านการทดสอบหรือไม่
- มีสองเมธอดที่เปลี่ยนว่านักเรียนผ่านการทดสอบหรือไม่
- ทางเลือก คุณอาจใช้ "if" statement คำนวณว่าการทดสอบของนักเรียนควร mark pass/fail ตามเกรดตัวเลขของพวกเขา
ตอนนี้คุณพร้อมที่จะเริ่มทำงานกับ classes และ objects ใน Java อย่างเชี่ยวชาญแล้ว!