๐Ÿ“œ MENTOR JAVA_

Section#7 _ ํด๋ž˜์Šค

CodeLoge 2025. 1. 14. 19:53

#1 ๊ฐ์ฒด์™€ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP : Object-Oriented Programming)

: ๊ฐ์ฒด๋ฅผ ์ง€ํ–ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ๋ฒ•

โ†ช๏ธŽ ๊ฐ์ฒด : ์ผ๋ฐ˜์ ์œผ๋กœ ์ƒํƒœ๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ณ  ์šฐ๋ฆฌ๊ฐ€ ํ–‰๋™์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ

โ†ช๏ธŽ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ : ๊ฐ์ฒด๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„ํ•˜๊ณ  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•˜๋Š” ๊ฒƒ

 

#2 ๊ฐ์ฒด์™€ ํด๋ž˜์Šค

2-1 ํด๋ž˜์Šค?

๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์ œ์ž‘ ์„ค๋ช…์„œ (์–ด๋–ค ๋ฌผ๊ฑด์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋งค๋‰ด์–ผ)

ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์‚ฌ์šฉ ๊ฐ€๋Šฅ

๊ธฐ๋ณธ ๊ตฌ์กฐ


public class Car{

// Car ํด๋ž˜์Šค ์„ ์–ธ

}

========================

์ ‘๊ทผ์ œํ•œ์ž class ํด๋ž˜์Šค ์ด๋ฆ„ {

์ ‘๊ทผ ์ œํ•œ์ž : ๋ณ€์ˆ˜์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํด๋ž˜์Šค์˜ ์ ‘๊ทผ ๋ฒ”์œ„๋ฅผ ์ œํ•œ (Ex. public, private, protected)

class : class๋ฅผ ์„ ์–ธํ•จ์„ ๋œป

ํด๋ž˜์Šค ์ด๋ฆ„ : ๋ณ€์ˆ˜์ฒ˜๋Ÿผ ์ด๋ฆ„์„ ๊ฐ€์ง€๊ณ , ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉ

}


์šฉ๋„

์‹คํ–‰์šฉ : ํ”„๋กœ๊ทธ๋žจ์˜ ์‹œ์ž‘ ๋ฉ”์„œ๋“œ์ธ main()์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํด๋ž˜์Šค → ๋‹ค๋ฅธ ํด๋ž˜์Šค์—์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ.

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์šฉ : ๋‹ค๋ฅธ ํด๋ž˜์Šค์—์„œ ์ด์šฉํ•  ๋ชฉ์ ์œผ๋กœ ์„ ์–ธ๋˜๋Š” ํด๋ž˜์Šค

 

#3 ํด๋ž˜์Šค์˜ ๊ตฌ์„ฑ

1. ํ•„๋“œ(field) : ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ ธ์•ผ ํ•  ๋ฐ์ดํ„ฐ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜


int wheel = 4;
wheel = 5;
// ํ•„๋“œ์— ์ ‘๊ทผ ํ•˜๋Š” ๋ฐฉ๋ฒ•
๊ฐ์ฒด๋ช….ํ•„๋“œ๋ช…
๊ฐ์ฒด๋ช… : ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด ๋งŒ๋“  ๊ฐ์ฒด ์ด๋ฆ„
ํ•„๋“œ๋ช… : ๋งŒ๋“  ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ•„๋“œ ์ด๋ฆ„

2. ๋ฉ”์„œ๋“œ (method) : ๊ฐ์ฒด์˜ ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•˜๋Š” ์ค‘๊ด„ํ˜ธ {} ๋ธ”๋ก

: ๋ฆฌํ„ด๊ฐ’์ด ์žˆ์„ ๊ฒฝ์šฐ → ๋ฆฌํ„ด๊ฐ’์˜ ์ž๋ฃŒํ˜•์„ ๋ฐ˜ํ™˜ ํƒ€์ž…์œผ๋กœ ์ž‘์„ฑ → int, String, char ๋“ฑ๋“ฑ

: ๋ฆฌํ„ด๊ฐ’์ด ์—†์„ ๊ฒฝ์šฐ → ๋ฐ˜ํ™˜ ํƒ€์ž…์„ void๋ผ๊ณ  ์ž‘์„ฑ

: ํ•œ๋ฒˆ ์„ ์–ธํ•ด ๋‘๋ฉด, ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ์—ฌ๋Ÿฌ ๋ฒˆ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅ → ๋ฐ˜๋ณต์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ณด๋‹ค ์‰ฝ๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•ด๊ฒฐ


๋ฐ˜ํ™˜ ํƒ€์ž… ๋ฉ”์„œ๋“œ๋ช… () {

 

}

// ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ๋ฒ•
ํด๋ž˜์Šค๋ช… ๊ฐ์ฒด๋ช… = ํด๋ž˜์Šค๋ช…();
๊ฐ์ฒด๋ช….๋ฉ”์„œ๋“œ๋ช…();

3. ์ƒ์„ฑ์ž (constructor)

: ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋ฐ˜๋“œ์‹œ ํ˜ธ์ถœํ•ด์•ผ ํ•˜๋Š” ๋ฉ”์„œ๋“œ → ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋ฉด์„œ ๊ฐ์ฒด ๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ์—ญํ• 

ํด๋ž˜์Šค๋ช… ๊ฐ์ฒด๋ช… = new ํด๋ž˜์Šค๋ช…();

new ํด๋ž˜์Šค๋ช…(); → ์ด ๋ฉ”์„œ๋“œ๊ฐ€ ์ƒ์„ฑ์ž

: ์ƒ์„ฑ์ž ๋ฉ”์„œ๋“œ๋Š” ํด๋ž˜์Šค๋ช…๊ณผ ์ด๋ฆ„์ด ๊ฐ™์Œ → ์šฐ๋ฆฌ๊ฐ€ ์ง์ ‘ ์„ ์–ธํ•˜์ง€ ์•Š์•„๋„ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๊ณ  ๋ˆˆ์—๋งŒ ๋ณด์ด์ง€ ์•Š์Œ

: ๋ฉ”๋ชจ๋ฆฌ์— ๊ฐ์ฒด ๋ณ€์ˆ˜๋ฅผ ์˜ฌ๋ ค์ฃผ๋Š” ์—ญํ• 

 

#4 ์ •์  ๋ฉค๋ฒ„์™€ static

: ํด๋ž˜์Šค ์•ˆ์— ์„ ์–ธ๋œ ํ•„๋“œ์™€ ๋ฉ”์„œ๋“œ → ํด๋ž˜์Šค ๋ฉค๋ฒ„

: ๊ฐ์ฒด(์ธ์Šคํ„ด์Šค) ๋ฉค๋ฒ„ → ๊ฐ ๊ฐœ์ฒด๊ฐ€ ๊ฐ€์ง€๊ฒŒ ๋˜๋Š” ํ•„๋“œ์™€ ๋ฉ”์„œ๋“œ

: ์ •์  ๋ฉค๋ฒ„ → ๋ชจ๋“  ๊ฐ์ฒด๋“ค์ด ๊ณต์œ ํ•˜๋ฉฐ ์‚ฌ์šฉํ•˜๋Š” ํ•˜๋‚˜์˜ ํ•„๋“œ์™€ ๋ฉ”์„œ๋“œ

 

#4-1 ์ •์  ๋ฉค๋ฒ„

: ํ•„๋“œ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ์„ ์–ธํ•  ๋•Œ 'static' ์ด๋ผ๋Š” ํ‚ค์›Œ๋“œ๊ฐ€ ๋ถ™์€ ๋ฉค๋ฒ„

static ์‚ฌ์ „์  ์˜๋ฏธ : '๊ณ ์ •๋œ' ์ด๋ผ๋Š” ๋œป

static ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด : 'ํด๋ž˜์Šค์— ๊ณ ์ •๋˜์—ˆ๋‹ค' ์˜ ์˜๋ฏธ → ๊ฐ์ฒด๊ฐ€ ์•„๋‹Œ ํด๋ž˜์Šค์— ์˜์กด์ ์ธ ์š”์†Œ

: static์ด ์•ž์— ๋ถ™์€ ๋ฉค๋ฒ„๋“ค์€ ๋‹ค๋ฅธ ๋ฉค๋ฒ„๋“ค๊ณผ๋Š” ๋‹ฌ๋ฆฌ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

โ†ช๏ธŽ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ํ”„๋กœ๊ทธ๋žจ์„ ์‹œ์ž‘ํ•  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€๊ณ  ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์‚ฌ๋ผ์ง

// ํด๋ž˜์Šค ์ด๋ฆ„์„ ํ†ตํ•ด ํ˜ธ์ถœ

ํด๋ž˜์Šค๋ช….ํ•„๋“œ;
ํด๋ž˜์Šค๋ช….๋ฉ”์„œ๋“œ();

: static์€ ๊ฐ์ฒด๋งˆ๋‹ค ๊ฐ€์ง€๋Š” ๋ฐ์ดํ„ฐ ๊ธฐ๋Šฅ์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๊ฐ์ฒด๊ฐ€ ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ ธ์•ผ ํ•  ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํšจ์œจ์ 