Java 8 공부 시작(프로그래밍도 함)

?

새 This.java를 만듭니다.

BlackBox b1= new BlackBox();

b1 개체를 만듭니다.

b1.modelName = "까망이" ;

이번에는 b1.modelName(최신형)으로 변경해보려고 합니다.

b1.plusModelName("(최신형)");

이와 같은 코드를 실행하면 오류 메시지가 나타납니다. 이는 자연스러운 결과입니다. BlackBox.java X에 plusModelName이라는 메서드를 만들었습니다.

팁!! 오류가 발생한 부분을 Alt + Enter 로 클릭 후 솔루션을 클릭하면 BlackBox.java에 메소드가 자동으로 생성됩니다!

BlackBox.java의 메소드 부분

void plusModelName(String modelName) {
    modelName += modelName;

}

이.자바

b1.plusModelName("(최신형)");
System.out.println(b1.modelName);

출력해보니 원하는대로(최신형) 안나왔는데 잘나왔습니다.

이는 전달된 값인 modelName과 인스턴스 변수 modelName이 동일하기 때문입니다.

두 가지 솔루션이 있습니다.

1. 이송값(파라미터)을 다른 이름으로 변경

2. 이것을 사용

void plusModelName(String modelName) {
    this.modelName += modelName;

}

이렇게 하면 다음과 같이 작동합니다. this.modelName = this.modelName + modelName

this.modelName은 까망이 인스턴스 변수이고 modelName은 이전 값(최신 유형)입니다.

출력 : 까망이(최신형)

이와 같이 메서드에서 매개변수의 이름과 인스턴스 변수의 이름이 같은 경우 이를 해결하는 방법을 배웠다.