λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ–₯️/Java

[Java] μƒμ„±μž(Constructor)의 νŠΉμ§•

by HanaV 2023. 3. 19.
728x90

μƒμ„±μž(constructer)λŠ” μƒμ„±μžλŠ” 객체가 생성될 λ•Œ 객체의 μ΄ˆκΈ°ν™”λ₯Ό μœ„ν•΄ μ‹€ν–‰λ˜λŠ” λ©”μ†Œλ“œλ‘œ, 객체가 생성될 λ•Œ, ν•„λ“œ μ΄ˆκΈ°ν™”, ν•„μš”ν•œ λ©”λͺ¨λ¦¬ 확보, 파일 μ—΄κΈ°, λ„€νŠΈμ›Œν¬ μ—°κ²° λ“± 객체가 ν™œλ™ν•˜κΈ° μ „ ν•„μš”ν•œ μ΄ˆκΈ°μ€€λΉ„λ₯Ό ν•˜λŠ” 데 μ΄μš©λœλ‹€. (이 말이 무슨 λœ»μΈμ§€ 이해가 μ•ˆκ°€λ©΄ λ°‘μ˜ μ˜ˆμ‹œ μ½”λ“œκΉŒμ§€ 읽어보기 !)

λ‹€μŒμ€ μƒμ„±μžμ˜ κΈ°λ³Έ ν˜•νƒœμ΄λ‹€.

//κΈ°λ³Έ μƒμ„±μž
public ClassName () {}

 

μƒμ„±μžλ₯Ό μ‚¬μš©ν•  λ•Œ , μƒμ„±μžμ˜ 이름은 클래슀 이름과 λ™μΌν•˜κ²Œ μž‘μ„±ν•΄μ•Ό ν•œλ‹€.
λ˜ν•œ, μ—¬λŸ¬ 개λ₯Ό μž‘μ„±ν•  수 μžˆλŠ”λ°, 이λ₯Ό μ˜€λ²„λ‘œλ”©(Overloading)이라고 ν•œλ‹€. 맀개 λ³€μˆ˜μ˜ κ°œμˆ˜μ™€ νƒ€μž…λ§Œ λ‹€λ₯΄λ‹€λ©΄, 클래슀 내에 μƒμ„±μžλ₯Ό μ—¬λŸ¬ 개 μž‘μ„±ν•  수 μžˆλ‹€. 

μ˜€λ²„λ‘œλ”© μ˜ˆμ‹œ μ½”λ“œ

public class Circle {
	int radius;
	String name;
	int price;
	
	//μƒμ„±μž(λ§€κ°œλ³€μˆ˜ μ—†μŒ)
	public Circle() {
		radius = 1;
		name = ""; 
	}
	
	//μƒμ„±μž(λ§€κ°œλ³€μˆ˜ 2개)
	public Circle(int radius, String name) {
		this.radius = radius;
		this.name = name;
	}
	
    //μƒμ„±μž(λ§€κ°œλ³€μˆ˜ 3개)
	public Circle(int radius, String name, int price) {
		this.radius = radius;
		this.name = name;
		this.price = price; 
	}
    
    			.
                .
                .
}

μš°μ„  이 μ½”λ“œμ—μ„œ λ³Ό 수 μžˆλ“―μ΄, 클래슀 이름이 Circle이기 λ•Œλ¬Έμ— Circle 클래슀 내에 μƒμ„±λœ μƒμ„±μžλ“€μ˜ 이름도 Circle이닀.

또 ν•˜λ‚˜μ˜ ν΄λž˜μŠ€μ— 3개의 μƒμ„±μžκ°€ μ„ μ–Έλ˜μ—ˆλŠ”λ°, λ§€κ°œλ³€μˆ˜μ˜ κ°œμˆ˜κ°€ 0개, 2개, 3개둜 λͺ¨λ‘ λ‹€λ₯΄λ‹€. 이걸 μ˜€λ²„λ‘œλ”©μ΄λΌκ³  ν•˜λŠ” 것이닀.

κ·Έλ ‡λ‹€λ©΄ λ§Œλ“€μ–΄λ‘” μƒμ„±μžλ₯Ό μ‚¬μš©ν•  λ•ŒλŠ” μ–΄λ–»κ²Œ ν•΄μ•Όν• κΉŒ? μœ„ μ½”λ“œλž‘ μ΄μ–΄μ„œ 보자면

μƒμ„±μž ν˜ΈμΆœν•˜λŠ” μ˜ˆμ‹œ μ½”λ“œ

public class Circle {
	int radius;
	String name;
	int price;
	
	//μƒμ„±μž(λ§€κ°œλ³€μˆ˜ μ—†μŒ)
	public Circle() {
		radius = 1;
		name = ""; 
	}
	
	//μƒμ„±μž(λ§€κ°œλ³€μˆ˜ 2개)
	public Circle(int radius, String name) {
		this.radius = radius;
		this.name = name;
	}
	
    //μƒμ„±μž(λ§€κ°œλ³€μˆ˜ 3개)
	public Circle(int radius, String name, int price) {
		this.radius = radius;
		this.name = name;
		this.price = price; 
	}
}

 

3. μƒμ„±μžλŠ” newλ₯Ό 톡해 객체λ₯Ό 생성할 λ•Œ ν•œ 번만 ν˜ΈμΆœλœλ‹€.

4. μƒμ„±μžλŠ” μ–΄λ– ν•œ 값도 λ¦¬ν„΄ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— voidλ₯Ό μž…λ ₯ν•˜λ©΄ μ•ˆ λœλ‹€.

728x90

"); wcs_do();