Java 如何转到其他类执行代码并返回到上一个类

Java 如何转到其他类执行代码并返回到上一个类,java,class,Java,Class,我现在是大学二年级。我觉得这一年很艰难,我不认为自己会过去。但无论如何。我目前正在从事一个Java项目。该项目基于国家汽车测试(NCT) 基本上,我想做的是选择一个数字来进行全面测试或重新测试。如果用户选择了一个完整的测试,那么我想进入完整的测试课程,并执行一些以个人信息开始的问题,然后是汽车详细信息,然后是汽车测试问题。例如,油位正常吗?是/否 我想知道的是,如何转到fulltest类,运行代码,然后显示fulltest类的结果,并将结果返回到mainnc package Nct; imp

我现在是大学二年级。我觉得这一年很艰难,我不认为自己会过去。但无论如何。我目前正在从事一个Java项目。该项目基于国家汽车测试(NCT)

基本上,我想做的是选择一个数字来进行全面测试或重新测试。如果用户选择了一个完整的测试,那么我想进入完整的测试课程,并执行一些以个人信息开始的问题,然后是汽车详细信息,然后是汽车测试问题。例如,油位正常吗?是/否

我想知道的是,如何转到fulltest类,运行代码,然后显示fulltest类的结果,并将结果返回到mainnc

package Nct;


import java.util.Scanner;

public class MainNCT 
{

public static int choice = -1;

public static void main( String[] args) 
{

    Scanner Console = new Scanner(System.in);


    System.out.println("Menu\n\t1. Full Test\n\t2. Re-test\n\t0. Exit\n");

    System.out.print("Enter a number: ");
    choice = Console.nextInt();

    switch(choice)
    {
        case 1:
            //Go to fulltest class
            break;
        case 2:
            //Go to retest class
            break;
        case 0:
            System.exit(0);
            break;
        default:
            System.out.println("Invalid number entered");
    } // switch



}

}

Nct;
导入java.util.Scanner;
公共类FullTest扩展了MainNCT{
int结果=0;
串轮结果;
公共完整测试(){
扫描仪控制台=新扫描仪(System.in);
//这里的问题
系统输出打印(“车轮对齐(%)?”;
wheelAliResult=Console.nextInt();
如果(wheelAliResult<0 | | wheelAliResult>6)
{
wheelResult=“失败”;
}
其他的
{
wheelResult=“通过”;
}
}
}

基于目前为止的代码,因为逻辑似乎都驻留在
FullTest
构造函数中,所以应该这样做:

switch(choice)
{
    case 1:
        FullTest ft = new FullTest();
        break;
    case 2:
        ReTest rt = new ReTest();
        break;
    case 0:
        System.exit(0);
        break;
    default:
        System.out.println("Invalid number entered");
} // switch

我假设您也有一个名为
ReTest
的类。

首先在
FullTest
类中创建一个方法,例如
boolean chkOilLevel()
,该方法将在求值后返回
true
false

boolean chkOilLevel(){
Scanner Console = new Scanner(System.in);
//Questions here

System.out.print("Wheel alingment (%)? ");
wheelAliResult = Console.nextInt();

if(wheelAliResult < 0 || wheelAliResult > 6)
{
    wheelResult = true;
}
else
{
    wheelResult = false;
}
return wheelResult;
}
并且可以在
mainnc
类中调用此方法

        case 1:
           boolean oilLevel=fullTest.chkOilLevel();
           // Do Whatever you want with oilLevel
           break;

这个东西将来也会对您有所帮助…

因为您的所有代码似乎都在构造函数中,
new FullTest()
应该执行它。您也可以通过访问以下字段来读取
wheelResult
的值:
new FullTest().wheelResult
(这要求它位于同一个包中,因为它不是公共字段)。顺便说一句,这并不是一个推荐的设置。将代码放入构造函数中不是强制性的。这会被视为糟糕的编码吗?推荐的设置是什么?非常感谢。是的,有复试课。谢谢。当需要特定的重新测试主题时,方法调用将派上用场。
FullTest fullTest=new FullTest();
        case 1:
           boolean oilLevel=fullTest.chkOilLevel();
           // Do Whatever you want with oilLevel
           break;