CodeGym /Java Blog /๋ฌด์ž‘์œ„์˜ /Java ๊ฐœ๋ฐœ์ž ์ง์ฑ…์— ๋Œ€ํ•œ ์ทจ์—… ๋ฉด์ ‘์˜ ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€์„ ์‚ดํŽด๋ณด์„ธ์š”. 5๋ถ€
John Squirrels
๋ ˆ๋ฒจ 41
San Francisco

Java ๊ฐœ๋ฐœ์ž ์ง์ฑ…์— ๋Œ€ํ•œ ์ทจ์—… ๋ฉด์ ‘์˜ ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€์„ ์‚ดํŽด๋ณด์„ธ์š”. 5๋ถ€

๋ฌด์ž‘์œ„์˜ ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
์•ˆ๋…• ์•ˆ๋…•! ์˜ค๋Š˜๋‚  Java ๊ฐœ๋ฐœ์ž์— ๋Œ€ํ•œ ์ˆ˜์š”๊ฐ€ ๋งค์šฐ ๋†’์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ œ๊ฐ€ ์—ฌ๋Ÿฌ๋ถ„์—๊ฒŒ ์ผ์ž๋ฆฌ๋ฅผ ์ œ๊ณตํ•ด๋“œ๋ฆด ์ˆ˜๋Š” ์—†์ง€๋งŒ ์—ฌ๋Ÿฌ๋ถ„์ด ์ƒˆ๋กœ์šด ์ง€์‹์„ ์–ป๊ณ  ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์„ ๋ฉ”์šธ ์ˆ˜ ์žˆ๋„๋ก ๋„์™€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์ œ Java ๊ฐœ๋ฐœ์ž ์ธํ„ฐ๋ทฐ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๊ฒ€ํ† ๋ฅผ ๊ณ„์†ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ธฐ์‚ฌ ๋ ๋ถ€๋ถ„์—์„œ ๋ฆฌ๋ทฐ์˜ ์ด์ „ ๋ถ€๋ถ„์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Java ๊ฐœ๋ฐœ์ž ์ง์œ„์— ๋Œ€ํ•œ ์ทจ์—… ๋ฉด์ ‘์˜ ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€์„ ์‚ดํŽด๋ณด์„ธ์š”.  ํŒŒํŠธ 5 - 1

39. Java์˜ ์•ก์„ธ์Šค ์ˆ˜์ •์ž๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ด๋ฆ„์„ ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๊ฒƒ๋“ค์€ ๋ฌด์—‡์„ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๊นŒ?

๋‚˜๋Š” ์ด์ „์— ์บก์Šํ™”๋ฅผ ๋‹ฌ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” Java ์š”์†Œ์— ๋Œ€ํ•œ ์งˆ๋ฌธ์—์„œ ์•ก์„ธ์Šค ์ˆ˜์ •์ž๋ฅผ ๋‹ค๋ฃจ์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๋ž˜๋„ ์ƒ๊ธฐ์‹œ์ผœ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. Java์˜ ์•ก์„ธ์Šค ํ•œ์ •์ž๋Š” ํŠน์ • Java ๊ตฌ์„ฑ ์š”์†Œ์— ๋ถ€์—ฌ๋œ ์•ก์„ธ์Šค ์ˆ˜์ค€์„ ์„ค๋ช…ํ•˜๋Š” ํ‚ค์›Œ๋“œ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์•ก์„ธ์Šค ํ•œ์ •์ž๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
  • public โ€” ์ด ์ˆ˜์ •์ž๋กœ ํ‘œ์‹œ๋œ ์š”์†Œ๋Š” ๊ณต๊ฐœ์ž…๋‹ˆ๋‹ค. ์ฆ‰, public ํ•œ์ •์ž๋กœ ์„ ์–ธ๋œ ํ•„๋“œ, ๋ฉ”์„œ๋“œ, ํด๋ž˜์Šค๋Š” ์ž์ฒด ํŒจํ‚ค์ง€์™€ ์™ธ๋ถ€ ํŒจํ‚ค์ง€ ๋ชจ๋‘์—์„œ ๋‹ค๋ฅธ ํด๋ž˜์Šค์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • protected โ€” ์ด ์ˆ˜์ •์ž๋กœ ํ‘œ์‹œ๋œ ์š”์†Œ๋Š” ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์— ์žˆ๋”๋ผ๋„ ํ˜„์žฌ ํŒจํ‚ค์ง€ ๋˜๋Š” ํŒŒ์ƒ ํด๋ž˜์Šค์˜ ์ž์ฒด ํด๋ž˜์Šค ์–ด๋””์—์„œ๋‚˜ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์•ก์„ธ์Šค ์ˆ˜์ •์ž๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’ (๋˜๋Š” ์ˆ˜์ •์ž๊ฐ€ ์ „ํ˜€ ์—†์Œ)์ด ์•”์‹œ์ ์œผ๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์— ์žˆ๋Š” ํŒŒ์ƒ ํด๋ž˜์Šค์— ํ‘œ์‹œ๋œ๋‹ค๋Š” ์ ์„ ์ œ์™ธํ•˜๋ฉด ์ด์ „ ํ•ญ๋ชฉ๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
  • private โ€” ์ด๊ฒƒ์€ ๋ชจ๋“  ์ˆ˜์ •์ž ์ค‘์—์„œ ๊ฐ€์žฅ ๋น„๊ณต๊ฐœ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ํด๋ž˜์Šค ๋‚ด์˜ ์š”์†Œ์—๋งŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

40. ์ •์  ๋ฐ ๋น„์ •์  ๋ฉ”์„œ๋“œ์˜ ์ฃผ์š” ๊ธฐ๋Šฅ์„ ์„ค๋ช…ํ•˜์„ธ์š”.

์ฃผ์š” ์ฐจ์ด์ ์€ ์ •์  ๋ฉ”์„œ๋“œ๊ฐ€ ํด๋ž˜์Šค์— ์†ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ด ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์ •์  ๋ฉ”์„œ๋“œ๋Š” ํด๋ž˜์Šค ์œ ํ˜•์—์„œ๋งŒ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ณ ์–‘์ด๋ฅผ ์“ฐ๋‹ค๋“ฌ๋Š” ์ •์  ๋ฉ”์†Œ๋“œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
public class CatService {
   public static void petTheCat(Cat cat) {
       System.out.println("Pet the cat: " + cat.getName());
   }
์ด๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•ด CatService ํด๋ž˜์Šค ์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค .
Cat cat = new Cat(7, "Bobby");
CatService.petTheCat(cat);
๋Œ€์กฐ์ ์œผ๋กœ, ์ผ๋ฐ˜์ ์ธ ๋ฉ”์†Œ๋“œ๋Š” ๊ฐ์ฒด์— ๋ฐ”์ธ๋”ฉ(์†ํ•ด)๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ˜ธ์ถœํ•˜๋ ค๋ฉด ๋ฉ”์†Œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋  ์ธ์Šคํ„ด์Šค(๊ฐ์ฒด)๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ณ ์–‘์ด๊ฐ€ ๋น„์ •์  ๋ฉ”์„œ๋“œ meow()๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค .
class Cat {
   public void meow() {
       System.out.println("Meow! Meow! Meow!");
   }
์ด ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ ค๋ฉด ๊ณ ์–‘์ด์˜ ํŠน์ • ์ธ์Šคํ„ด์Šค๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
Cat cat = new Cat(7, "Bobby");
cat.meow();

41. ์ •์  ๋ฐ ๋น„์ •์  ๋ฉ”์„œ๋“œ์— ์ ์šฉ๋˜๋Š” ์ฃผ์š” ์ œํ•œ ์‚ฌํ•ญ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์•ž์„œ ๋งํ–ˆ๋“ฏ์ด ์ผ๋ฐ˜์ ์ธ(๋น„์ •์ ) ๋ฉ”์„œ๋“œ์˜ ์ฃผ์š” ์ œํ•œ ์‚ฌํ•ญ์€ ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋˜๋Š” ์ธ์Šคํ„ด์Šค๊ฐ€ ํ•ญ์ƒ ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ •์  ๋ฉ”์„œ๋“œ์—๋Š” ์ด๊ฒƒ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด์ œ ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•œ ํ˜„์žฌ ๊ฐœ์ฒด๊ฐ€ ์กด์žฌํ•˜๋ฏ€๋กœ ์ •์  ๋ฉ”์„œ๋“œ๋Š” ๊ฐœ์ฒด ์š”์†Œ์— ๋Œ€ํ•œ this ์ฐธ์กฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

42. static ํ‚ค์›Œ๋“œ๋Š” ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋‚˜์š”? ์ •์  ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•˜๊ฑฐ๋‚˜ ์˜ค๋ฒ„๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

static ํ‚ค์›Œ๋“œ ๋กœ ํ‘œ์‹œ๋œ ์š”์†Œ๋Š” ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค์— ์†ํ•˜์ง€ ์•Š๊ณ  ํด๋ž˜์Šค ์ž์ฒด์— ์†ํ•ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค ์ž์ฒด๊ฐ€ ๋กœ๋“œ๋  ๋•Œ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. ์ •์  ์š”์†Œ๋Š” ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด์—์„œ ๋™์ผํ•˜์ง€๋งŒ ๋น„์ •์  ์š”์†Œ๋Š” ํŠน์ • ๊ฐœ์ฒด์—์„œ๋งŒ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์š”์†Œ๋Š” ์ •์ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํด๋ž˜์Šค์˜ ํ•„๋“œ;
  • ํด๋ž˜์Šค์˜ ์ดˆ๊ธฐํ™” ๋ธ”๋ก;
  • ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ;
  • ํด๋ž˜์Šค์˜ ์ค‘์ฒฉ ํด๋ž˜์Šค(๋ฌผ๋ก  ์ด๊ฒƒ์€ ๋™์–ด๋ฐ˜๋ณต์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค).
์ •์  ๋ฉ”์„œ๋“œ๋Š” ์žฌ์ •์˜๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํด๋ž˜์Šค์— ์†ํ•˜๊ณ  ์ƒ์†๋˜์ง€ ์•Š์ง€๋งŒ ๋™์‹œ์— ์˜ค๋ฒ„๋กœ๋“œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

43. ๋ฉ”์†Œ๋“œ๊ฐ€ ์ •์ ์ด๋ฉด์„œ ๋™์‹œ์— ์ถ”์ƒ์ ์ผ ์ˆ˜ ์žˆ๋‚˜์š”?

๋‚˜๋Š” ์ด์ „ ๊ธฐ์‚ฌ์—์„œ ์ด์— ๋Œ€ํ•ด ์ด๋ฏธ ๋‹ต๋ณ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”์†Œ๋“œ๋Š” ์ถ”์ƒ์ด๋ฉด์„œ ๋™์‹œ์— ์ •์ ์ผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ฉ”์„œ๋“œ๊ฐ€ ์ถ”์ƒ์ ์ธ ๊ฒฝ์šฐ ์ด๋Š” ํ•ด๋‹น ๋ฉ”์„œ๋“œ๊ฐ€ ํ•˜์œ„ ํด๋ž˜์Šค์—์„œ ์žฌ์ •์˜๋˜์–ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ •์  ๋ฉ”์„œ๋“œ๋Š” ํด๋ž˜์Šค์— ์†ํ•˜๋ฉฐ ์žฌ์ •์˜๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ชจ์ˆœ์„ ๋งŒ๋“ค์–ด๋‚ด๋ฉฐ, ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ด์— ๋Œ€ํ•ด ์•Œ์•„์ฐจ๋ฆฌ๊ณ  ํ™”๋ฅผ ๋ƒ…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์— ์ฒ˜ํ•˜๊ฒŒ ๋˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜์˜ ์ •ํ™•์„ฑ์— ๋Œ€ํ•ด ์ง„์ง€ํ•˜๊ฒŒ ์ƒ๊ฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(ํžŒํŠธ: ๋ถ„๋ช…ํžˆ ๋ญ”๊ฐ€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ). Java ๊ฐœ๋ฐœ์ž ์ง์œ„์— ๋Œ€ํ•œ ์ทจ์—… ๋ฉด์ ‘์˜ ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€์„ ์‚ดํŽด๋ณด์„ธ์š”.  ํŒŒํŠธ 5 - 2

44. ๋น„์ •์  ๋ฉ”์†Œ๋“œ ์ค‘๊ฐ„์— ์ •์  ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”? ๊ทธ ๋ฐ˜๋Œ€? ์™œ?

๋น„์ •์  ๋ฉ”์„œ๋“œ์—์„œ ์ •์  ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ฌด๊ฒƒ๋„ ๊ทธ๊ฒƒ์„ ๋ฐฉํ•ดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๊ทธ ๋ฐ˜๋Œ€๋Š” ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ •์  ๋ฉ”์„œ๋“œ๋Š” ํด๋ž˜์Šค์˜ ํŠน์ • ์ธ์Šคํ„ด์Šค๋ฅผ ์ฐธ์กฐํ•˜์ง€ ์•Š๊ณ ๋Š” ๋น„์ •์  ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํด๋ž˜์Šค์˜ ์ •์  ๋ฉค๋ฒ„๋Š” this ์ฐธ์กฐ ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์ ์„ ๊ธฐ์–ตํ•˜์„ธ์š” . ํด๋ž˜์Šค์˜ ๊ตฌ์ฒด์ ์ธ ๊ฐœ์ฒด๋Š” ์›ํ•˜๋Š” ๋งŒํผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ฐ ๊ฐœ์ฒด์—๋Š” ์ž์ฒด ์ฐธ์กฐ์ธ this ์ฐธ์กฐ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ค ์ฐธ์กฐ๋ฅผ ์‚ฌ์šฉํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡ ์ผ๊นŒ์š” ? ์–ด, ๊ทธ๋ ‡์ง€ ์•Š์•„์š”. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ •์  ์š”์†Œ๋Š” ํŠน์ • ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ ์—†์ด๋Š” ๋น„์ •์  ์š”์†Œ๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ •์  ๋ฉ”์„œ๋“œ๋Š” ํŠน์ • ๊ฐœ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ๋น„์ •์  ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฉ”์†Œ๋“œ ์ธ์ˆ˜๋กœ ๋“ค์–ด์˜จ ๊ฒƒ:
public static void petTheCat(Cat cat) {
   System.out.println("Pet the cat: " + cat.getName());
}
์—ฌ๊ธฐ์„œ๋Š” ์ •์  petTheCat() ๋ฉ”์„œ๋“œ ์—์„œ Cat ๊ฐœ์ฒด ์˜ ์ผ๋ฐ˜์ ์ธ ๋น„์ •์  ๋ฉ”์„œ๋“œ์ธ getName์„ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค .

45. ์ธํ„ฐํŽ˜์ด์Šค๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ตœ์ข… ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‚˜์š”?

Java์—๋Š” ๋‹ค์ค‘ ์ƒ์†์ด ์—†๋‹ค๋Š” ์ ์„ ๊ธฐ์–ตํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ด์— ๋Œ€ํ•œ ๋Œ€์•ˆ์ž…๋‹ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋งค์šฐ ๊ฐ„๋‹จํ•œ ํด๋ž˜์Šค์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ์„ ์ •์˜ํ•˜์ง€๋งŒ ๊ตฌ์ฒด์ ์ธ ๊ตฌํ˜„์€ ์•„๋‹™๋‹ˆ๋‹ค. ํ•ด๋‹น ์ž‘์—…์€ ์ด๋Ÿฌํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ํด๋ž˜์Šค์— ๋งก๊ฒจ์ง‘๋‹ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค์˜ ์˜ˆ:
public interface Animal {
    void speak();
}
ํด๋ž˜์Šค์— ์˜ํ•œ ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„์˜ ์˜ˆ
class Cat implements Animal {

   @Override
   public void speak() {
       System.out.println("Meow! Meow! Meow!");
   }
}
์ธํ„ฐํŽ˜์ด์Šค ์‚ฌ์šฉ์— ๋Œ€ํ•ด ์•Œ์•„์•ผ ํ•  ์ค‘์š”ํ•œ ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
  1. ์ธํ„ฐํŽ˜์ด์Šค ๋ฉ”์†Œ๋“œ์—๋Š” ํ—ค๋”๋งŒ ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŠน์ • ๋ฉ”์„œ๋“œ ๋ณธ๋ฌธ์ด ์žˆ์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ถ”์ƒ์ ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค( abstract ํ‚ค์›Œ๋“œ ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋”๋ผ๋„ ). ์˜ˆ์™ธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค: ๋ฉ”์„œ๋“œ ๋ณธ๋ฌธ์ด ํ•„์š”ํ•œ ์ •์  ๋ฉ”์„œ๋“œ์™€ ๊ธฐ๋ณธ ๋ฉ”์„œ๋“œ์ž…๋‹ˆ๋‹ค.

  2. ํด๋ž˜์Šค๋Š” ๋งŽ์€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•ž์„œ ๋งํ–ˆ๋“ฏ์ด ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋‹ค์ค‘ ์ƒ์†์˜ ๋Œ€์•ˆ์ž…๋‹ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค ์ด๋ฆ„์€ ๋ฉ”์†Œ๋“œ ํ—ค๋”์—์„œ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค. Lion ํด๋ž˜์Šค๋Š” Animal, Wild ๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค .

  3. ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ธํ„ฐํŽ˜์ด์Šค ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค .

  4. ํด๋ž˜์Šค๊ฐ€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ Implements ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  5. ํŠน์ • ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ํด๋ž˜์Šค๋Š” ๋ชจ๋“  ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๊ฑฐ๋‚˜ ์ž์‹ ์„ ์ถ”์ƒ์œผ๋กœ ์„ ์–ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  6. ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฃผ์š” ๋ชฉ์ ์€ ๋‹คํ˜•์„ฑ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(๊ฐ์ฒด์— ๋‹ค์–‘ํ•œ ํ˜•์‹์„ ์ทจํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ).

  7. ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ํ•œ์ •์ž๋Š” ์ธํ„ฐํŽ˜์ด์Šค์— ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ public ์ด๋ฉฐ public ์ด์™ธ์˜ ํ•œ์ •์ž๋Š” ์ง€์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค . Java 9๋ถ€ํ„ฐ ๋ฉ”์†Œ๋“œ์— ๊ฐœ์ธ ์ˆ˜์ •์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  8. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ธํ„ฐํŽ˜์ด์Šค ๋ณ€์ˆ˜๋Š” static final ์ž…๋‹ˆ๋‹ค . ์ฆ‰, ์ƒ์ˆ˜์ž…๋‹ˆ๋‹ค. ํ•ญ์ƒ ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ง์ ‘ ์ดˆ๊ธฐํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  9. ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ตœ์ข…์ ์ผ ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋Œ€๋‹ต์€ ๋ฌผ๋ก  '์•„๋‹ˆ์˜ค'์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐ–๋Š” ๋ชฉ์ ์€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ ๋ชจ๋‘๊ฐ€ ์ž˜ ๊ธฐ์–ตํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ํด๋ž˜์Šค ์ˆ˜์ค€์˜ ์ตœ์ข… ์ˆ˜์ •์ž๋Š” ํด๋ž˜์Šค๋ฅผ ์ƒ์†ํ•  ์ˆ˜ ์—†๊ฒŒ ๋งŒ๋“ค๊ณ  ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ฒฝ์šฐ ๊ตฌํ˜„์„ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ตฌํ˜„ํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์™œ ํ•„์š”ํ•œ๊ฐ€์š”? ๋‹น์‹  ๋ง์ด ๋งž์•„์š”. ์šฐ๋ฆฌ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์•„์š”! ๊ทธ๋ฆฌ๊ณ  ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. :) Java ๊ฐœ๋ฐœ์ž ์ง์œ„์— ๋Œ€ํ•œ ์ทจ์—… ๋ฉด์ ‘์˜ ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€์„ ์‚ดํŽด๋ณด์„ธ์š”.  ํŒŒํŠธ 5 - 3์‹ค์ œ๋กœ Java 8๋ถ€ํ„ฐ ์ •์  ์ธํ„ฐํŽ˜์ด์Šค ๋ฉ”์†Œ๋“œ๊ฐ€ ๋„์ž…๋˜๋ฉด์„œ ์ผ๋ฆฌ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ตœ์ข…์ผ ์ˆ˜ ์—†๋‹ค๋Š” ์‚ฌ์‹ค์€ ๋ฐ”๋€Œ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•ด ๋งค์šฐ ํ”ผ์ƒ์ ์œผ๋กœ๋งŒ ์ด์•ผ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ด๊ฒƒ์€ ๊ด‘๋ฒ”์œ„ํ•œ ์ฃผ์ œ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Java ์ธํ„ฐํŽ˜์ด์Šค ์— ๋Œ€ํ•œ ๊ธฐ์‚ฌ ์™€ ์ถ”์ƒ ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ฐจ์ด์ ์„ ์ฐธ์กฐํ•˜์„ธ์š” .

46. โ€‹โ€‹์ •์  ํ•„๋“œ๋Š” ์–ด๋””์—์„œ ์ดˆ๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

์ •์  ํ•„๋“œ๋ฅผ ์ดˆ๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์„ ์–ธ ์ฆ‰์‹œ ๋“ฑํ˜ธ( = )๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์ •์  ์ดˆ๊ธฐํ™” ๋ธ”๋ก์—์„œ;
  • ๋น„์ •์  ์ดˆ๊ธฐํ™” ๋ธ”๋ก์—์„œ(๊ทธ๋Ÿฌ๋‚˜ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ๋งˆ๋‹ค ์ด ์ดˆ๊ธฐํ™” ๋ธ”๋ก์ด ์‹คํ–‰๋  ๋•Œ ์ •์  ํ•„๋“œ๊ฐ€ ๋ฎ์–ด์“ฐ์—ฌ์ง„๋‹ค๋Š” ์ ์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ํด๋ž˜์Šค ์ƒ์„ฑ์ž์—์„œ. ์ƒ์„ฑ์ž๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ๋งˆ๋‹ค(์ฆ‰, ์ด ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ๋งˆ๋‹ค) ํ•„๋“œ๋ฅผ ๋ฎ์–ด์”๋‹ˆ๋‹ค.
  • ์ •์  ๋ฉ”์†Œ๋“œ์—์„œ;
  • ๋น„์ •์  ๋ฉ”์†Œ๋“œ์—์„œ;
  • ์ค‘์ฒฉ๋œ ์ •์  ๋ฐ ๋น„์ •์ , ๋กœ์ปฌ ๋ฐ ์ต๋ช… ํด๋ž˜์Šค์— ์žˆ์Šต๋‹ˆ๋‹ค.

47. ์ต๋ช… ํด๋ž˜์Šค๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์ต๋ช… ํด๋ž˜์Šค๋Š” ์ž์ฒด ์œ ํ˜•์ด ์—†๋Š” ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ฌด์Šจ ๋ง์„ํ•˜๋Š”๊ฑฐ์•ผ? ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•  ๋•Œ ๊ฐ์ฒด์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋งŒ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ํด๋ž˜์Šค๊ฐ€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š์ง€๋งŒ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฐ์ฒด๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์ด ๊ฐ์ฒด์˜ ์œ ์ผํ•œ ์šฉ๋„์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์™„์ „ํ•œ ๊ตฌํ˜„ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค ํ•„์š”๋„ ์—†์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์ข‹์•„์š”! ์ต๋ช… ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ! AnimalJava ๊ฐœ๋ฐœ์ž ์ง์œ„์— ๋Œ€ํ•œ ์ทจ์—… ๋ฉด์ ‘์˜ ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€์„ ์‚ดํŽด๋ณด์„ธ์š”.  ํŒŒํŠธ 5 - 4 ์ธํ„ฐํŽ˜์ด์Šค ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค .
public final interface Animal {
   public void speak();
}
์ฃผ์–ด์ง„ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ธ์Šคํ„ด์Šคํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ต๋ช… ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ:
Animal cat = new Animal() {
   @Override
   public void speak() {
       System.out.println("Meow! Meow! Meow!");
   }
};
๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด ๊ฐ์ฒด์™€ ๊ตฌํ˜„๋œ talk() ๋ฉ”์„œ๋“œ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ต๋ช… ํด๋ž˜์Šค๋Š” ์ง€๊ธˆ ๋ฐ”๋กœ ์—ฌ๊ธฐ์—์„œ ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋ชจ๋“  ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ตฌํ˜„๋˜์ง€ ์•Š์€/์ถ”์ƒ ๋ฉ”์†Œ๋“œ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์ธํ„ฐํŽ˜์ด์Šค/์ถ”์ƒ ํด๋ž˜์Šค ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์•ž์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์ต๋ช… ํด๋ž˜์Šค๋Š” ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ถ”์ƒ ํด๋ž˜์Šค์˜ ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ์—๋„ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ๊ฐ์ฒด๊ฐ€ ํ•œ ๋ฒˆ ์‚ฌ์šฉ๋˜๊ฑฐ๋‚˜ ์ง€์ •๋œ ๋ฉ”์„œ๋“œ ๊ตฌํ˜„์ด ํ•œ ๋ฒˆ๋งŒ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ์ถ”์ƒ ํด๋ž˜์Šค/์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ณ„๋„์˜ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ต๋ช… ํด๋ž˜์Šค๋Š” ์ง์žฅ์—์„œ ๊ฑฐ์˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์›์น™์ ์œผ๋กœ ์ผ๋ฐ˜ ์ˆ˜์—…์ด ์—ฌ์ „ํžˆ ์„ ํ˜ธ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ์‚ฌ์—์„œ ์ต๋ช… ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์„ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค .

48. ๊ธฐ๋ณธ ํด๋ž˜์Šค๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

Java์—๋Š” ๊ธฐ๋ณธ ํด๋ž˜์Šค์™€ ๊ฐ™์€ ๊ฒƒ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์€ ์˜คํ•ด์˜ ์†Œ์ง€๊ฐ€ ์žˆ๋Š” ์งˆ๋ฌธ, ์•„๋งˆ๋„ ์†์ž„์ˆ˜ ์งˆ๋ฌธ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์•ž์„œ ์‚ดํŽด๋ณธ ์›์‹œ ์œ ํ˜•์˜ ๊ฐœ๋…๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค. Java์—๋Š” byte , short , int , long , float , double , char , boolean ์˜ 8๊ฐ€์ง€ ๊ธฐ๋ณธ ์œ ํ˜•์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•˜์„ธ์š” .

49. ๋ž˜ํผ ํด๋ž˜์Šค๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

Java์—์„œ ๊ธฐ๋ณธ ์œ ํ˜•์„ ์‚ฌ์šฉํ•  ๋•Œ์˜ ์ฃผ์š” ๋ฌธ์ œ์ ์€ ํ•ด๋‹น ์œ ํ˜•์ด ํด๋ž˜์Šค๊ฐ€ ์•„๋‹ˆ๋ฉฐ Java๊ฐ€ OOP ์–ธ์–ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์ด ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ์€ ๊ฐœ์ฒด ๊ฐ„์˜ ์ƒํ˜ธ ์ž‘์šฉ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ๋Š” ๊ฐ์ฒด๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋ฉ”์†Œ๋“œ๊ฐ€ ์—†์œผ๋ฉฐ ์‹ฌ์ง€์–ด Object ํด๋ž˜์Šค์˜ ํ‘œ์ค€ ๋ฉ”์†Œ๋“œ๋„ ์—†์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Map ์—์„œ ๊ธฐ๋ณธ ์š”์†Œ๋ฅผ ํ‚ค๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ์š” ? ๊ทธ๋Ÿฐ ๋‹ค์Œ hashCode() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค . ๊ฑฐ๊ธฐ์—์„œ equals() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค . ๊ทธ๋Ÿผ ์–ด์ฉŒ์ง€? ๊ธฐ๋ณธ์ด ์•„๋‹Œ ์ˆ˜์—…์ด ํ•„์š”ํ•œ ์ˆœ๊ฐ„์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” OOP์˜ ๊ฐœ๋… ์ž์ฒด๋ฅผ ์œ„๋ฐ˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ธฐ๋ณธ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ณ  ๋ฐ”๋žŒ์งํ•˜์ง€ ์•Š์€ ์š”์†Œ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ƒํ™ฉ์€ ์ƒ๊ฐ๋ณด๋‹ค ๋‚˜์˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ Java์—๋Š” ์›์‹œ ๋ž˜ํผ(Primitive Wrapper)๋ผ๋Š” ๊ฐœ๋…์ด ์žˆ์Šต๋‹ˆ๋‹ค. Java์—์„œ๋Š” ๋ชจ๋“  ๊ธฐ๋ณธ ์œ ํ˜•์— ๋ž˜ํผ ํด๋ž˜์Šค๋ผ๋Š” ์Œ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฐ”์ดํŠธ -> Byte.class
  • ์งง์€ -> Short.class
  • int -> Integer.class
  • ๊ธด -> Long.class
  • ํ”Œ๋กœํŠธ -> Float.class
  • ๋”๋ธ” -> Double.class
  • ๋ฌธ์ž -> Character.class
  • ๋ถ€์šธ -> ๋ถ€์šธ.ํด๋ž˜์Šค
์ด๋Ÿฌํ•œ ์œ ํ˜•์€ ๋‹จ์ˆœํ•œ ์œ ํ˜•์„ ๋‚˜ํƒ€๋‚ด์ง€๋งŒ ๋‹ค์–‘ํ•˜๊ณ  ์œ ์šฉํ•œ ๋ฉ”์†Œ๋“œ๊ฐ€ ํฌํ•จ๋œ ๋ณธ๊ฒฉ์ ์ธ ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํด๋ž˜์Šค๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์˜คํ† ๋ฐ•์‹ฑ(autoboxing) ๋ฐ ์–ธ๋ฐ•์‹ฑ(unboxing) ๊ฐœ๋…์ด ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜คํ† ๋ฐ•์‹ฑ์€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๊ธฐ๋ณธ ์œ ํ˜•์„ ์œ ์‚ฌํ•œ ํด๋ž˜์Šค๋กœ ์ž๋™ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(์˜ˆ: int๋ฅผ Integer ๋กœ ๋ณ€ํ™˜ ). Unboxing ์€ ๋ฐ˜๋Œ€ ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋ž˜ํผ ํด๋ž˜์Šค๋ฅผ ๊ธฐ๋ณธ ์œ ํ˜•์œผ๋กœ ์ž๋™ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: Integer๋ฅผ int ๋กœ ๋ณ€ํ™˜ ). ๊ธฐ๋ณธ ๋ž˜ํผ ํด๋ž˜์Šค์™€ ์ž๋™๋ฐ•์‹ฑ ๋ฐ ์–ธ๋ฐ•์‹ฑ ํ”„๋กœ์„ธ์Šค์˜ ๋„์ž… ๋•๋ถ„์— ๊ธฐ๋ณธ ์œ ํ˜•์€ ์ด์ œ OOP ์–ธ์–ด๋กœ์„œ Java์˜ ๋ณธ๊ฒฉ์ ์ธ ๊ตฌ์„ฑ์›์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ฃผ์ œ์— ๋Œ€ํ•ด ์ข€ ๋” ์‹ฌ๋„ ์žˆ๊ฒŒ ๋…ผ์˜ํ•˜๋ ค๋ฉด ์ด ๊ธฐ์‚ฌ๋ฅผ Java ๊ฐœ๋ฐœ์ž ์ง์œ„์— ๋Œ€ํ•œ ์ทจ์—… ๋ฉด์ ‘์˜ ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€์„ ์‚ดํŽด๋ณด์„ธ์š”.  ํŒŒํŠธ 5 - 5 ์ฝ์–ด ๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค .

50. ์ค‘์ฒฉ ํด๋ž˜์Šค๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์–ด๋””์— ์‚ฌ์šฉ๋˜๋‚˜์š”?

์ค‘์ฒฉ ํด๋ž˜์Šค๋Š” ๊ทธ ์ž์ฒด๊ฐ€ ๋‹ค๋ฅธ ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„์ธ ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค. Java์—๋Š” ์ด๋Ÿฌํ•œ ์ค‘์ฒฉ ํด๋ž˜์Šค๊ฐ€ 4๊ฐ€์ง€ ์žˆ์Šต๋‹ˆ๋‹ค. 1. ๋‚ด๋ถ€ ํด๋ž˜์Šค ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ํด๋ž˜์Šค๋Š” ๋‹ค๋ฅธ ํด๋ž˜์Šค์˜ ๋ณธ๋ฌธ์—์„œ ์ง์ ‘ ์„ ์–ธ๋ฉ๋‹ˆ๋‹ค. ๋‚ด๋ถ€ ํด๋ž˜์Šค๋Š” ๋น„์ •์  ์ค‘์ฒฉ ํด๋ž˜์Šค์ด๋ฉฐ ์™ธ๋ถ€ ํด๋ž˜์Šค์˜ ๋ชจ๋“  ์ „์šฉ ํ•„๋“œ ๋˜๋Š” ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์–ผ๋ฃฉ๋ง์ด๋ผ๋Š” ๋™๋ฌผ์ด ์žˆ๋Š” ๋™๋ฌผ์›์„ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
public class Zoo {
   class Zebra {
       public void eat(String food) {
           System.out.println("Zebra eats " + food);
       }
   }
}
๋ณต์žกํ•˜์ง€ ์•Š์ฃ ? ๋‚ด๋ถ€ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์˜ˆ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
Zoo.Zebra zebra = new Zoo().new Zebra();
zebra.eat("apple");
์ด๋ฏธ ๋ณธ ๊ฒƒ์ฒ˜๋Ÿผ, ๋จผ์ € ์ธํด๋กœ์ง• ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ฐœ์ฒด ์ฐธ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ด๋ถ€ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‚ด๋ถ€ ํด๋ž˜์Šค(๋น„์ •์  ์ค‘์ฒฉ ํด๋ž˜์Šค)๋Š” ์ •์  ๋ฉ”์„œ๋“œ๋‚˜ ์ •์  ํ•„๋“œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค๋Š” ์ ์„ ์ง€์ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค . ์ด๋Š” ๋‚ด๋ถ€ ํด๋ž˜์Šค๊ฐ€ ์™ธ๋ถ€ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค์™€ ์•”์‹œ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ž์ฒด์ ์œผ๋กœ ์ •์  ๋ฉ”์„œ๋“œ๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. 2. ์ •์  ์ค‘์ฒฉ ํด๋ž˜์Šค ์ด ํด๋ž˜์Šค๋Š” ์ด์ „ ๋ฒ”์ฃผ์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ ํด๋ž˜์Šค ์„ ์–ธ์— static ์•ก์„ธ์Šค ์ˆ˜์ •์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ํด๋ž˜์Šค๋Š” ์™ธ๋ถ€ ํด๋ž˜์Šค์˜ ๋น„์ •์  ํ•„๋“œ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๋‚ด๋ถ€ ํด๋ž˜์Šค๋ณด๋‹ค๋Š” ์™ธ๋ถ€ ํด๋ž˜์Šค์˜ ์ •์  ๋ถ€๋ถ„์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ํด๋ž˜์Šค๋Š” ์™ธ๋ถ€ ํด๋ž˜์Šค์˜ ๋ชจ๋“  ์ •์  ๋ฉค๋ฒ„, ์‹ฌ์ง€์–ด ๋น„๊ณต๊ฐœ ๋ฉค๋ฒ„์—๋„ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •์  ์ค‘์ฒฉ ํด๋ž˜์Šค์˜ ์˜ˆ:
public class Zoo {
   static class Zebra {
       public void eat(String food) {
           System.out.println("Zebra eats " + food);
       }
   }
}
์ด์ „๊ณผ ์•ฝ๊ฐ„ ๋‹ค๋ฅด๊ฒŒ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
Zoo.Zebra zebra = new Zoo.Zebra();
zebra.eat("apple");
์—ฌ๊ธฐ์„œ๋Š” ์ •์  ์ค‘์ฒฉ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์™ธ๋ถ€ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™ธ๋ถ€ ํด๋ž˜์Šค ๋‚ด์—์„œ ์ด๋ฅผ ์ฐพ์œผ๋ ค๋ฉด ์ค‘์ฒฉ ํด๋ž˜์Šค์˜ ์ด๋ฆ„๋งŒ ์•Œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. 3. ๋กœ์ปฌ ํด๋ž˜์Šค ๋กœ์ปฌ ํด๋ž˜์Šค๋Š” ๋ฉ”์†Œ๋“œ ๋ณธ๋ฌธ ๋‚ด๋ถ€์— ์„ ์–ธ๋œ ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค. ๋กœ์ปฌ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋Š” ๋ฐ”๊นฅ์ชฝ ๋ฉ”์„œ๋“œ ๋‚ด์—์„œ๋งŒ ์ƒ์„ฑํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ:
public class Zoo {
   public void feed(String animal, String food) {
       switch(animal) {
           case "zebra":
               class Zebra {
                   public void eat(String food) {
                       System.out.println("Zebra eats " + food);
                   }
               }
               Zebra zebra = new Zebra();
               zebra.eat(food);
               ...
์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
Zoo zoo = new Zoo();
zoo.feed("zebra", "apple");
Feed() ๋ฉ”์†Œ๋“œ ์— ๋Œ€ํ•œ ์ฝ”๋“œ๋ฅผ ๋ณด์ง€ ๋ชปํ–ˆ๋‹ค ๋ฉด ๋กœ์ปฌ ํด๋ž˜์Šค๊ฐ€ ์กด์žฌํ•œ๋‹ค๊ณ  ์˜์‹ฌ์กฐ์ฐจ ํ•˜์ง€ ์•Š์•˜์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ๋กœ์ปฌ ํด๋ž˜์Šค๋Š” static ๋˜๋Š” temporary ๊ฐ€ ๋  ์ˆ˜ ์—†์ง€๋งŒ abstract ๋˜๋Š” final ๋กœ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (์ด ๋‘ ์ˆ˜์ •์ž๋ฅผ ๋™์‹œ์— ์‚ฌ์šฉํ•˜๋ฉด ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ๋‘˜ ๋‹ค๋Š” ์•„๋‹ˆ๊ณ  ๋‘˜ ๋‹ค๋Š” ์•„๋‹˜). 4. ์ต๋ช… ํด๋ž˜์Šค ์œ„์—์„œ ์ด๋ฏธ ์ต๋ช… ํด๋ž˜์Šค์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ–ˆ์œผ๋ฉฐ ๊ธฐ์–ตํ•˜๊ฒ ์ง€๋งŒ ์ต๋ช… ํด๋ž˜์Šค๋Š” ์ธํ„ฐํŽ˜์ด์Šค์™€ ํด๋ž˜์Šค๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ์†Œ์Šค์—์„œ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ ์ด์œ  ์ค‘์ฒฉ๋œ ์ •์  ๋ฐ ๋น„์ •์  ํด๋ž˜์Šค๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ์ด์œ ๋Š” ๋•Œ๋กœ๋Š” ๋” ์ผ๋ฐ˜์ ์ธ ํด๋ž˜์Šค์— ์ž‘์€ ํด๋ž˜์Šค๋ฅผ ํฌํ•จํ•˜๊ณ  ํ•จ๊ป˜ ์œ ์ง€ํ•˜์—ฌ ๋” ๋†’์€ ์‘์ง‘๋ ฅ๊ณผ ๊ณตํ†ต ๋ชฉ์ ์„ ๊ฐ–๋Š” ๊ฒƒ์ด ๋” ๋‚˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ค‘์ฒฉ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ ์บก์Šํ™”๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ž˜์Šค๊ฐ€ ๋‹จ์ผ ๋ฉ”์„œ๋“œ ๋‚ด์—์„œ๋งŒ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ ๋กœ์ปฌ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์ฒด์— ์ฝ”๋“œ๋ฅผ ๋ถ„์‚ฐ์‹œ์ผœ์•ผ ํ•ฉ๋‹ˆ๊นŒ? ์•„๋‹ˆ์š”. ๋‚ด ๊ฒฝํ—˜์ƒ ๋กœ์ปฌ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ์„ ๋ณธ ์ ์ด ์—†๋‹ค๊ณ  ๋ง๋ถ™์ด๊ฒ ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋กœ์ปฌ ํด๋ž˜์Šค๊ฐ€ ํ•„์š”ํ•œ์ง€ ์—ฌ๋ถ€๋Š” ๋งค์šฐ ๋…ผ๋ž€์˜ ์—ฌ์ง€๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค ๋˜๋Š” ์ถ”์ƒ ํด๋ž˜์Šค์˜ ํŠน์ • ๊ตฌํ˜„์ด ํ•œ ๋ฒˆ๋งŒ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ต๋ช… ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๊ตฌํ˜„์ด ํฌํ•จ๋œ ๋ณ„๋„์˜ ๋ณธ๊ฒฉ์ ์ธ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋Œ€์‹ , ์šฐ๋ฆฌ๋Š” ์ด๋ฅผ ๋‹จ์ˆœํ•˜๊ฒŒ ์œ ์ง€ํ•˜๊ณ  ์ต๋ช… ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•„์š”ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•œ ๋‹ค์Œ ์žŠ์–ด๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค(๋ฌผ๋ก  ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ๋Š” ์ด๋ฅผ ์žŠ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค). ์—ฌ๊ธฐ์— ์žˆ๋Š” ๊ธฐ์‚ฌ๋ฅผ ํ†ตํ•ด ์ค‘์ฒฉ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ–ฅ์ƒ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

51. ํด๋ž˜์Šค๋Š” ์–ด๋–ค ์ ‘๊ทผ ์ˆ˜์ •์ž๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‚˜์š”?

๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ํด๋ž˜์Šค๊ฐ€ ์žˆ์œผ๋ฉฐ ๋‹ค์–‘ํ•œ ์•ก์„ธ์Šค ํ•œ์ •์ž๊ฐ€ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ์™ธ๋ถ€ ํด๋ž˜์Šค์—๋Š” ๊ณต์šฉ ์•ก์„ธ์Šค ์ˆ˜์ •์ž๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ์ˆ˜์ •์ž๊ฐ€ ์ „ํ˜€ ์—†์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (๊ธฐ๋ณธ ์ˆ˜์ •์ž).
  • ๋‚ด๋ถ€ ํด๋ž˜์Šค (๋น„์ •์  ์ค‘์ฒฉ ํด๋ž˜์Šค)๋Š” 4๊ฐœ์˜ ์•ก์„ธ์Šค ํ•œ์ •์ž ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ค‘์ฒฉ๋œ ์ •์  ํด๋ž˜์Šค๋Š” protected๋ฅผ ์ œ์™ธํ•œ ์•ก์„ธ์Šค ํ•œ์ •์ž ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค . ์™œ๋ƒํ•˜๋ฉด ์ด ์ˆ˜์ •์ž๋Š” ํด๋ž˜์Šค์˜ ๋ชจ๋“  ์ •์  ๋ฉค๋ฒ„์™€ ๋ชจ์ˆœ๋˜๋Š” ์ƒ์†์„ ์˜๋ฏธํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค(์ •์  ๋ฉค๋ฒ„๋Š” ์ƒ์†๋˜์ง€ ์•Š์Œ).
  • ๋กœ์ปฌ ํด๋ž˜์Šค๋Š” ๊ธฐ๋ณธ ์ˆ˜์ •์ž๋งŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ฆ‰, ์ˆ˜์ •์ž๊ฐ€ ์ „ํ˜€ ์—†์Œ).
  • ์ต๋ช… ํด๋ž˜์Šค ์—๋Š” ํด๋ž˜์Šค ์„ ์–ธ์ด ์—†์œผ๋ฏ€๋กœ ์•ก์„ธ์Šค ํ•œ์ •์ž๊ฐ€ ์ „ํ˜€ ์—†์Šต๋‹ˆ๋‹ค.
์˜ค๋Š˜์€ ์—ฌ๊ธฐ์„œ ๋งˆ์น˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ณง ๋ด์š”!Java ๊ฐœ๋ฐœ์ž ์ง์œ„์— ๋Œ€ํ•œ ์ทจ์—… ๋ฉด์ ‘์˜ ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€์„ ์‚ดํŽด๋ณด์„ธ์š”.  ํŒŒํŠธ 5 - 6
๋” ์ฝ์–ด๋ณด์„ธ์š”:
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION