用java中的if语句调用不同的类?
我正在编写一个TBAP(文本基本冒险程序)只是因为。我刚开始,我已经有问题了。我想做的是在输出文本中有一个介绍程序的主类。在课程结束时,它会问“你想去哪里冒险?”它有五个选项,其中三个是单独的冒险,其中两个是库存类。现在我被困在我的第一节冒险课上。我有一个名为path的int变量。如果path==1,则进入幻想岛课程继续冒险。有没有什么可以用if语句来形容这种冒险?我用变量名和路径创建了一个构造函数、getter和setter 项目类别:用java中的if语句调用不同的类?,java,class,inheritance,if-statement,adventure,Java,Class,Inheritance,If Statement,Adventure,我正在编写一个TBAP(文本基本冒险程序)只是因为。我刚开始,我已经有问题了。我想做的是在输出文本中有一个介绍程序的主类。在课程结束时,它会问“你想去哪里冒险?”它有五个选项,其中三个是单独的冒险,其中两个是库存类。现在我被困在我的第一节冒险课上。我有一个名为path的int变量。如果path==1,则进入幻想岛课程继续冒险。有没有什么可以用if语句来形容这种冒险?我用变量名和路径创建了一个构造函数、getter和setter 项目类别: package summerproject; imp
package summerproject;
import java.util.Scanner;
import static summerproject.Fanastyisland.name;
import static summerproject.Fanastyisland.path;
public class Summerproject {
private static int path;
private static String name;
public Summerproject (int path, String name)
{
this.path = path;
this.name = name;
}
public String getname() {
return name;
}
public void setname(String name) {
this.name = name;
}
public int getPath() {
return path;
}
public void setPath(int path) {
this.path = path;
}
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.println("Welcome to the adventure text program! You are the choosen one to save the universe");
System.out.println("Press any key to continue...");
try
{
System.in.read();
}
catch(Exception e)
{}
System.out.println("Welcome. You are the choose one, a legend,a becon of hope to save the universe from the forces of evil.");
System.out.println("Only with you skills and your great power can you destroy the evil doing world.");
System.out.println("Please enter heros name");
name = in.next();
System.out.println("Okay " + name + ", lets begin our adventure!!");
System.out.println("The world can be saved, there is hope. But in order to save the world, \n "
+ "+ you must complete 9 tasks in three diffrent places in three diffrent periods of time. The past, the present and the future.");
System.out.println("Press any key to continue...");
try
{
System.in.read();
}
catch(Exception e)
{}
System.out.println("The three places are the past in the year 1322 in Fantasy island");
System.out.println("The present is the evil little town of Keene N.H.");
System.out.println("And the future to the year 2567 in Space!");
System.out.println("Where would you like to go on your adventures?");
System.out.println(" 1). Fantasy Island");
System.out.println(" 2). Keene");
System.out.println(" 3). Outer space");
System.out.println(" 4). Buy wepons or potions!");
System.out.println(" 5). Sell wepons!");
path = in.nextInt();
if (path == 1)
{
}
}
}
这是我的幻想岛课程:
package summerproject;
import java.util.Scanner;
import static summerproject.Fanastyisland.name;
import static summerproject.Fanastyisland.path;
public class Fanastyisland extends Summerproject {
public static String name;
public static int path;
public Fanastyisland (String name, int path)
{
super(path,name);
name = name;
path = path;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPath() {
return path;
}
public void setPath(int Path) {
this.path = path;
}
public static void main(String[] args)
//this is where the fantasy island adventure begins.
{
System.out.println("Welcome to fantasy island!!")
}
}
就像我说的,我想用if语句调用子类,但我不知道怎么做。如果我输入一个1,我想去幻想岛班。我还没有编程的冒险,我会得到它一旦它是固定的,我只希望现在的输出是“欢迎来到幻想岛!”当我键入1。任何帮助都会很好!谢谢大家! 类似这样:
Summerproject adventure = null;
switch (path) {
case 1:
adventure = new FantasyIsland (...);
break;
case 2:
adventure = new Keene (...);
break;
...
default:
System.out.println ("Illegal choice(" & path & "): try again");
}
if (adventure != null) {
adventure.play ();
...
您可以创建一个公共接口
public interface Adventures{
public void start();
}
每一次冒险都可以实现这个接口并覆盖start方法
public class AdventureA implements Adventures {
@Override
public void start() {
// Do whatever you want
}
}
您可以简单地使用接口类型的类变量
public class Summerproject {
private static int path;
private static String name;
private Adventure adventure;
...
}
之后在if语句中,您可以只分配这个冒险并调用start方法
if (path == 1)
{
adventure = new AdventureA();
adventure.start();
}
为什么不创建一个带有start方法的公共接口,每个冒险都将实现它,而不是让它扩展
Summerproject
。然后,您可以创建一个具有接口类型的类变量,每次只需调用start方法即可代码>顺便说一句,你想一次读几行文字,除非你真的确定这是个好主意,否则你永远不想忽略异常。@KevinEsche Goahead并回答它。这是显而易见的解决办法。