关于方法和类关系以及switch语句的问题

时间:2016-06-29 04:43:40

标签: java methods switch-statement

毕业于cs学位,但有一年没有编程工作,所以我想回到它。很抱歉,如果这很明显,但有关此代码的两个主要问题。

在案例1中,我希望它回到代码的开头并再次寻找另一个输入。因此,我在案例1结束时再次调用了readinput。它忽略了这一点并继续打印出案例

其次,我理解在面向对象编程中,必须存在一个类的实例才能被调用。我创建了这个实例并称之为帮助。为什么当我使用我的readInput方法时,我不只是打电话给帮助,而是我必须打电话给帮助?

package practice;

import java.io.IOException;

public class Help {

    public static void main(String[] args) throws IOException {// needed for a keyboard input
        Help help = new Help();
        System.out.println("Help on:");
        System.out.println(" 1. if");
        System.out.println(" 2. switch");
        System.out.println("Choose one:");

        readInput(help);

    }

    public static void readInput(Help help) throws IOException {
        char choice = (char) System.in.read();
        switch (choice) {
            case '1':
                System.out.println("The if:\n");
                System.out.println(" if(conditional) statement;");
                System.out.println(" else statement;");
                readInput(help);
                // break;

            case '2':
                System.out.println("The switch:\n");
                System.out.println("switch (expression) {");
                System.out.println("  case constant:");
                System.out.println("    statement sequence");
                System.out.println("    break;");
                System.out.println("  //...");
                System.out.println("}");
                break;
            default:
                System.out.print("Selection not found.");

        }
    }
}

2 个答案:

答案 0 :(得分:0)

  1. 它不会忽略它。键入 1 1 1 输入,您将看到readInput()被执行多次。如果键入 1 输入 1 ,则第二个字符是换行符,您只是属于switch语句的默认情况。

  2. help是变量的名称(在这种情况下为参数)。 Help是参数的类型。当您定义方法readInput(Help help)时,您说这个方法需要一个Help类型的参数,您选择命名help

答案 1 :(得分:0)

第一种情况下的break语句被注释,我认为这就是执行第二个块的原因。

关于第二个问题,您已经能够调用方法readInput方法而无需从Help实例调用它,因为您将其声明为静态方法,可以始终从任何其他方法调用静态方法(无论其是否为实例方法或静态方法,如main方法)。