๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

5.์ฐธ์กฐ(ํ˜ผ๊ณต์ž)

์‹œํ๋ฆฌํ‹ฐ์ง€ํ˜ธ 2023. 9. 22.

5-1 ์ฐธ์กฐ ํƒ€์ž…๊ณผ ์ฐธ์กฐ ๋ณ€์ˆ˜

 

๊ธฐ๋ณธ ํƒ€์ž… : byte, short, char, int, long, float, double, boolean ํƒ€์ž…์„ ๋งํ•˜๋ฉฐ ์ด๋“ค ํƒ€์ž…์˜ ๋ณ€์ˆ˜์—๋Š” ๊ฐ’ ์ž์ฒด๊ฐ€ ์ €์žฅ๋œ๋‹ค.

 

์ฐธ์กฐ ํƒ€์ž…: ๊ธฐ๋ณธ ํƒ€์ž…์„ ์ œ์™ธํ•œ ๋ฐฐ์—ด, ์—ด๊ฑฐ, ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค ๋“ฑ์„ ๋งํ•œ๋‹ค. ์ฐธ์กฐ ํƒ€์ž…์˜ ๋ณ€์ˆ˜์—๋Š” ๊ฐ์ฒด์˜ ๋ฒˆ์ง€๊ฐ€ ์ €์žฅ๋œ๋‹ค. ๋ฒˆ์ง€๋กœ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•œ๋‹ค๋Š” ์˜๋ฏธ์—์„œ ์ฐธ์กฐ ํƒ€์ž…์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ ์˜์—ญ: JVM์€ ์šด์˜์ฒด์ œ์—์„œ ํ• ๋‹น๋ฐ›์€ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ๋ฉ”์†Œ๋“œ ์˜์—ญ, ํž™ ์˜์—ญ, ์Šคํƒ ์˜์—ญ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค. ๋ฉ”์†Œ๋“œ ์˜์—ญ์—๋Š” ์ •์  ํ•„๋“œ, ์ƒ์ˆ˜, ๋ฉ”์†Œ๋“œ ์ฝ”๋“œ, ์ƒ์„ฑ์ž ์ฝ”๋“œ๊ฐ€ ์œ„์น˜ํ•˜๋ฉฐ, ํž™ ์˜์—ญ์—๋Š” ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.  ๊ทธ๋ฆฌ๊ณ  ์Šคํƒ ์˜์—ญ์—๋Š” ๋ณ€์ˆ˜๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.

 

๋ฒˆ์ง€ ๋น„๊ต : ๋น„๊ต ์—ฐ์‚ฐ์ž (=, !=) ๊ฐ€ ๊ธฐ๋ณธ ํƒ€์ž…์—์„œ ์‚ฌ์šฉ๋˜๋ฉด ๊ฐ’์„ ๋น„๊ตํ•˜์ง€๋งŒ, ์ฐธ์กฐ ํƒ€์ž…์—์„œ ์‚ฌ์šฉ๋˜๋ฉด ๋ฒˆ์ง€๋ฅผ ๋น„๊ตํ•œ๋‹ค. ==์ด ture๊ฐ€ ๋‚˜์˜ค๋ฉด ๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•œ๋‹ค๋Š” ๋œป์ด๊ณ  false๊ฐ€ ๋‚˜์˜ค๋ฉด ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•œ๋‹ค๋Š” ๋œป. ๊ฐ์ฒด ์•ˆ์„ ๋น„๊ตํ•œ๋‹ค๋ฉด A.equals(B)

 

null : ์ฐธ์กฐ ํƒ€์ž… ๋ณ€์ˆ˜๋Š” ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋œป์œผ๋กœ nulll ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ null์ธ ์ฐธ์กฐ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์žˆ์ง€๋„ ์•Š์€ ๊ฐ์ฒด์˜ ํ•„๋“œ๋‚˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด NullPointerException์ด ๋ฐœ์ƒํ•œ๋‹ค.

 

5-2 ๋ฐฐ์—ด

๋ฐฐ์—ด : ๊ฐ™์€ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ์†๋œ ๊ณต๊ฐ„์— ๋‚˜์—ดํ•˜๊ณ , ๊ฐ ๋ฐ์ดํ„ฐ์— ์ธ๋ฑ์Šค๋ฅผ ๋ถ€์—ฌํ•ด๋†“์€ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค.

 

์ธ๋ฑ์Šค : ๋ฐฐ์—ด ํ•ญ๋ชฉ์— ๋ถ™์ธ ๋ฒˆํ˜ธ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. 0๋ฒˆ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ 0~(๋ฐฐ์—ด๊ธธ์ด - 1)๊นŒ์ง€ ๋ฒ”์œ„๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค.

 

๋ฐฐ์—ด ์„ ์–ธ : ๋ณ€์ˆ˜ ์„ ์–ธ๊ณผ ๋น„์Šทํ•œ๋ฐ, ๋Œ€๊ด„ํ˜ธ๊ฐ€ ์ถ”๊ฐ€๋˜์–ด ํƒ€์ž…[] ๋ณ€์ˆ˜; ํ˜•ํƒœ๋กœ ์„ ์–ธ๋œ๋‹ค. int[] scores๋Š” int ๋ฐฐ์—ด์„ ์„ ์–ธํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ scores๋Š” ๋ฐฐ์—ด ๋ณ€์ˆ˜๋ผ๊ณ  ๋ธŒ๋ฅธ๋‹ค.

 

๋ฐฐ์—ด ์ƒ์„ฑ: ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‘ ๊ฐ€์ง€์ด๋‹ค. ํ•˜๋‚˜๋Š” { ๊ฐ’1, ๊ฐ’2, ๊ฐ’3 ... }์ฒ˜๋Ÿผ ๊ฐ’ ๋ชฉ๋ก์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๊ณ , ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” new ํƒ€์ž…[๊ธธ์ด1][๊ธธ์ด2]; ์ด๋‹ค. ๋ณ€์ˆ˜.length๋Š” 1์ฐจ์› ๋ฐฐ์—ด์˜ ๊ธธ์ด1์ด ๋˜๊ณ , ๋ณ€์ˆ˜[์ธ๋ฑ์Šค].length๋Š” ํ•ด๋‹น ํ•ญ๋ชฉ์ด ์ฐธ์กฐํ•˜๋Š” 2์ฐจ์› ๋ฐฐ์—ด์˜ ๊ธธ์ด2๋ฅผ ๋งํ•œ๋‹ค.

 

ํ–ฅ์ƒ๋œ for๋ฌธ : for(ํƒ€์ž… ๋ณ€์ˆ˜ : ๋ฐฐ์—ด) {} ๋ฅผ ๋งํ•œ๋‹ค. ํ–ฅ์ƒ๋œ for๋ฌธ์€ ๋ฐ˜๋ณต ์‹คํ–‰์„ ํ•˜๊ธฐ ์œ„ํ•ด ๋ฃจํ”„ ์นด์šดํ„ฐ ๋ณ€์ˆ˜์™€ ์ฆ๊ฐ์‹์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋ฐฐ์—ด์˜ ํ•ญ๋ชฉ ๊ฐœ์ˆ˜๋งŒํผ ๋ฐ˜๋ณตํ•˜๊ณ , ์ž๋™์ ์œผ๋กœ for๋ฌธ์„ ๋น ์ ธ๋‚˜๊ฐ„๋‹ค. ๋ฐ˜๋ณตํ•  ๋•Œ๋งˆ๋‹ค ๋ณ€์ˆ˜์—๋Š” ๋ฐฐ์—ด์—์„œ ๊ฐ€์ ธ์˜จ ํ•ญ๋ชฉ์ด ์ €์žฅ๋œ๋‹ค.

 

+

 

์ •์ˆ˜ ํƒ€์ž… ๋ฐฐ์—ด ํ•ญ๋ชฉ์˜ ๊ธฐ๋ณธ ์ดˆ๊ธฐ๊ฐ’์€ 0์ด๋‹ค.

์‹ค์ˆ˜ ํƒ€์ž… ๋ฐฐ์—ด ํ•ญ๋ชฉ์˜ ๊ธฐ๋ณธ ์ดˆ๊ธฐ๊ฐ’์€ 0.0F ๋˜๋Š” 0.0์ด๋‹ค.

์ฐธ์กฐ ํƒ€์ž… ๋ฐฐ์—ด ํ•ญ๋ชฉ์˜ ๊ธฐ๋ณธ ์ดˆ๊ธฐ๊ฐ’์€ null์ด๋‹ค.

 

5-3 ์—ด๊ฑฐ ํƒ€์ž…

 

์—ด๊ฑฐ ํƒ€์ž…: ์—ด๊ฑฐ ํƒ€์ž…์€ ๋ช‡ ๊ฐ€์ง€๋กœ ์ œํ•œ๋œ ์ƒ์ˆ˜๋ฅผ ๊ฐ€์ง€๋Š” ํƒ€์ž…์„ ๋งํ•œ๋‹ค.

 

์—ด๊ฑฐ ํƒ€์ž… ์„ ์–ธ: enum ํƒ€์ž… { ์ƒ์ˆ˜, ์ƒ์ˆ˜, ... } ํ˜•ํƒœ๋กœ ์—ด๊ฑฐ ํƒ€์ž…์„ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด enum Week {MONDAY, ..., SUNDAY} ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง„๋‹ค.

 

์—ด๊ฑฐ ์ƒ์ˆ˜: ์—ด๊ฑฐ ํƒ€์ž… ์„ ์–ธ ๋•Œ ์ฃผ์–ด์ง„ ์ƒ์ˆ˜๋ฅผ ๋งํ•˜๋ฉฐ ํƒ€์ž….์ƒ์ˆ˜ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Week ์—ด๊ฑฐ ํƒ€์ž…์˜ ์ƒ์ˆ˜ MONDAY๋Š” Week.MONDAY๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

 

์—ด๊ฑฐ ํƒ€์ž… ๋ณ€์ˆ˜: ์—ด๊ฑฐ ํƒ€์ž…์œผ๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋ฅผ ๋งํ•œ๋‹ค. ์—ด๊ฑฐ ํƒ€์ž… ๋ณ€์ˆ˜์—๋Š” ์—ด๊ฑฐ ์ƒ์ˆ˜ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋Œ€์ž…๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด Week today = new Week.FRIDAY; ์—์„œ today๊ฐ€ ์—ด๊ฑฐ ํƒ€์ž… ๋ณ€์ˆ˜์ด๋‹ค.

 

+

 

์—ด๊ฑฐ ํƒ€์ž…์€ ํ•œ์ •๋œ ๊ฐ’์„ ๊ฐ–๋Š” ํƒ€์ž…์ด๋‹ค.

์—ด๊ฑฐ ํƒ€์ž… ๋ณ€์ˆ˜์—๋Š” ์—ด๊ฑฐ ํƒ€์ž…์— ์ •์˜๋œ ์ƒ์ˆ˜๋ฅผ ๋Œ€ํ•ฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์—ด๊ฑฐ ํƒ€์ž… ๋ณ€์ˆ˜์— null์„ ๋Œ€์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค.

์—ด๊ฑฐ ์ƒ์ˆ˜๋Š” ๊ด€๋ก€์ ์œผ๋กœ ๋Œ€๋ฌธ์ž๋กœ ์ž‘์„ฑํ•œ๋‹ค.

 

 

 

๋Œ“๊ธ€