πŸ‘©‍πŸ’» ν”„λ‘œκ·Έλž˜λ°/🎠 C++

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

peewoong 2024. 4. 17. 22:44

🌟 객체에 λŒ€ν•œ κ°„λ‹¨ν•œ μ •μ˜

사전적 의미 : 물건/λŒ€μƒ

 

🟩 객체 μ€‘μ‹¬μ˜ ν”„λ‘œκ·Έλž˜λ°

"λ‚˜λŠ” 과일μž₯μˆ˜μ—κ²Œ 두 개의 사과λ₯Ό κ΅¬λ§€ν–ˆλ‹€"

객체 πŸ‘‰ λ‚˜, 과일μž₯수, 사과

데이터 πŸ‘‰ 두 개

ν–‰μœ„, κΈ°λŠ₯ πŸ‘‰ κ΅¬λ§€ν–ˆλ‹€.

 

객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ—μ„œλŠ” λ‚˜, 과일μž₯수, μ‚¬κ³ΌλΌλŠ” 객체λ₯Ό λ“±μž₯μ‹œμΌœ 두 개의 사과 κ΅¬λ§€λΌλŠ” ν–‰μœ„λ₯Ό μ‹€μ²΄ν™”ν•œλ‹€.

ν˜„μ‹€μ— μ‘΄μž¬ν•˜λŠ” 사물과 λŒ€μƒ, 그리고 그에 λ”°λ₯Έ 행동을 μžˆλŠ” κ·ΈλŒ€λ‘œ μ‹€μ²΄ν™”μ‹œν‚€λŠ” ν˜•νƒœμ˜ ν”„λ‘œκ·Έλž˜λ°

 

🟩 객체 = 데이터 + κΈ°λŠ₯

🌟 객체 ν‘œν˜„

(ν–‰μœ„) 과일μž₯μˆ˜λŠ” 과일을 νŒλ‹€.

(μƒνƒœ) 과일μž₯μˆ˜λŠ” 사과 20개, μ˜€λ Œμ§€ 10개λ₯Ό λ³΄μœ ν•˜κ³  μžˆλ‹€.

 

🌟 데이터 ν‘œν˜„(λ³€μˆ˜ μ„ μ–Έ)

λ³΄μœ ν•˜κ³  μžˆλŠ” μ‚¬κ³Όμ˜ 수 : int numOfApples;

판맀 수읡 : int myMoney;

과일 κ°’ : const int APPLE_PRICE; (λ³€ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄ μƒμˆ˜ν™”)

 

κ·ΈλŸ¬λ‚˜, μƒμˆ˜λŠ” μ„ μ–Έκ³Ό λ™μ‹œμ— μ΄ˆκΈ°ν™”λ˜μ–΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμ— λΆˆκ°€λŠ₯

클래슀λ₯Ό μ •μ˜ν•˜λŠ” κ³Όμ •μ—μ„œ μ„ μ–Έκ³Ό λ™μ‹œμ— μ΄ˆκΈ°ν™”κ°€ κ°€λŠ₯ν•˜λ‹€.

int APPLE_PRICE;

void InitMembers(int price) {
	APPLE_PRICE = price;
} // μ΄ˆκΈ°ν™”λ₯Ό μœ„ν•œ μΆ”κ°€

 

ν–‰μœ„ ν‘œν˜„(ν•¨μˆ˜ μ •μ˜)

int SaleApples(int money) {    // 사과  ꡬ맀앑이 ν•¨μˆ˜μ˜ 인자둜 전달
	int num = money / 1000;    // 사과가 κ°œλ‹Ή 1,000원이라 κ°€μ •
    numOfApples -= num;        // μ‚¬κ³Όμ˜ μˆ˜κ°€ 쀄어든닀.
    myMoney += money;          // 판맀수읡
    return num;                //  μ‹€μ œ ꡬ맀가 λ°œμƒν•œ μ‚¬κ³Όμ˜ 수 λ°˜ν™˜
}

 

🟩 일반적인 λ³€μˆ˜ μ„ μ–Έ λ°©μ‹μ˜ 객체 생성

클래슀λͺ… λ³€μˆ˜λͺ…;

Car car1;

 

🟩 동적 ν• λ‹Ή λ°©μ‹μ˜ 객체 생성

클래슀λͺ… * λ³€μˆ˜λͺ… = new 클래슀λͺ…;

Car * objPtr1 = new Car;

 

🟩 λ©”μ‹œμ§€ 전달

A클래슀의 a객체가 B클래슀의 b객체의 ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜κ³  μžˆλ‹€.

객체지ν–₯은 이것을 '두 객체가 λŒ€ν™”ν•˜λŠ” 것'이라 λ³Έλ‹€.

μ΄λŸ¬ν•œ ν˜•νƒœμ˜ ν•¨μˆ˜ ν˜ΈμΆœμ„ κ°€λ¦¬μΌœ 'λ©”μ‹œμ§€ 전달' 이라 ν•œλ‹€.