this & this( )
this ν€μλ
'this'λ νμ¬ κ°μ²΄λ₯Ό κ°λ¦¬ν€λ μ°Έμ‘° λ³μμ
λλ€. μ΄λ κ°μ²΄κ° μμ μ μ°Έμ‘°ν λ μ¬μ©λ©λλ€.
thisμ μ£Όμ μ©λ
β’
μΈμ€ν΄μ€ λ³μμ 맀κ°λ³μ ꡬλΆ
β’
λ€λ₯Έ λ©μλ νΈμΆ
β’
νμ¬ κ°μ²΄ λ°ν
β’
μΈμ€ν΄μ€ λ³μμ 맀κ°λ³μ ꡬλΆ: λ©μλλ μμ±μμ 맀κ°λ³μμ μΈμ€ν΄μ€ λ³μμ μ΄λ¦μ΄ κ°μ λ ꡬλΆνκΈ° μν΄ μ¬μ©λ©λλ€.
public class Person {
private String name; // μΈμ€ν΄μ€ λ³μ
public Person(String name) { // 맀κ°λ³μ
this.name = name; // thisλ₯Ό μ¬μ©νμ¬ μΈμ€ν΄μ€ λ³μ μ°Έμ‘°
}
}
Java
볡μ¬
β’
λ€λ₯Έ λ©μλ νΈμΆ: κ°μ ν΄λμ€ λ΄μ λ€λ₯Έ λ©μλλ₯Ό νΈμΆν λ μ¬μ©ν μ μμ΅λλ€.
public void method1() {
System.out.println("Method 1");
this.method2(); // κ°μ ν΄λμ€μ λ€λ₯Έ λ©μλ νΈμΆ
}
public void method2() {
System.out.println("Method 2");
}
Java
볡μ¬
β’
νμ¬ κ°μ²΄ λ°ν: λ©μλμμ νμ¬ κ°μ²΄λ₯Ό λ°νν λ μ¬μ©ν©λλ€(λ©μλ 체μ΄λμ μ μ©).
public Person setName(String name) {
this.name = name;
return this; // νμ¬ κ°μ²΄ λ°ν
}
Java
볡μ¬
this() μμ±μ
this()λ κ°μ ν΄λμ€μ λ€λ₯Έ μμ±μλ₯Ό νΈμΆνλ λ° μ¬μ©λλ νΉλ³ν ꡬ문μ
λλ€.
this()μ νΉμ§
β’
μμ±μ μ€λ²λ‘λ©: μ¬λ¬ μμ±μκ° μμ λ μ½λ μ€λ³΅μ μ€μ΄λ λ° μ μ©ν©λλ€.
public class Person {
private String name;
private int age;
// κΈ°λ³Έ μμ±μ
public Person() {
this("Unknown", 0); // λ€λ₯Έ μμ±μ νΈμΆ
}
// μ΄λ¦λ§ μ§μ νλ μμ±μ
public Person(String name) {
this(name, 0); // μ 체 맀κ°λ³μ μμ±μ νΈμΆ
}
// λͺ¨λ νλλ₯Ό μ΄κΈ°ννλ μμ±μ
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
Java
볡μ¬
β’
μ€μν κ·μΉ: this()λ μμ±μμ 첫 λ²μ§Έ λ¬Έμ₯μΌλ‘λ§ μ¬μ©ν μ μμ΅λλ€.
β’
μν νΈμΆ κΈμ§: μμ±μ κ°μ μν νΈμΆμ μ»΄νμΌ μ€λ₯λ₯Ό λ°μμν΅λλ€.
thisμ this()μ μ°¨μ΄μ
λ€μμ thisμ this()μ μ£Όμ μ°¨μ΄μ μ
λλ€:
κ΅¬λΆ | this | this() |
μ μ | νμ¬ κ°μ²΄λ₯Ό μ°Έμ‘°νλ λ³μ | κ°μ ν΄λμ€μ λ€λ₯Έ μμ±μλ₯Ό νΈμΆνλ λ©μλ |
μ¬μ© μμΉ | ν΄λμ€ λ΄ μ΄λμλ μ¬μ© κ°λ₯ | μμ±μμ 첫 λ²μ§Έ λ¬Έμ₯μΌλ‘λ§ μ¬μ© κ°λ₯ |
μ£Όμ μ©λ | μΈμ€ν΄μ€ λ³μ μ°Έμ‘°, νμ¬ κ°μ²΄ λ°ν | μμ±μ μ½λ μ€λ³΅ μ κ±°, μ΄κΈ°ν μμ |
λ¬Έλ² | κ°μ²΄ μ°Έμ‘° (μ: this.name) | λ©μλ νΈμΆ (μ: this() λλ this(param)) |