λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

IT

ν΄λž˜μŠ€μ™€ 객체, μΈμŠ€ν„΄μŠ€

728x90

πŸ“Œν΄λž˜μŠ€(Class)

ν΄λž˜μŠ€λž€, 객체λ₯Ό λ§Œλ“€μ–΄ λ‚΄λŠ” 섀계도 ν˜Ήμ€ 틀이닀.

μ„œλ‘œ μ—°κ΄€λ˜μ–΄ μžˆλŠ” λ³€μˆ˜, λ©”μ„œλ“œμ˜ 집합이닀.

class Animal {

	// λ³€μˆ˜
	String name;
	int age;

	// λ©”μ„œλ“œ
	void run(){
		System.out.println(name + "달렀");
	}
	void eat(){...}
}

클래슀의 ꡬ성

클래슀의 ꡬ성

class ν‚€μ›Œλ“œλ₯Ό μ΄μš©ν•˜μ—¬ μ„ μ–Έν•œλ‹€.

ν•„λ“œ = 멀버 λ³€μˆ˜

μΊ‘μŠν™”μ˜ μ›μΉ™μœΌλ‘œ 클래슀 외뢀에 μ–΄λ–€ λ³€μˆ˜λ‚˜ λ©”μ„œλ“œκ°€ μœ„μΉ˜ν•΄μ„œλŠ” μ•ˆλœλ‹€.

 

πŸ“Œκ°μ²΄(Object)

μ‹€μ„Έκ³„μ—μ„œ 우리 주변에 μžˆλŠ” TV, μ±…, 의자, μ‚¬λžŒ λ“± λͺ¨λ“  것이 객체이닀. κ°μ²΄λŠ” μžμ‹ λ§Œμ˜ κ³ μœ ν•œ μƒνƒœμ™€ 행동을 가지며 μ„œλ‘œ μƒν˜Έμž‘μš©ν•˜λ©° μ‘΄μž¬ν•œλ‹€.

μ΄λŸ¬ν•œ κ°μ²΄λŠ” ν΄λž˜μŠ€λ‘œλΆ€ν„° μƒμ„±λœλ‹€. μžμ‹ λ§Œμ˜ κ³ μœ ν•œ μƒνƒœμΈ ν•„λ“œ(멀버 λ³€μˆ˜)와 행동인 λ©”μ„œλ“œ(멀버 ν•¨μˆ˜)둜 κ΅¬μ„±λœλ‹€.

  • 객체의 생성
Animal rabbit = new Animal();
  • 레퍼런슀 λ³€μˆ˜
Animal rabbit;

μ΄λ ‡κ²Œλ§Œ 선언해두면, 객체가 μƒμ„±λ˜μ§€ μ•Šκ³ , 레퍼런슀λ₯Ό κ°€μ§€λŠ” λ³€μˆ˜λ§Œμ„ μ„ μ–Έν•œ 것이닀.

  • 객체 생성
rabbit = new Animal();

객체의 μ£Όμ†Œλ₯Ό rabbitμ΄λΌλŠ” 레퍼런슀 λ³€μˆ˜μ— λ‹΄μ•„μ€€λ‹€.

Stack과 Heap ꡬ쑰

String name = "토끼";
int age = 2;

void run(){...}
void eat(){...}
String name = "거뢁이";
int age = 40;

void run(){...}
void eat(){...}

동물 클래슀λ₯Ό 톡해 μƒμ„±λœ 토끼 객체와 거뢁이 객체이닀.

κ°μ²΄λŠ” 클래슀의 μΈμŠ€ν„΄μŠ€λΌκ³ λ„ λΆ€λ₯Έλ‹€.

 

πŸ“Œ μΈμŠ€ν„΄μŠ€

섀계도λ₯Ό λ°”νƒ•μœΌλ‘œ κ΅¬ν˜„λœ ꡬ체적인 싀체λ₯Ό μ˜λ―Έν•œλ‹€. μΈμŠ€ν„΄μŠ€λŠ” 객체에 ν¬ν•¨λ˜λŠ” κ°œλ…μ΄λ‹€.

객체가 λ©”λͺ¨λ¦¬μ— ν• λ‹Ήλ˜μ–΄ μ‹€μ œλ‘œ μ‚¬μš©μ΄ κ°€λŠ₯ν•  λ•Œ 이것을 μΈμŠ€ν„΄μŠ€λΌκ³  λΆ€λ₯Έλ‹€.

λΆ•μ–΄λΉ΅ ν‹€ ⇒ 클래슀

λΆ•μ–΄λΉ΅ ⇒ 객체

νŒ₯ λΆ•μ–΄λΉ΅, 슈크림 λΆ•μ–΄λΉ΅ ⇒ μΈμŠ€ν„΄μŠ€

보톡 μ„ μ–Έλ˜μ—ˆμ„ λ•Œλ₯Ό 객체라 ν•˜λ©°, λ©”λͺ¨λ¦¬μ— ν• λ‹Ήλ˜μ–΄ μ‚¬μš©λ  λ•Œλ₯Ό μΈμŠ€ν„΄μŠ€λΌ ν•œλ‹€.

β˜‘οΈ 마무리

ν΄λž˜μŠ€λž‘ κ°μ²΄λŠ” λ¬΄μ—‡μΈκ°€μš”?

ν΄λž˜μŠ€λž€ 객체λ₯Ό λ§Œλ“€μ–΄λ‚΄λŠ” 섀계도라 ν•  수 있으며, μ—°κ΄€λœ λ³€μˆ˜μ™€ λ©”μ„œλ“œλ₯Ό λͺ¨μ•„λ‘” 집합이라 ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ°μ²΄λŠ” μ΄λŸ¬ν•œ 클래슀λ₯Ό 톡해 μƒμ„±λ˜λ©°, κ³ μœ ν•œ μƒνƒœμ™€ ν–‰μœ„λ₯Ό μ§€λ‹ˆκ³  있으며, 클래슀의 μΈμŠ€ν„΄μŠ€λΌκ³  ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μΈμŠ€ν„΄μŠ€λŠ” λ¬΄μ—‡μΈκ°€μš”?

μΈμŠ€ν„΄μŠ€λž€ 객체에 ν¬ν•¨λ˜λŠ” κ°œλ…μœΌλ‘œ, 객체가 ꡬ체적으둜 κ΅¬ν˜„λœ 싀체λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€. λ©”λͺ¨λ¦¬ μ˜μ—­ 쀑 νž™ μ˜μ—­μœΌλ‘œ λ©”λͺ¨λ¦¬κ°€ ν• λ‹Ήλ˜μ–΄ μ‚¬μš©μ΄ κ°€λŠ₯ν•œ μƒνƒœλ₯Ό μΈμŠ€ν„΄μŠ€λΌκ³  ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ μΈμŠ€ν„΄μŠ€λ₯Ό λͺ¨λ‘ ν†΅μΉ­ν•˜μ—¬ 객체라고 ν•©λ‹ˆλ‹€.

객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°

**μΊ‘μŠν™”, 상속, λ‹€ν˜•μ„± 등을 톡해 μ†Œν”„νŠΈμ›¨μ–΄μ˜ μž¬μ‚¬μš©μ„±μ„ λ†’μ—¬ 생산성을 ν–₯μƒμ‹œν‚¬ 수 μžˆλ‹€.**

싀세계에 μ‘΄μž¬ν•˜λŠ” 것을 객체둜 ν‘œν˜„ν•˜μ—¬ μƒν˜Έ μž‘μš©μ„ μ„€κ³„ν•˜μ—¬ 절차 지ν–₯보닀 κ°„νŽΈν•˜κ²Œ κ΅¬ν˜„μ΄ κ°€λŠ₯ν•˜λ‹€.