在Main.java中:
System.out.println("Enter your name:");
String name = scan.next();
name+=scan.nextLine();
String words[]=name.split("\\s");
String capitalizeWord="";
for(String w:words){
String first=w.substring(0,1);
String afterfirst=w.substring(1);
capitalizeWord+=first.toUpperCase()+afterfirst+" ";
}
Person p = new Person(capitalizeWord);
In Person.java
private String name;
private int age;
Person(String newName){
name=newName;
}
Person(int newAge){
age=newAge;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
在List.java中:
System.out.println("Enter your age:");
int age = scan.nextInt();
Person p = new Person(age);
System.out.println("Thank you for shopping with us, "+p.getName());
最后输出是
Thank you for shopping with us, null
我不知道为什么会这样。我做错什么了吗?我认为代码正确吗?
name
成员的操作,因此默认情况下将其初始化为null
。p
中的Main.java
与p
中的List.java
没有关系(它们是两个不同的变量,因此初始化前者将不会对后者产生影响。
Person(int newAge){
age=newAge;
}
该构造函数使用默认值来命名名称。.null