【发布时间】:2020-11-19 09:18:06
【问题描述】:
我在主类中创建了一个对象,并将所有相关参数都提供给了“成员”类中的构造函数。 但是,当我尝试通过调用 getName() 来打印名称时,它会打印一个空白区域...
任何提示都会有所帮助
while (true) {
System.out.print("Name :");
String nameInput=input.nextLine();
input.next();
System.out.print("Number : ");
String number=input.nextLine();
input.next();
try {
System.out.println("Type: \n 1/2/3...?");
int choice=input.nextInt();
switch (choice){
case 1:{
member object1=new member(nameInput,number);
System.out.println("Default name : "+object1.getName());
} case 2:{
//this is just a sample print
System.out.println("Case 2 selected");
} case 3:{
System.out.println("Case 3 selected");
} default:{
System.out.println("Error");
}
}
}catch (InputMismatchException e){
System.out.println("Error");
input.next();
这是成员类
public class member {
private String Name;
private String Number;
public member(String name, String number) {
Name = name;
Number = number;
}
public String getName() { return Name; }
public String getIDNumber() { return Number;}
}
【问题讨论】:
-
我没有立即明白为什么 getName() 方法应该有任何问题。首先要做的是使用调试器检查 nameInput 在分配后是什么。 Eclipse、IntelliJ 或 Netbeans 等任何集成开发环境都允许您这样做。您可能应该在分配发生的行中设置一个断点,然后在调试器中运行到该点并单步运行,同时观察相关变量的状态。
-
您的代码 1) 包含许多违反 Java 命名约定的行为,以及 2) 它无法编译。请提供正确的代码 sn-ps。
-
很抱歉构造函数名称。我在发布此问题之前更改了类名,但忘记相应地更改构造函数名称。请再看一遍我已经编辑过了!
-
再次:1) 代码无法编译; 2)不完整; 3) 你不能像
member Object=new member(nameInput,number);那样使用类型作为变量名/标识符(Object是Java 中的一个类); 3) 您的catch块不完整。您有很多错误,请尝试提供正确的工作代码。 -
哦!我也没有看到那个..这些错误发生是因为我在发布这个问题之前试图更改我的初始变量名和对象名。你能不能忘记我的愚蠢错误,看看!
标签: java class methods constructor return