Java

생성자란? / this 로 사용하는 멤버변수

yugyeong 2023. 1. 19. 17:29

1. 생성자

  • 함수의 리턴 타입이 없음
  • 클래스의 이름과 같은 이름으로 함수를 정의
  • 메모리에 객체를 생성하여 영역을 확보
  • 바로 인스턴스 변수에 데이터 셋팅

 

2. this

  • this는 객체 자기 자신을 의미, 자신의 메모리를 가르킴
  • 전역 변수와 지역 변수를 구분짓기 위한 참조 변수
    • 생성자의 파라미터 이름이 전역 변수와 이름이 같을 때 구분하기 위해 사용
  • this.변수명으로 정의
  • 클래스 변수, static 키워드에서는 this를 사용 할 수 없음
public void setData(String name, String tel, String address){
	this.name = name;
	this.tel = tel;
	this.address = address;
}

this.name = name 에서 두개의 변수 name 은 서로 다른 변수이다.

등호 앞에 있는 name 변수는 클래스의 멤버변수이다.

등호 뒤에 있는 name 변수는 로컬변수로 서로 다르기 때문에 name = name 으로 적어도 된다. 

 

하지만 name = name 으로 두면 헷갈리기 때문에 멤버변수에 this 키워드를 이용하여서 구분하여준다.