상세 컨텐츠

본문 제목

[Java] this와 this()의 역할과 차이

server

by 셉인 2024. 4. 2. 15:41

본문

728x90

this와 this() 키워드

Java에 있는 thisthis() 키워드는 다른 키워드이다. 

 

this : 인스턴스 자신을 가르키는 참조 변수
this() : 생성자

 

this

생성자의 매개변수로 선언된 변수의 이름이 인스턴스 변수와 같을 때 인스턴스 변수와 지역변수를 구분하기 위해서 사용

즉, 인스턴스가 바로 자기 자신을 참조하는 데 사용하는 변수 

 

this 참조 변수는 해당 인스턴스의 주소를 가리키고 있다. 

public class Person {
    private String name;
    private int age;
    private String sex;

    public Person (String name, int age, String sex){
        this.name = name;
        this.age = age;
        this.sex = sex;
    }
 }

 

Person() 생성자 안에서 this.name은 인스턴스 변수이고, name은 매개변수로 정의된 지역변수이다.

this 참조 변수를 사용하여 인스턴수 변수가 접근 가능

단, 인스턴스 메소드에서만 사용 가능하며, 클래스 메소드에서는 사용할 수 없다. 

 

* static 메서드에서는 this를 사용하지 못한다. 

 

this()

생성자 내부에서만 사용 가능

같은 클래스다른 생성자를 호출할 때 사용한다. 

내부적으로 다른 생성자를 호출하여 인스턴스 변수를 초기화할 수 있다.

단, 한 생성자에서 다른 생성자를 호출할 때에는 반드시 해당 생성자의 첫 줄에서만 호출할 수 있다.

public class Person {
    private String name;
    private int age;
    private String sex;

	public Person() {
    	this("seb", 24, "female");
    
    }
    
    public Person(String name) {
    	this(name, 24, "female");
    
    }
	
    public Person (String name, int age, String sex){
        this.name = name;
        this.age = age;
        this.sex = sex;
  }
 }

 

Person() 생성자와 Person(String name) 생성자는 this()를 통해 모두 Person(String name, int age, String sex) 생성자를 호출

728x90

관련글 더보기

댓글 영역