안녕하세요 BlueJ의에 의해 JAVA 함께 일하고 있어요에 사용되는 값을 업데이트하지 최종 변수를 생성하기위한 나는 아래의 코드와 함께 문제가있어 :자바 방법은
public class License {
private String lastName = "Null";
private final String ID_NUM = generateIDNumber();
private static int ID_GEN = 33333;
public License(String lastName) {
this.lastName = lastName;
}
public String getLastName() {
return lastName;
}
private String generateIDNumber() {
String firstLetter = getLastName().substring(0,1);
String idNumber = String.format("%d", ID_GEN) + "-" + firstLetter; firstLetter;
ID_GEN += 1;
return idNumber;
}
}
그래서 내가 넣어 입력란에 성을 입력하면 프로그램은 숫자
을 생성해야합니다.이 번호는 5 자리 숫자와 입력 된 성의 첫 글자로 구성됩니다.
그러나, generateIDNumber()
에 사용 lastName
의 값은 새로 입력 입력,
내가 getLastName()
을 실행할 때, 그것은 업데이트 된 입력을 얻을 수 있지만 업데이트하기 아니다. I 입력 "제임스"generateIDNumber()
에 firstLetter
의 값과 lastName
가 여전히 "제임스"에 대한 "NULL"이 아닌 "33333-J"에 대한 "33333-N"해도 말하면
.
왜인가요? 미리 감사드립니다.
ID_NUM 특성을 클래스 수준 (템플릿 수준)에서 설정하고 개체 수준이 아니라 (생성자 실행 후 완료) ID_NUM 특성을 설정합니다. –