πŸ› οΈBackend/β˜•Java

[Java] ν΄λž˜μŠ€μ™€ 객체의 μ •μ˜

junbin2 2024. 10. 5. 18:21

 

(1) ν΄λž˜μŠ€μ™€ 객체 λΆ•μ–΄λΉ΅ν‹€? λΆ•μ–΄λΉ΅?

ν΄λž˜μŠ€μ™€ 객체λ₯Ό μ„€λͺ…ν•  λ•Œ λΆ•μ–΄λΉ΅ν‹€κ³Ό λΆ•μ–΄λΉ΅μœΌλ‘œ 주둜 μ˜ˆμ‹œλ₯Ό λ“ λ‹€. ν•΄λ‹Ή μ˜ˆμ‹œλŠ” μ†”μ§νžˆ 처음 λ°°μš°λŠ” μž…μž₯μ—μ„œλŠ” μ „ν˜€ μ˜ˆμ‹œλ₯Ό 톡해 이해λ₯Ό ν•˜κΈ°κ°€ μ‰½μ§€λŠ” μ•Šμ„ 것이닀. μ˜ˆμ‹œλ₯Ό λ“  μ΄ν•΄λ³΄λ‹€λŠ” μ •ν™•ν•œ 이해λ₯Ό ν•˜κΈ° μœ„ν•΄ μ—¬κΈ°μ„œ μ˜ˆμ‹œλŠ” μƒλž΅ν•œλ‹€.

 

(2) ν΄λž˜μŠ€μ™€ κ°μ²΄λž€?

ν΄λž˜μŠ€λž€?

μžλ°” μ–Έμ–΄λ₯Ό ν™œμš©ν•΄ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λ‹€ 보면, ν•΄λ‹Ή μ½”λ“œλ₯Ό μž‘μ„±ν•  파일이 ν•„μš”ν•˜λ‹€. ν•΄λ‹Ή 파일 내뢀에 class ν‚€μ›Œλ“œκ°€ λΆ™μœΌλ©΄ ν•΄λ‹Ή νŒŒμΌμ€ μžλ°” μ†ŒμŠ€μ½”λ“œλ₯Ό μž‘μ„±ν•  수 μžˆλŠ” 클래슀 파일이 λœλ‹€. 이것이 ν΄λž˜μŠ€μ΄λ‹€.

 

κ°μ²΄λž€?

μžλ°”μ—μ„œλŠ” new ν‚€μ›Œλ“œλ₯Ό μ΄μš©ν•΄ 객체λ₯Ό 생성할 수 μžˆλ‹€. λŸ°νƒ€μž„μ— ν•˜λ‚˜μ˜ 클래슀λ₯Ό κ°€μ§€κ³  λ™μΌν•œ 객체듀을 μ—¬λŸΏ 생성할 수 있게 λœλ‹€. 즉, κ°μ²΄λŠ” 클래슀의 정보λ₯Ό ν† λŒ€λ‘œ λ™μ μœΌλ‘œ λ§Œλ“€μ–΄μ§€λŠ” 볡사본을 μ˜λ―Έν•˜κ²Œ λœλ‹€.

 

(3) μ˜ˆμ‹œ μ½”λ“œ

ν΄λž˜μŠ€μ™€ 객체의 이해λ₯Ό μœ„ν•œ μ˜ˆμ‹œ μ½”λ“œμ΄λ‹€.

public class Main {
	public static void main(String[] args) {
		Car audi = new Car();
		Car hyundai = new Car();
		Car benz = new Car();
    }
}

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

μœ„μ˜ μ˜ˆμ‹œλ₯Ό 톡해 보면 "new Car()" λ₯Ό 톡해 각각 μ•„μš°λ””, ν˜„λŒ€, λ²€μΈ  λΌλŠ” λ³€μˆ˜λͺ…μœΌλ‘œ 객체λ₯Ό ν˜„μž¬ 3개λ₯Ό λ§Œλ“€κ³  μžˆμŠ΅λ‹ˆλ‹€
μ—¬κΈ°μ„œ ν΄λž˜μŠ€λŠ” Car이며, κ°μ²΄λŠ” new Car()κ°€ 객체라고 μƒκ°ν•˜λ©΄ λ˜κ² μŠ΅λ‹ˆλ‹€. ( μžμ„Έν•œ μ„€λͺ…은 λ°‘μ—μ„œ, 일단 λ„˜μ–΄κ°€κ³  )
μœ„μ˜ μ˜ˆμ‹œμ—μ„œ ν¬μΈνŠΈλŠ” 객체λ₯Ό 3개λ₯Ό λ§Œλ“œλŠ” 것 μž…λ‹ˆλ‹€. Carν΄λž˜μŠ€λŠ” ν•˜λ‚˜μΈλ° μœ„μ˜ μ½”λ“œμ²˜λŸΌ new Car()λ₯Ό 톡해 μ΄λ¦„λ§Œ λ‹€λ₯΄μ§€ κ²°κ΅­ 같은 μƒκΉ€μƒˆλ₯Ό κ°€μ§„ 객체λ₯Ό 3개λ₯Ό λ§Œλ“€ 수 μžˆλŠ” 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.
 
이제 μ—¬κΈ°μ„œ 뢕어빡틀이 클래슀, 뢕어빡은 κ°μ²΄λΌλŠ” μ˜ˆμ‹œλ₯Ό μ μš©μ‹œμΌœ λ³΄κ² μŠ΅λ‹ˆλ‹€.
뢕어빡틀은 ν•˜λ‚˜λ‘œ μ—¬λŸ¬κ°œμ˜ 뢕어빡을 찍어낼 수 μžˆλŠ” 효율적인 ν‹€μž…λ‹ˆλ‹€. μœ„μ˜ μ½”λ“œ μ˜ˆμ‹œμ™€ 비ꡐλ₯Ό 해보면 맀우 λΉ„μŠ·ν•œ λ™μž‘μ›λ¦¬λ‘œ λŒμ•„κ°„λ‹€λŠ” 것을 μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€. 이렇듯 "ν΄λž˜μŠ€λŠ” ν•˜λ‚˜λ§Œ 쑴재 ν•  수 있고 κ°μ²΄λŠ” μ—¬λŸ¬κ°œ μ‘΄μž¬ν•  수 μžˆλ‹€." λΌλŠ”μ μ„ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€. (ν•΄λ‹Ή 클래슀둜 μ—¬λŸ¬κ°œμ˜ 객체λ₯Ό μ°μ–΄λ‚΄λŠ” 것이기 λ•Œλ¬Έ)