데이터 과학

this 키워드 본문

프로그래밍 언어론/JAVA 기초

this 키워드

티에스윤 2023. 5. 16. 17:37

자바에서 this 키워드는 현재 객체를 가리키는 참조입니다. 이 키워드를 사용하여 클래스 내부에서 현재 객체의 멤버 변수와 메서드에 접근할 수 있습니다. this 키워드는 다음과 같은 상황에서 주로 사용됩니다:

1. 변수 이름 충돌 해결: 클래스의 멤버 변수와 메서드 내의 매개변수 또는 지역 변수의 이름이 충돌하는 경우, this 키워드를 사용하여 멤버 변수를 참조합니다. 이렇게 하면 현재 객체의 멤버 변수임을 명시적으로 나타낼 수 있습니다.


public class Person {
    private String name;

    public void setName(String name) {
        this.name = name; // this 키워드를 사용하여 멤버 변수를 참조
    }
}

 

 

이 예제는 this 변수에 대해 잘 설명해 주는 예제입니다.  toString과 복합적으로 사용하여 간단하게 결과를 나타낼 수 있습니다. 

 

 

public class OrderedPair {
    private double x;
    private double y;
//constructors and other methods ...
/** @return this OrderedPair in String form */

    public OrderedPair(int x,int y)
{
this.x=x;    
this.y=y;
}

public String toString()
{
return "(" + x + "," + y + ")";
}

   public static void main(String args[]) {
      OrderedPair p = new OrderedPair(7,10);
      System.out.println(p);
    }
}

 

결과 

 

 

 

 

OrderedPair.java
0.00MB

 



2. 생성자 호출: 생성자 내에서 다른 생성자를 호출할 때, this 키워드를 사용할 수 있습니다. 이를 통해 생성자 간의 코드 중복을 피하고, 여러 생성자에서 공통된 초기화 작업을 수행할 수 있습니다.

public class Rectangle {
    private int width;
    private int height;

    public Rectangle() {
        this(0, 0); // 다른 생성자 호출
    }

    public Rectangle(int width, int height) {
        this.width = width;
        this.height = height;
    }
}


3. 메서드 체이닝: 메서드 호출 시 this 키워드를 반환하여 메서드 체이닝을 구현할 수 있습니다. 이를 통해 여러 메서드를 연속적으로 호출하고, 코드의 가독성을 높일 수 있습니다.

public class StringBuilder {
    private String value;

    public StringBuilder append(String str) {
        this.value += str;
        return this; // this를 반환하여 메서드 체이닝 구현
    }
}

this 키워드는 현재 객체를 가리키는 참조로, 클래스 내부에서 현재 객체의 멤버에 접근하는 데 사용됩니다. 이를 통해 객체 지향 프로그래밍에서 현재 객체를 명시적으로 참조하고 다양한 상황에서 유용하게 활용할 수 있습니다.

 

 

https://dreamcoding.tistory.com/60

 

[JAVA 자바] 메소드 체이닝이란?

지난번 포스팅으로 빌더 패턴에 대해서 알아보았습니다. https://dreamcoding.tistory.com/56 [디자인 패턴] 빌더 패턴(Builder Pattern) 스프링 인 액션 5판 스터디를 진행하던 중에 스프링 시큐리티에서 빌더

dreamcoding.tistory.com

 

'프로그래밍 언어론 > JAVA 기초' 카테고리의 다른 글

제네릭  (0) 2023.06.06
자바언어에서 ArrayList  (0) 2023.06.06
객체지향  (21) 2023.04.15
public, private, 그리고 static  (0) 2023.03.27
부동소수점 연산 - BigDecimal  (0) 2023.03.20