[Java] μƒμ„±μž(constructor) - μΈμŠ€ν„΄μŠ€ μ΄ˆκΈ°ν™”πŸ§

2024. 12. 6. 12:37Β·Java

μƒμ„±μžλŠ” μΈμŠ€ν„΄μŠ€κ°€ 생성될 λ•Œ ν˜ΈμΆœλ˜λŠ” 'μΈμŠ€ν„΄μŠ€ μ΄ˆκΈ°ν™” λ©”μ„œλ“œ' 이닀.

μƒμ„±μžμ˜ 쑰건
1. 클래슀 내에 μ„ μ–Έλ˜μ–΄μ•Ό ν•œλ‹€.
2. μƒμ„±μžμ˜ 이름은 클래슀의 이름과 κ°™μ•„μ•Ό ν•œλ‹€.
3. μƒμ„±μžλŠ” 리턴 값이 μ—†λ‹€.

 

πŸ’‘ 리턴값이 μ—†λ‹€λŠ” 의미의 voidλ₯Ό λΆ™μ—¬μ•Ό ν•˜μ§€λ§Œ, λͺ¨λ“  μƒμ„±μžμ—λŠ” 리턴값이 μ—†μœΌλ―€λ‘œ voidλ₯Ό μƒλž΅ν•  수 μžˆλ‹€.

 

1. κΈ°λ³Έ μƒμ„±μž(default constructor)

λͺ¨λ“  ν΄λž˜μŠ€μ—λŠ” λ°˜λ“œμ‹œ ν•˜λ‚˜ μ΄μƒμ˜ μƒμ„±μžκ°€ μ •μ˜λ˜μ–΄ μžˆμ–΄μ•Ό ν•œλ‹€.

μ»΄νŒŒμΌλŸ¬κ°€ μ œκ³΅ν•˜λŠ” 'κΈ°λ³Έ μƒμ„±μž' 덕뢄에 ν΄λž˜μŠ€μ— μƒμ„±μžλ₯Ό μ •μ˜ν•˜μ§€ μ•Šκ³ λ„ μΈμŠ€ν„΄μŠ€λ₯Ό 생성할 수 μžˆμ—ˆλ‹€.

package chapter6;

public class Ex6_12 {

	public static void main(String[] args) {
		
		Data_1 d1 = new Data_1();
		
	}

}

class Data_1 {
	int value;
}

 

μœ„μ™€ 같이 μƒμ„±μžλ₯Ό μ •μ˜ν•˜μ§€ μ•Šμ•„λ„ μ—λŸ¬ 없이 μΈμŠ€ν„΄μŠ€ 생성이 κ°€λŠ₯ν•˜λ‹€.

 

package chapter6;

public class Ex6_12 {

	public static void main(String[] args) {

		Data_1 d1 = new Data_1();
		Data_2 d2 = new Data_2();

	}

}

class Data_1 {
	int value;
}

class Data_2 {
	// iv μΈμŠ€ν„΄μŠ€ λ³€μˆ˜ , μΈμŠ€ν„΄μŠ€ λ©”μ„œλ“œμ— μ‚¬μš© κ°€λŠ₯
	int value;

	Data_2(int x) { // lv μ§€μ—­ λ³€μˆ˜
		value = x;
	}
}

Exception in thread "main" java.lang.Error: Unresolved compilation problem:

The constructor Data_2() is undefined

 

at chapter6.Ex6_12.main(Ex6_12.java:8)

 

Data_2 ν΄λž˜μŠ€μ—λŠ” λ§€κ°œλ³€μˆ˜κ°€ μžˆλŠ” μƒμ„±μžλ₯Ό μ„ μ–Έν•˜μ˜€λ‹€.

μœ„ μ½”λ“œλ₯Ό μ»΄νŒŒμΌν•˜λ©΄ μœ„μ™€ 같은 μ—λŸ¬λ©”μ‹œμ§€κ°€ λ‚˜νƒ€λ‚˜λŠ”λ° Data_2 ν΄λž˜μŠ€μ— μƒμ„±μž Data_2()κ°€ μ •μ˜λ˜μ–΄ μžˆμ§€ μ•Šμ•„

μ—λŸ¬κ°€ λ°œμƒν•œλ‹€.

 

μœ„ μ½”λ“œμ—μ„œ 컴파일 μ—λŸ¬κ°€ λ°œμƒν•˜μ§€ μ•Šλ„λ‘ ν•˜κΈ° μœ„ν•΄μ„  ?

Data_2 ν΄λž˜μŠ€μ— Data_2(){} μƒμ„±μžλ₯Ό μΆ”κ°€ μ„ μ–Έν•˜κ±°λ‚˜, μΈμŠ€ν„΄μŠ€λ₯Ό 생성할 λ•Œ μƒμ„±μž Data_2(int x) λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•œλ‹€

 
 

Data_2(){} // μΆ”κ°€λ‘œ μ •μ˜

 

Data_2(int x) {

value = x;

}

Data_2 d2 = new Data_2();

Data_2 d2 = new Data_2(10); //OK

 

2. λ§€κ°œλ³€μˆ˜κ°€ μžˆλŠ” μƒμ„±μž

package chapter6;

public class Ex6_12 {

	public static void main(String[] args) {

		Car3 c = new Car3("white", "auto", 4);
		System.out.println(c.color);
	}

}

class Car3 {
	String color;
	String gearType;
	int door;

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

	// λ§€κ°œλ³€μˆ˜κ°€ μžˆλŠ” μƒμ„±μž
	Car3(String c, String g, int d) {
		color = c;
		gearType = g;
		door = d;
	}
}

 

μƒμ„±μžλ„ λ§€κ°œλ³€μˆ˜λ₯Ό μ„ μ–Έν•˜μ—¬ 호좜 μ‹œ 값을 λ„˜κ²¨λ°›μ•„ μΈμŠ€ν„΄μŠ€μ˜ μ΄ˆκΈ°ν™” μž‘μ—…μ— μ‚¬μš©ν•  수 μžˆλ‹€.

λ§€κ°œλ³€μˆ˜λ₯Ό κ°–λŠ” μƒμ„±μžλ₯Ό μ‚¬μš©ν•˜λŠ” 것이 μ½”λ“œλ₯Ό 보닀 κ°„κ²°ν•˜κ³  μ§κ΄€μ μœΌλ‘œ λ§Œλ“ λ‹€.

 

πŸ’‘ 클래슀λ₯Ό μž‘μ„±ν•  λ•Œ λ‹€μ–‘ν•œ μƒμ„±μžλ₯Ό μ œκ³΅ν•¨μœΌλ‘œμ¨ μΈμŠ€ν„΄μŠ€ 생성 후에 λ³„λ„λ‘œ μ΄ˆκΈ°ν™”λ₯Ό ν•˜μ§€ μ•Šμ•„λ„ 되게 ν•˜λŠ” 것이 μ’‹λ‹€.

 

3. κΈ°λ³Έμƒμ„±μž, λ§€κ°œλ³€μˆ˜ μƒμ„±μž 예제

package chapter6;

public class Ex6_12 {

	public static void main(String[] args) {
		// μΈμŠ€ν„΄μŠ€ 생성 ν›„ iv κ°’ μ΄ˆκΈ°ν™”
		Car3 c1 = new Car3();
		c1.color = "blue";
		c1.gearType = "auto";
		c1.door = 2;
		System.out.println(c1.color + ',' + c1.gearType + ',' + c1.door);
		
		// λ³„λ„μ˜ μ΄ˆκΈ°ν™” 없이 μ‚¬μš© κ°€λŠ₯
		Car3 c2 = new Car3("white", "auto", 4);
		System.out.println(c2.color + ',' + c2.gearType + ',' + c2.door);
	}

}

class Car3 {
	String color;
	String gearType;
	int door;

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

	// λ§€κ°œλ³€μˆ˜κ°€ μžˆλŠ” μƒμ„±μž
	Car3(String c, String g, int d) {
		color = c;
		gearType = g;
		door = d;
	}
}

 

λ‹€μ–‘ν•œ μƒμ„±μžλ₯Ό μ •μ˜ν•΄ μΈμŠ€ν„΄μŠ€ λ³€μˆ˜μ˜ μ΄ˆκΈ°ν™”λ₯Ό 보닀 κ°„κ²°ν•˜κ³  μ§κ΄€μ μœΌλ‘œ ν•  수 μžˆλ‹€λŠ” μž₯점이 μžˆλŠ” 것 κ°™λ‹€.

λ‹€μŒ κ°œλ…μ„ κ³΅λΆ€ν•˜λŸ¬ ... ✍️

 

μ°Έκ³ μ„œμ  : μžλ°”μ˜μ •μ„ 기초편

 

'Java' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[Java] Lombok 라이브러리λ₯Ό μ‚¬μš©ν•œ JDBC ν”„λ‘œκ·Έλž˜λ°  (0) 2025.02.05
[Java] Java 개발 ν™˜κ²½ JDK 버전 λ³€κ²½ν•˜κΈ° πŸ€“  (1) 2025.01.16
[Java] λ°°μ—΄(Array) κ³Ό List, Set μΈν„°νŽ˜μ΄μŠ€ κ°„λ‹¨ν•œ 예제  (3) 2024.12.27
[Java] κ°„λ‹¨ν•œ 사칙 μ—°μ‚° 계산기에 클래슀, λ©”μ„œλ“œ ν™œμš©ν•΄λ³΄κΈ° ✍️  (0) 2024.12.05
[Java] μžλ°” μŠ€μΊλ„ˆ(Scanner) ν΄λž˜μŠ€μ™€ hasNext() / next() ν•¨μˆ˜ ✍️  (1) 2024.11.15
'Java' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [Java] Java 개발 ν™˜κ²½ JDK 버전 λ³€κ²½ν•˜κΈ° πŸ€“
  • [Java] λ°°μ—΄(Array) κ³Ό List, Set μΈν„°νŽ˜μ΄μŠ€ κ°„λ‹¨ν•œ 예제
  • [Java] κ°„λ‹¨ν•œ 사칙 μ—°μ‚° 계산기에 클래슀, λ©”μ„œλ“œ ν™œμš©ν•΄λ³΄κΈ° ✍️
  • [Java] μžλ°” μŠ€μΊλ„ˆ(Scanner) ν΄λž˜μŠ€μ™€ hasNext() / next() ν•¨μˆ˜ ✍️
🌟 Sean 🌟
🌟 Sean 🌟
  • 🌟 Sean 🌟
    Road to Dev
    🌟 Sean 🌟
  • 전체
    였늘
    μ–΄μ œ
    • λΆ„λ₯˜ 전체보기 (38)
      • Project (7)
      • Spring (3)
      • Java (7)
      • JSP&Servlet (3)
      • Framework (1)
      • DBMS (3)
        • OracleDB (3)
      • JavaScript (4)
      • HTML+CSS (7)
      • Git&GitHub (2)
      • WEB (1)
  • λΈ”λ‘œκ·Έ 메뉴

    • ν™ˆ
    • νƒœκ·Έ
    • λ°©λͺ…둝
  • 링크

  • 곡지사항

  • 인기 κΈ€

  • νƒœκ·Έ

    frontend
    μŠ€ν”„λ§λΆ€νŠΈ
    spring boot
    gradle
    html
    Database
    DBMS
    docker
    jsp
    DB
    java
    μžλ°”μŠ€ν¬λ¦½νŠΈ
    css
    JavaScript
    μ„œλ²„λ°°ν¬
    μžλ°”
    OracleDB
    Spring
    js
    servlet
  • 졜근 λŒ“κΈ€

  • 졜근 κΈ€

  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.1
🌟 Sean 🌟
[Java] μƒμ„±μž(constructor) - μΈμŠ€ν„΄μŠ€ μ΄ˆκΈ°ν™”πŸ§
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”