JAVA从其他类执行一个类?

JAVA从其他类执行一个类?,java,class,Java,Class,我是Java新手,我有一个小问题。我相信这是由于一些概念上的误解 所以,我有主菜单: /** * menu.java */ public class menu { public void run() { println ("1. Option#1."); println ("2. Option#2."); println ("============"); int choose = readInt("Enter a ch

我是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();
    }
}
/**
*menu.java
*/
公共类菜单{
公开募捐{
println(“1.选项1”);
println(“2.选项2”);
println(“======================”);
int choose=readInt(“输入选项:”);
如果(选择==1){
//问题>>>>/#####我如何在这里调用类option1.java?
}
}
/**
*选项1.java
*/
公共类选项1{
公共无效scriepedos(){
setFont(“Times New Roman-24”);
while(true){
String str=readLine(“请输入字符串:”);
如果(str.equals(“”)中断;
字符串版本=反向字符串(str);
println(修订版);
}
}
私有字符串反向限制(字符串str){
字符串结果=”;
对于(int i=0;i您需要一个option1实例来调用,例如

option1 o1 = new option1();
o1.scriepedos();
或者,您可以将方法设置为静态,这意味着您不需要对象的相应实例,例如在
option1.java中

public static void scriepedos () { ...
option1.scriepedos();
然后在
main.java中

public static void scriepedos () { ...
option1.scriepedos();
上面的内容不是很面向对象。您现在利用了一个事实,即您可以拥有一个对象封装状态等,这是一种更加程序化的风格

注:

  • 我怀疑您需要一个方法来调用上述
  • Java风格要求类名采用驼峰式大小写。例如,
    Option1
    Main
  • 您需要一个选项1的实例来调用,例如

    option1 o1 = new option1();
    o1.scriepedos();
    
    或者,您可以将方法设置为静态,这意味着您不需要对象的相应实例,例如在
    option1.java中

    public static void scriepedos () { ...
    
    option1.scriepedos();
    
    然后在
    main.java中

    public static void scriepedos () { ...
    
    option1.scriepedos();
    
    上面的内容不是很面向对象。您现在利用了一个事实,即您可以拥有一个对象封装状态等,这是一种更加程序化的风格

    注:

  • 我怀疑您需要一个方法来调用上述
  • Java风格要求类名采用驼峰式大小写。例如,
    Option1
    Main

  • 您不能调用类。您必须创建类的新对象并调用其方法,如下所示:

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

    您不能调用类。您必须创建类的新对象并调用其方法,如下所示:

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

    你可以通过对象引用创建一个对象来调用类的实例方法。你可以调用类的方法,你不能调用类。谢谢!我知道这是一个概念性的问题…问题在代码块中。但新的问题是,当我调用实例方法时什么都没有发生。这是因为“scriepedos”它是空的?你可以通过对象引用创建一个对象来调用类的实例方法。你可以调用类的方法,你不能调用类。谢谢!我知道这是一个概念性的问题…问题在代码块中。但新的问题是,当我调用实例方法时什么都没有发生。这是因为“scriepedos”它是void?谢谢大家!关于注释:1.我确实有,但我简化了代码:);2.这不是我真正的类名:),但谢谢!我这么做了,但在调用实例选项1.scriepedos()时什么都没有发生。这是因为scriepedos是“void”类型?谢谢大家!关于注释:1.我确实有,但我简化了代码:);2.这不是我真正的类名:),但谢谢!我这么做了,但在调用实例选项1.scriepedos()时什么都没有发生。这是因为scriepedos是“void”类型吗?