2012-08-16 172 views
0

我是Java新手,我有一個小問題。我相信這是由於對概念的誤解。Java。從其他班級執行班級?

所以,我有主類菜單:

/** 
* menu.java 
*/ 
public class menu { 
    public void run() { 
     println ("1. Option#1."); 
     println ("2. Option#2."); 
     println ("============"); 

     int choose = readInt("Enter a choice:"); 
     if (choose == 1) { 
     // QUESTION>>>>> // ### how can I call class option1.java here? 

    } 
} 


/** 
* option1.java 
*/ 
public class option1 { 
    public void scriepedos() { 
     setFont("Times New Roman-24"); 
     while (true) { 
       String str = readLine("Please enter a string: "); 
       if (str.equals("")) break; 
       String rev = reverseString(str); 
       println(rev); 
     } 
    } 

    private String reverseString(String str) { 
     String result = ""; 
     for (int i=0; i<str.length();i++){ 
      result=str.charAt(i)+result; 
     } 
     return result.toLowerCase(); 
    } 
} 

提前非常感謝。 Leo

+0

*您可以*撥打*實例*通過創建通過*對象*參考對象類的方法。 – adatapost 2012-08-16 08:21:09

+0

你可以調用班級的方法,你不能打電話給班級 – Ilya 2012-08-16 08:21:57

+0

謝謝!我知道這是一個概念問題... – 2012-08-16 08:31:55

回答

2

您需要選項1的實例來調用例如,

option1 o1 = new option1(); 
o1.scriepedos(); 

或者,您可以使方法static。這意味着你不需要對象的相應實例,例如在option1.java

public static void scriepedos() { ... 

然後在main.java

option1.scriepedos(); 

上面不是很OO。你現在正在利用這樣一個事實,即你可以擁有一個對象封裝狀態等等,並且是一個更加程序化的風格。

注:

  1. 我懷疑你需要一個public static void main()方法來調用上述
  2. Java的風格,將需要的類名是駱駝套管。例如Option1Main
+0

謝謝大家!關於筆記:1.我真的有,但我簡化了代碼:); 2.那不是我真正的課堂名稱:),但謝謝! – 2012-08-16 08:29:29

+0

我這樣做,但沒有發生,當我調用實例option1.scriepedos()。這是因爲scriepedos是「無效」類型? – 2012-08-16 09:33:37

1

你不能打電話給班級。你必須創建類的新對象,並調用它像下面的方法:

Option1 op1 = new Option1(); 
// call any Option1 method 
op1.scriepedos(); 
+0

captch真的很糟糕.. :( – 2012-08-16 08:26:58