2012-08-16 171 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