这里是新手。我的部分任务是询问用户他们的来电属于两个类别中的哪一个。
类 CategoryA 和类 CategoryB 都继承 self 们在之前的作业中创建的类 PhoneCall。
我想这样做:
String choice = null;
System.out.printf("Please enter a 'A' for Category A%n");
System.out.printf("Please enter a 'B' for Category B%n");
//[Input validation/exception handling stuff goes here]
switch(choice){
case "A":
CategoryA objectName = new CategoryA();
break;
case "B":
CategoryB objectName = new CategoryB();
break;
}
但这当然行不通,因为
- 我在 switch 语句中声明了 objectName,所以我不能在它之外使用它。
- 这两个对象具有相同的名称(即使只声明其中一个对象)。
程序的其余部分使用 objectName。如果我必须有两个不同的对象名称,那么每次我都会使用 objectName 时,我必须有一个 if/else 语句或 switch 语句,对吗?我什至无法将对象传递给函数,因为它属于一个类或另一个类。我在这里缺少一些解决方案吗?
最佳答案
是的,编程到通用的 PhoneCall
接口(interface)
PhoneCall phoneCall = null;
switch(choice){
case "A":
phoneCall = new CategoryA();
break;
case "B":
phoneCall = new CategoryB();
break;
}
if (phoneCall != null) {
// ...
}
但是,我认为使用简单的 if-else if
会更容易阅读上面的内容
PhoneCall phoneCall = null;
if ("A".equals(choice)) {
phoneCall = new CategoryA();
} else if ("B".equals(choice)) {
phoneCall = new CategoryB();
}
关于java - 是否可以在 Java 中声明一个类或另一个类的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39810223/