Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

เราสามารถประกาศมากกว่าหนึ่งคลาสในโปรแกรม Java เดียวได้หรือไม่?


โปรแกรม 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