第一次創建我自己的構造函數。Java構造函數 - 爲什麼年齡迴歸爲零?
import java.util.Scanner;
public class Person {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Please enter your name");
PersonDetails a = new PersonDetails(input.nextLine());
System.out.println("Enter your age");
PersonDetails b = new PersonDetails(input.nextInt());
System.out.println("So your name is" + " " + a.getName() + " and you are" + " " + a.getAge());
}
}
PersonDetails類
public class PersonDetails {
private String name;
private int age;
public PersonDetails(String initialName) {
if(initialName.equals("Stephen")) {
name = initialName;
}
else{
System.out.println("Access denied");
System.exit(0);
}
}
public String getName() {
return name;
}
public PersonDetails(int initialAge) {
if(initialAge >= 18) {
age = initialAge;
}
else{
System.out.println("You are a child");
System.exit(0);
}
}
public int getAge() {
return age;
}
}
輸出是:
請輸入您的姓名
斯蒂芬
輸入您的年齡
所以,你的名字是斯蒂芬,你是0
當我輸入斯蒂芬,然後數19爲什麼是零?
,因爲您正在爲您的PersonDetails類創建兩個單獨的實例。和你的'PersonDetails'變量'b'持有年齡。 – SomeJavaGuy
創建一個'setAge',然後設置第一個實例的時間 - >'a.setAge(20)' – sam