โปรแกรม Java เดียวประกอบด้วยสองคลาสขึ้นไป ซึ่งสามารถทำได้ในสองวิธีใน Java
สองวิธีในการปรับใช้หลายคลาสในโปรแกรม Java เดียว
- คลาสที่ซ้อนกัน
- คลาสที่ไม่ซ้อนกันหลายคลาส
คอมไพเลอร์ทำงานอย่างไรกับคลาสที่ไม่ซ้อนกันหลายคลาส
ในตัวอย่างด้านล่าง โปรแกรมจาวามีสองคลาส ชื่อคลาสหนึ่งคือคอมพิวเตอร์ และอีกคลาสคือแล็ปท็อป ทั้งสองคลาสมีตัวสร้างและวิธีการของตัวเอง ในเมธอดหลัก เราสามารถสร้างอ็อบเจกต์ของสองคลาสและเรียกใช้เมธอดของพวกมันได้
ตัวอย่าง
public class Computer { Computer() { System.out.println("Constructor of Computer class."); } void computer_method() { System.out.println("Power gone! Shut down your PC soon..."); } public static void main(String[] args) { Computer c = new Computer(); Laptop l = new Laptop(); c.computer_method(); l.laptop_method(); } } class Laptop { Laptop() { System.out.println("Constructor of Laptop class."); } void laptop_method() { System.out.println("99% Battery available."); } }
เมื่อเราคอมไพล์โปรแกรมข้างต้น ไฟล์ .class สองไฟล์ จะถูกสร้างขึ้นซึ่งก็คือ Computer.class และ Laptop.class นี่เป็นข้อได้เปรียบที่เราสามารถนำไฟล์ .class กลับมาใช้ใหม่ได้จากที่อื่นในโปรเจ็กต์อื่นโดยไม่ต้องคอมไพล์โค้ดอีก กล่าวโดยย่อ จำนวนไฟล์ .class ที่สร้างขึ้นจะเท่ากับจำนวนคลาสในโค้ด เราสามารถสร้างคลาสได้มากเท่าที่ต้องการ แต่ไม่แนะนำให้เขียนหลายคลาสในไฟล์เดียว เนื่องจากจะทำให้อ่านโค้ดได้ยาก แต่เราสร้างไฟล์เดียวสำหรับทุกคลาสได้
ผลลัพธ์
Constructor of Computer class. Constructor of Laptop class. Power gone! Shut down your PC soon... 99% Battery available.
คอมไพเลอร์ทำงานอย่างไรกับคลาสที่ซ้อนกัน
เมื่อคอมไพล์คลาสหลักซึ่งมีคลาสภายในหลายคลาส คอมไพเลอร์จะสร้างไฟล์ .class แยกกันสำหรับแต่ละคลาสภายใน
ตัวอย่าง
// Main class public class Main { class Test1 { // Inner class Test1 } class Test2 { // Inner class Test2 } public static void main(String [] args) { new Object() { // Anonymous inner class 1 }; new Object() { // Anonymous inner class 2 }; System.out.println("Welcome to Tutorials Point"); } }
ในโปรแกรมข้างต้น เรามีคลาสหลักที่มีคลาสภายในสี่คลาส Test1, Test2, คลาสภายในที่ไม่ระบุชื่อ 1 และ ชั้นในนิรนาม 2 . เมื่อเรารวบรวมคลาสนี้ มันจะสร้างไฟล์คลาสต่อไปนี้
Main.class
Main$Test1.class
Main$Test2.class
หลัก$1.คลาส
หลัก$2.คลาส
ผลลัพธ์
Welcome to Tutorials Point