2010-03-31 80 views

Trả lời

2

có, nhưng chỉ khi chính được khai báo công khai

+5

... hoặc được bảo vệ hoặc gói riêng tư hoặc bạn làm những điều khó hiểu với sự phản ánh để cho phép nó được gọi mặc dù là riêng tư. –

0

Chắc chắn. Đây là một chương trình hoàn toàn ngớ ngẩn thể hiện việc gọi số main đệ quy.

public class main 
{ 
    public static void main(String[] args) 
    { 
     for (int i = 0; i < args.length; ++i) 
     { 
      if (args[i] != "") 
      { 
       args[i] = ""; 
       System.out.println((args.length - i) + " left"); 
       main(args); 
      } 
     } 

    } 
} 
31

Nếu bạn muốn gọi phương thức chính của một lớp khác, bạn có thể thực hiện theo cách này giả sử tôi hiểu câu hỏi.

public class MyClass { 

    public static void main(String[] args) { 

     System.out.println("main() method of MyClass"); 
     OtherClass obj=new OtherClass(); 
    } 
    } 

    class OtherClass { 

    public OtherClass() { 

     // Call the main() method of MyClass 
     String[] arguments = new String[] {"123"}; 
     MyClass.main(arguments); 
    } 
    } 
+10

cho những người có thể hoặc có thể không nhận thấy ... điều này sẽ tạo ra một vòng lặp vô hạn – mmcrae

+2

@mmcrae Đây là đệ quy, không lặp lại. Đệ quy không bao giờ vô hạn. – Saraph

+9

chờ đợi những gì ... tại sao đệ quy không phải là vô hạn? Bạn có thể thổi ngăn xếp của bạn, nhưng đó chỉ là giới hạn thực tế, đệ quy toán học có thể là vô hạn nếu bạn không bao giờ tiến bộ về phía vỏ cơ sở (hoặc không có trường hợp cơ sở nào tồn tại). – JPC

7

nếu tôi nhận được câu hỏi của bạn đúng ...

main() phương pháp được định nghĩa trong lớp dưới ...

public class ToBeCalledClass{ 

    public static void main (String args[ ]) { 
     System.out.println("I am being called"); 
    } 
} 

bạn muốn gọi phương pháp chính này trong lớp khác .

public class CallClass{ 

    public void call(){ 
     ToBeCalledClass.main(null); 
    } 
} 
+1

great.i đã tự hỏi những gì để đặt làm đối số 'chính'! đơn giản nó là 'null' – alex

Các vấn đề liên quan