πŸ“• Language/Java

[Java] this, this()

a n u e 2022. 3. 1. 11:29

this

  • μ°Έμ‘° λ³€μˆ˜ (μΈμŠ€ν„΄μŠ€ μžμ‹ μ„ 가리킴)
  • μΈμŠ€ν„΄μŠ€ λ³€μˆ˜μ™€, μƒμ„±μž λ§€κ°œλ³€μˆ˜ 이름이 같을 λ•Œ, μΈμŠ€ν„΄μŠ€ λ³€μˆ˜λ₯Ό λ‚˜νƒ€λ‚΄κΈ° μœ„ν•¨
  • μΈμŠ€ν„΄μŠ€μ˜ μ£Όμ†Ÿκ°’ μ§€μ •
  • λͺ¨λ“  μƒμ„±μžμ™€ μΈμŠ€ν„΄μŠ€ λ©”μ†Œλ“œμ— μ§€μ—°λ³€μˆ˜λ‘œ 숨겨져 μžˆλ‹€
package study.thisInstance;

public class Info {
	String name;
	int age;
	
	//μƒμ„±μž
	Info(String name, int age)
	{
		this.name = name;
		this.age = age;
	}
	
	public static void main(String[] args)
	{
		String name = "euna";
		int age = 29;
		Info info = new Info(name, age);
		System.out.println(info.name); //euna
		System.out.println(info.age); //29
	}
}

 

package study.thisInstance;

public class Info {
	String name;
	int age;
	
	//μƒμ„±μž
	Info(String name, int age)
	{
		name = name; //μ§€μ—­λ³€μˆ˜μ— λ§€κ°œλ³€μˆ˜λ₯Ό λŒ€μž…
		age = age;
	}
	
	public static void main(String[] args)
	{
		String name = "euna";
		int age = 29;
		Info info = new Info(name, age);
		System.out.println(info.name); //null
		System.out.println(info.age); //0
	}
}

 


this() , this(λ§€κ°œλ³€μˆ˜)

  • μƒμ„±μž
  • μƒμ„±μž λ‚΄λΆ€μ—μ„œλ§Œ μ‚¬μš© κ°€λŠ₯
  • 같은 클래슀의 λ‹€λ₯Έ μƒμ„±μž 호좜 μ‹œ, μ‚¬μš©
  • μƒμ„±μž κ°„ μ„œλ‘œ 호좜
package study.thisInstance;

public class Info {
	String name;
	int age;
	
	Info(String name, int age)
	{
		name = name;
		age = age;
	}
	
	Info()
	{
		this("euna", 28); //λ‹€λ₯Έ μƒμ„±μž 호좜
	}
	
	public String getInfo()
	{
		return this.name + this.age;
	}
	
	public static void main(String[] args)
	{
		Info info = new Info();
		System.out.println(info.name); //euna
		System.out.println(info.age); //28
	}
}