πŸ’» 곡뢀 기둝/β˜• Java

Java | μƒμ„±μž(Constructor)

  • -

κ°€μž₯ μ€‘μš”ν•˜κ³  μ—¬λŸ¬λ²ˆ 짚고 λ„˜μ–΄κ°€μ•Όν•  파트

κ·Έ 이름은..

 

생 . μ„±. 자 .

 

 

아직 λ°°μš°μ§€ μ•Šμ•˜μœΌλ‹ˆγ„²..

 

배우러 κ°€λ³΄μžκ³ ~

 

 


 

 

[좜처 : μ ν”„ 투 μžλ°”]

 

μƒμ„±μž(Constructor)

λ©”μ†Œλ“œλͺ…이 클래슀λͺ…κ³Ό λ™μΌν•˜κ³  리턴 μžλ£Œν˜•μ„ μ •μ˜ν•˜μ§€ μ•ŠλŠ” λ©”μ†Œλ“œ

 

μƒμ„±μžμ˜ ν•„μš”μ„±

dog 객체의 name λ³€μˆ˜μ— μ•„λ¬΄λŸ° 값도 μ„€μ •ν•˜μ§€ μ•Šμ•„, null μ΄λΌλŠ” 값을 좜λ ₯ν•˜κ³  μžˆλ‹€.

κ·Έλ ‡λ‹€λ©΄ name μ΄λΌλŠ” κ°μ²΄λ³€μˆ˜μ— 값을 무쑰건 μ„€μ •ν•΄μ•Όλ§Œ 객체가 생성될 수 μžˆλ„λ‘ κ°•μ œν•  수 μžˆλŠ” 방법은 μ—†μ„κΉŒ?

public class A4_Constructor {
	public static void main(String[] args) {

        // μƒμ„±μž
        // HouseDog4 dog = new HouseDog4();

        HouseDog4 dog = new HouseDog4();
        System.out.println(dog.name); // null 좜λ ₯
        
        // null 좜λ ₯의 이유
        // 였λ₯˜κ°€ λ°œμƒν•˜λŠ” μ΄μœ λŠ” 객체 생성 방법이 μƒμ„±μžμ˜ κ·œμΉ™κ³Ό λ§žμ§€ μ•ŠκΈ° λ•Œλ¬Έ
    }
}

 

μƒμ„±μž λ©”μ†Œλ“œ μΆ”κ°€

 

class HouseDog4 extends Dog4 {

	// μƒμ„±μž
	// λ©”μ†Œλ“œμ²˜λŸΌ λ©”μ†Œλ“œλͺ…이 클래슀λͺ…κ³Ό λ™μΌν•˜κ³  리턴 μžλ£Œν˜•μ„ μ •μ˜ν•˜μ§€ μ•ŠλŠ” λ©”μ†Œλ“œ
	// new 클래슀λͺ…(μž…λ ₯인수, ...)
	HouseDog4(String name) {
		this.setName(name);
	}
}

 

μƒμ„±μžμ˜ κ·œμΉ™

  • 클래슀λͺ…κ³Ό λ©”μ†Œλ“œλͺ…이 동일
  • 리턴 μžλ£Œν˜•μ„ μ •μ˜ν•˜μ§€ μ•ŠμŒ(void도 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.)
  • new 클래슀λͺ…(μž…λ ₯인수, ...)

 

μž…λ ₯κ°’μœΌλ‘œ λ¬Έμžμ—΄μ„ ν•„μš”λ‘œ ν•˜λŠ” μƒμ„±μž

'String name' μ΄λΌλŠ” μž…λ ₯값을 ν•„μš”λ‘œ ν•˜κΈ° λ•Œλ¬Έμ— μ•„λž˜μ— 객체λ₯Ό 생성할 λ•Œ λ¬Έμžμ—΄μ„ μ „λ‹¬ν•΄μ•Όν•œλ‹€.

class HouseDog4 extends Dog4 {

	HouseDog4(String name) {
		this.setName(name);
	}
}

 

객체 μƒμ„±μ‹œ λ¬Έμžμ—΄ μΆ”κ°€

public class A4_Constructor {
	public static void main(String[] args) {

            HouseDog4 dog = new HouseDog4("happy"); // μƒμ„±μž 호좜 μ‹œ λ¬Έμžμ—΄μ„ 전달해야 ν•œλ‹€.
            System.out.println(dog.name); // happy 좜λ ₯
    }
}

 

λ””ν΄νŠΈ(default) μƒμ„±μž

μƒμ„±μžμ˜ μž…λ ₯ ν•­λͺ©μ΄ μ—†κ³ , μƒμ„±μž 내뢀에 아무 λ‚΄μš©μ΄ μ—†λŠ” μœ„μ™€ 같은 μƒμ„±μž

class Dog4 extends Animal4 {

	// λ””ν΄νŠΈ(default) μƒμ„±μž
	// μƒμ„±μžμ˜ μž…λ ₯ ν•­λͺ©μ΄ μ—†κ³  μƒμ„±μž 내뢀에 아무 λ‚΄μš©μ΄ μ—†λŠ” μœ„μ™€ 같은 μƒμ„±μžλ₯Ό λ””ν΄νŠΈ μƒμ„±μž
	// ν΄λž˜μŠ€μ— μƒμ„±μžκ°€ 없더라도 μ»΄νŒŒμΌλŸ¬λŠ” μžλ™μœΌλ‘œ λ””ν΄λ“œ μƒμ„±μžλ₯Ό μΆ”κ°€ν•œλ‹€.
	Dog4() {
	}
}
public class A4_Constructor {
    public static void main(String[] args) {
        // λ””ν΄νŠΈ μƒμ„±μž
        Dog4 DogEx = new Dog4();
        // μƒλ‹¨μ˜ ν΄λž˜μŠ€μ—μ„œ μ‚¬μš©μžμ˜ 별닀λ₯Έ μ •μ˜κ°€ μ—†λ‹€λ©΄ λ””ν΄νŠΈ μƒμ„±μžκ°€ μžλ™μœΌλ‘œ 생성됨
    }
}
  • μƒμ„±μžκ°€ ν•˜λ‚˜λ„ μ—†λ‹€λ©΄ μ»΄νŒŒμΌλŸ¬κ°€ μžλ™μœΌλ‘œ λ””ν΄νŠΈ μƒμ„±μžλ₯Ό μΆ”κ°€
  • μ‚¬μš©μžκ°€ μž‘μ„±ν•œ μƒμ„±μžκ°€ ν•˜λ‚˜λ„ μ—†λ‹€λ©΄ μ»΄νŒŒμΌλŸ¬λŠ” λ””ν΄νŠΈ μƒμ„±μžλ₯Ό μΆ”κ°€ν•˜μ§€ μ•ŠμŒ

 

μƒμ„±μž μ˜€λ²„λ‘œλ”©

ν•˜λ‚˜μ˜ ν΄λž˜μŠ€μ— μ—¬λŸ¬κ°œμ˜ μž…λ ₯ν•­λͺ©μ΄ λ‹€λ₯Έ μƒμ„±μžλ₯Ό λ§Œλ“€ 수 μžˆλ‹€.

class HouseDog4 extends Dog4 {
	HouseDog4(String name) {
		this.setName(name);
	}

	// μƒμ„±μž μ˜€λ²„λ‘œλ”©(Overloading)
	// ν•˜λ‚˜μ˜ ν΄λž˜μŠ€μ— μ—¬λŸ¬κ°œμ˜ μž…λ ₯ν•­λͺ©μ΄ λ‹€λ₯Έ μƒμ„±μžλ₯Ό λ§Œλ“€ 수 μžˆλ‹€.
	HouseDog4(int type) {
		if (type == 1) {
			this.setName("yorkshire");
		} else if (type == 2) {
			this.setName("bulldog");
		}
	}
}
public class A4_Constructor {
	public static void main(String[] args) {
            // μƒμ„±μž μ˜€λ²„λ‘œλ”©
            HouseDog4 happy = new HouseDog4("happy"); // λ¬Έμžμ—΄λ‘œ 생성
            // String μžλ£Œν˜•μœΌλ‘œ μž…λ ₯λ°›λŠ” 클래슀
            HouseDog4 yorkshire = new HouseDog4(1); // μˆ«μžκ°’μœΌλ‘œ 생성
            // int μžλ£Œν˜•μœΌλ‘œ μž…λ ₯λ°›λŠ” 클래슀
            HouseDog4 dog = new HouseDog4("happy"); // μƒμ„±μž 호좜 μ‹œ λ¬Έμžμ—΄μ„ 전달해야 ν•œλ‹€.
            System.out.println(dog.name); // happy 좜λ ₯

	}
}

☝️ λ©”μ†Œλ“œ μ˜€λ²„λ‘œλ”©κ³Ό λ™μΌν•œ κ°œλ…

 

 


 

λ‹€μ–‘ν•œ 클래슀λ₯Ό 상속받을 수 μžˆλŠ” 클래슀 μ•ˆμ— νŠΉμ •ν•œ 쑰건을 μž…λ ₯받을 수 μžˆλŠ” μ—¬λŸ¬κ°€μ§€μ˜ λ©”μ†Œλ“œλ₯Ό 생성할 수 μžˆλŠ” λ‹€μž¬λ‹€λŠ₯ν•œ μƒμ„±μž!!

 

올 γ…‹ 쒋은데?

 

μ˜€κ³΅μ™„!

Contents

ν¬μŠ€νŒ… μ£Όμ†Œλ₯Ό λ³΅μ‚¬ν–ˆμŠ΅λ‹ˆλ‹€

이 글이 도움이 λ˜μ—ˆλ‹€λ©΄ 곡감 λΆ€νƒλ“œλ¦½λ‹ˆλ‹€.