강의로 돌아가기
-

this.name = name;

package javastudy;

public class Car {
//타입 필드명
String name;
int number;

    public Car(String name){
        name = this.name;
    }

}
이렇게 name과 this.name의 순서를 바꾸면 왜 null이 뜨는건가요?
this.name = name; 이렇게 하면 소방차가 제대로 나오는데 반대로 하니깐 에러가 뜨네요.
public Car(String n){
n = name;
}
에서 n만 name으로 바뀐거와 같지 않나요? 그뒤의 name;은 this.name;이 되니깐요.

2 개의 답변
-

저도 배우고 있어서 잘 모르지만요,
public Car(String n){
n = name;
}
이렇게 하면 name의 값이 생성자에서 초기화 되지 않아서 인 듯해요.
프로그래밍에서는 수학에서의 =용어와 의미가 조금 달라서 n=name과 name=n은 다른듯합니다.
마찬가지로 name = this.name에서도 똑같고요.
제 생각이라 틀렸을 수도 있어요..

JeonHyeong  Lee

this.name = name;
// 1. 이건 name의 값을 this.name 에 집어넣으라는 의미이고
name = this.name;
// 2. 이건 this.name의 값을 name에 집어넣으라는 의미입니다.

당연히 지금 하려는 작업은 의미상 1번의 경우이므로 1번과 같이 작성해야 하며 2번과 같이 코드를 작성한다면
아무런 값이 들어있지 않은 this.name의 값을 name에 대입하는 것 정도의 작업에 불과하므로
this.name 은 여전히 아무런 값을 가지지 않고 따라서 null 이 출력되는 것입니다.

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.