# [Java] this와 this()에 λŒ€ν•΄
Study Repository

[Java] this와 this()에 λŒ€ν•΄

by rlaehddnd0422

μžλ°”μ—λŠ” this와 this() ν‚€μ›Œλ“œκ°€ μžˆμŠ΅λ‹ˆλ‹€. 이 두 ν‚€μ›Œλ“œλŠ” λͺ¨μ–‘μƒˆλŠ” λΉ„μŠ·ν•˜μ§€λ§Œ μ „ν˜€ λ‹€λ₯Έ μš©λ„λ₯Ό 가지고 μžˆμŠ΅λ‹ˆλ‹€.

 

this와 this()λ₯Ό μ–΄λ–»κ²Œ μ‚¬μš©ν•˜κ³  이 두 가지 ν‚€μ›Œλ“œκ°€ μ–΄λ–»κ²Œ λ‹€λ₯Έμ§€ 짧고 κ°„κ²°ν•˜κ²Œ μ•Œμ•„λ΄…μ‹œλ‹€.

1. this, this()의 차이

  • thisλŠ” 객체 μžμ‹ μ„ κ°€λ¦¬ν‚€λŠ” reference λ³€μˆ˜λ‘œ, μžμ‹ μ˜ 객체에 μ ‘κ·Όν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.
    • 주둜 λ©€λ²„λ³€μˆ˜μ™€ λ§€κ°œλ³€μˆ˜μ˜ 이름이 동일할 λ•Œ 이λ₯Ό κ΅¬λΆ„ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ˜λŠ” ν‚€μ›Œλ“œμž…λ‹ˆλ‹€.
  • this()λŠ” 같은 ν΄λž˜μŠ€μ—μ„œ μƒμ„±μžκ°€ λ‹€λ₯Έ μƒμ„±μžλ₯Ό ν˜ΈμΆœν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.
    • 주둜 μ½”λ“œμ˜ 쀑볡을 막기 μœ„ν•œ λͺ©μ μœΌλ‘œ μ‚¬μš©
    • this()λŠ” μƒμ„±μž μ½”λ“œμ—λ§Œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    • this() λ©”μ†Œλ“œμ— 인수λ₯Ό μ „λ‹¬ν•˜λ©΄ μƒμ„±μž μ€‘μ—μ„œ λ©”μ†Œλ“œμ˜ μ›ν˜•μ— λͺ…μ‹œλ˜λŠ” λ§€κ°œλ³€μˆ˜ 리슀트λ₯Ό κ°–λŠ” μƒμ„±μž λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•©λ‹ˆλ‹€.

μ‚¬μš© μ˜ˆμ‹œμ½”λ“œλ₯Ό μ‚΄νŽ΄λ΄…μ‹œλ‹€.

 

public class Book {
    private String title;
    private int price;

    public Book(String title, int price) {
        this.title = title;
        this.price = price;
    }

    public Book(String title) {
        this(title, 0);
    }
}

μ˜ˆμ œμ½”λ“œμ˜ Book ν΄λž˜μŠ€μ—μ„œ 첫번째 μƒμ„±μž μ½”λ“œλ₯Ό 보면 this μ°Έμ‘° λ³€μˆ˜λ₯Ό μ‚¬μš©ν•΄μ„œ μΈμŠ€ν„΄μŠ€ λ³€μˆ˜μ— μ ‘κ·Όν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

    public Book(String title, int price) {
        this.title = title;
        this.price = price;
    }

 

두 번째 μƒμ„±μž μ½”λ“œλ₯Ό μ‚΄νŽ΄λ³΄λ©΄ λ‚΄λΆ€μ—μ„œ this()λ©”μ†Œλ“œλ₯Ό μ΄μš©ν•˜μ—¬ 첫 번째 μƒμ„±μžλ₯Ό ν˜ΈμΆœν•˜μ—¬ μΈμŠ€ν„΄μŠ€ λ³€μˆ˜λ₯Ό μ΄ˆκΈ°ν™”ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

    public Book(String title) {
        this(title, 0);
    }
주의 ν•  점 : ν•œ μƒμ„±μžμ—μ„œ λ‹€λ₯Έ μƒμ„±μžλ₯Ό ν˜ΈμΆœν•  λ•Œμ—λŠ” λ°˜λ“œμ‹œ ν•΄λ‹Ή μƒμ„±μžμ˜ 첫 μ€„μ—μ„œλ§Œ ν˜ΈμΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€.

this()λ₯Ό μ‚¬μš©ν•¨μœΌλ‘œμ¨ String title ν•˜λ‚˜λ§Œ 가지고 μƒμ„±μžλ₯Ό ν˜ΈμΆœν•΄λ„ μΈμŠ€ν„΄μŠ€ λ³€μˆ˜ priceκ°€ 0으둜 μ΄ˆκΈ°ν™”λ˜λŠ” 효과λ₯Ό 얻을 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. μ•„λž˜ μ½”λ“œμ™€ λ™μΌν•œ λ™μž‘μ„ ν•˜μ§€λ§Œ, this()λ₯Ό μ‚¬μš©ν•˜μ—¬ this.title = ~, this.price = ~와 같은 μ½”λ“œμ˜ 쀑볡을 쀄이고 μ’€ 더 μ½”λ“œλ₯Ό κ°„κ²°ν•˜κ²Œ ꡬ성할 수 μžˆλ‹€λŠ” μž₯점을 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

    public Book(String title) {
        this.title = title;
        this.price = 0;
//        this(title, 0);
    }

 

<참고 자료>

 

[Java] μžλ°” - this와 this( )의 μš©λ„ 및 μ‚¬μš©μ˜ˆμ œ

μžλ°” - this와 this( )의 μš©λ„ 및 μ‚¬μš©μ˜ˆμ œ μžλ°” ν”„λ‘œκ·Έλž¨ μž‘μ„±μ‹œ μƒμ„±μžμ—μ„œ 많이 λ³΄κ²Œλ˜λŠ” this와 this( )에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. 1. this와 this( )의 μš©λ„ 1) thisλŠ” 객체 μžμ‹ μ„ κ°€λ¦¬ν‚€λŠ” 레퍼

kadosholy.tistory.com

 

 

μ½”λ”©κ΅μœ‘ ν‹°μ”¨ν”ΌμŠ€μΏ¨

4μ°¨μ‚°μ—…ν˜λͺ…, μ½”λ”©κ΅μœ‘, μ†Œν”„νŠΈμ›¨μ–΄κ΅μœ‘, μ½”λ”©κΈ°μ΄ˆ, SWμ½”λ”©, κΈ°μ΄ˆμ½”λ”©λΆ€ν„° μžλ°” 파이썬 λ“±

tcpschool.com

 

λΈ”λ‘œκ·Έμ˜ 정보

Study Repository

rlaehddnd0422

ν™œλ™ν•˜κΈ°