Ở đây bạn có thể thấy rằng có 2 public static void main (String args[])
trong một tập tin duy nhất với tên Test.java
(đặc biệt là không sử dụng tên của tập tin như một trong những cái tên 2 lớp) và 2 lớp học với mặc định truy cập specifier.
class Sum {
int add(int a, int b) {
return (a+b);
}
public static void main (String args[]) {
System.out.println(" using Sum class");
Sum a = new Sum();
System.out.println("Sum is :" + a.add(5, 10));
}
public static void main (int i) {
System.out.println(" Using Sum class main function with integer argument");
Sum a = new Sum();
System.out.println("Sum is :" + a.add(20, 10));
}
}
class DefClass {
public static void main (String args[]) {
System.out.println(" using DefClass");
Sum a = new Sum();
System.out.println("Sum is :" + a.add(5, 10));
Sum.main(null);
Sum.main(1);
}
}
Khi chúng tôi biên dịch Test.java mã nó sẽ tạo ra 2 .class
file (tức Sum.class
và DefClass.class
) và nếu chúng ta chạy Test.java chúng ta không thể chạy nó vì nó sẽ không tìm thấy bất kỳ lớp học chính với tên Kiểm tra. Thay vào đó, nếu chúng tôi thực hiện java Sum
hoặc java DefClass
cả hai đều sẽ cung cấp kết quả đầu ra khác nhau bằng cách sử dụng khác nhau main()
. Để sử dụng phương pháp chính của lớp Sum, chúng tôi có thể sử dụng tên lớp Sum.main(null)
hoặc Sum.main(1)//Passing integer value in the DefClass main()
.
Trong phạm vi lớp, chúng tôi chỉ có thể có một public static void main (String args[])
mỗi lớp vì phương pháp tĩnh của một lớp thuộc về một lớp chứ không phải đối tượng của lớp và được gọi bằng tên lớp của nó. Ngay cả khi chúng ta tạo ra nhiều đối tượng và gọi các phương thức tĩnh giống nhau bằng cách sử dụng chúng thì trường hợp của phương thức tĩnh mà cuộc gọi này sẽ tham chiếu sẽ giống nhau.
Chúng tôi cũng có thể thực hiện quá tải phương thức chính bằng cách chuyển các nhóm đối số khác nhau trong chính. Ví dụ tương tự được cung cấp trong đoạn mã trên nhưng theo mặc định luồng điều khiển sẽ bắt đầu bằng public static void main (String args[])
của tệp lớp mà chúng tôi đã gọi bằng cách sử dụng java classname
. Để gọi phương thức chính với các bộ đối số khác, chúng ta phải gọi nó một cách rõ ràng từ các lớp khác.
Đây sẽ là hợp pháp Java, nhưng chữ ký entry point được quy định rõ ràng là 'String [ ] '. Bạn có thể có một điểm vào ** mỗi lớp **. Bạn thậm chí có thể tạo một lớp lồng nhau ** tĩnh với chính 'main' của nó. –