instanceof ์—ฐ์‚ฐ์ž ๐Ÿ’•

๋ฆฌ๋ฌด rimu ยท2023๋…„ 1์›” 1์ผ
0

Java

๋ชฉ๋ก ๋ณด๊ธฐ
16/35
post-thumbnail

instanceof ์—ฐ์‚ฐ์ž

  • ์ฐธ์กฐ๋ณ€์ˆ˜์˜ ํ˜•๋ณ€ํ™˜ ๊ฐ€๋Šฅ์—ฌ๋ถ€ ํ™•์ธ์— ์‚ฌ์šฉ (๊ฐ€๋Šฅํ•˜๋ฉด true ๋ฐ˜ํ™˜)
  • ์กฐ์ƒ,์ž์†๋ผ๋ฆฌ๋งŒ ํ˜•๋ณ€ํ™˜ ๊ฐ€๋Šฅ
  • ํ˜•๋ณ€ํ™˜ ์ „์— ๋ฐ˜๋“œ์‹œ instanceof๋กœ ํ™•์ธ!
  • ์ˆœ์„œ:
  1. ์—ฐ์‚ฐ์ž ํ™•์ธ(ํ˜•๋ณ€ํ™˜ ํ•ด๋„ ๋˜๋Š”์ง€ instanceof์—ฐ์‚ฐ์ž ์‚ฌ์šฉ)
  2. ํ˜•๋ณ€ํ™˜
void doWork(Car c) { //  new car(), new FireEngine() Car๋˜๋Š” ๋ชจ๋“  Car์˜ ์ž์† ๋“ค์–ด์˜ฌ ์ˆ˜ ์žˆ์Œ
	//1. ํ˜•๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธ, c๊ฐ€ ๊ฐ€๋ฅด์น˜๋Š” ๊ฐ์ฒด๊ฐ€ fireEngine์ด๋ƒ? ๋ผ๊ณ  ๋ฌผ์–ด๋ณด๋Š” ๊ฒƒ
	if(c instanceof FireEngine){ // 
   	FireEngine fe = (FireEngine)c; // 2. ํ˜•๋ณ€ํ™˜
       fe.water();
   }
}

ํ˜•๋ณ€ํ™˜์„ ํ•˜๋Š” ์ด์œ ๋Š” ์ธ์Šคํ„ด์Šค์˜ ์›๋ž˜ ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•˜๋ ค๊ณ !
Car์ฐจ์ž…์˜ ๋ฆฌ๋ชจ์ฝ˜์ธ c๋กœ๋Š” water()๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์—†์œผ๋‹ˆ๊นŒ
๋ฆฌ๋ชจ์ฝ˜์„ FireEngineํƒ€์ž…์œผ๋กœ ๋ฐ”๊ฟ”์„œ water() ํ˜ธ์ถœ

object <= Car <= FireEngine

System.out.println(fe instaceof Object); // true, fe๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” ๊ฐ์ฒด๊ฐ€ object๋ƒ? (์กฐ์ƒ)
System.out.println(fe instaceof Car); // true, ์ฐธ์กฐ๋ณ€์ˆ˜ fe๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š”๊ฒŒ Car๋ƒ? (์กฐ์ƒ)
System.out.println(fe instaceof FireEngine); // true

Object obj = (Object)fe; // ok , ์ตœ๊ณ  ์กฐ์ƒ์ด๋ผ instaceof ์‚ฌ์šฉ ์•ˆํ•ด๋„ ๋จ!
Car c = (Car)fe; // ok 

์กฐ์ƒ์ด๋ผ true๊ฐ€ ๋‚˜์˜ด! ์ฐธ์ด๋ฉด ํ˜•๋ณ€ํ™˜ ๊ฐ€๋Šฅ~

์ฐธ์กฐ๋ณ€์ˆ˜์˜ ํ˜•๋ณ€ํ™˜์„ ํ•˜๋Š” ์ด์œ 

์ฒจ์กฐ๋ณ€์ˆ˜(๋ฆฌ๋ชจ์ฝ˜)์„ ๋ณ€๊ฒฝํ•จ์œผ๋กœ์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉค๋ฒ„์˜ ๊ฐฏ์ˆ˜๋ฅผ ์กฐ์ ˆํ•˜๊ธฐ ์œ„ํ•ด์„œ

FireEngien f = new FireEngine();
Car c = (Car)f; // ok. ์กฐ์ƒ์ธ Carํƒ€์ž…์œผ๋กœ ํ˜•๋ณ€ํ™˜(์ƒ๋žต๊ฐ€๋Šฅ),
ํƒ€์ž…์ผ์น˜ ์‹œํ‚ค๋ ค๊ณ  ํ˜•๋ณ€ํ™˜ํ•˜๋Š”๊ฑฐ์ž„, ๊ฐ์ฒด ๊ทธ๋Œ€๋กœ, ์ฐธ์กฐ ๋ณ€์ˆ˜๊ฐ’ ๊ทธ๋Œ€๋กœ ํƒ€์ž…๋งŒ ๋ฐ”๋€œ

instanceof ์—ฐ์‚ฐ์ž๋Š” ์–ธ์ œ ์‚ฌ์šฉํ•˜๋‚˜?

์ฐธ์กฐ๋ณ€์ˆ˜๋ฅผ ํ˜•๋ณ€ํ™˜ํ•˜๊ธฐ ์ „์— ํ˜•๋ณ€ํ™˜ ๊ฐ€๋Šฅ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ๋•Œ ์‚ฌ์šฉ

์ž๋ฐ”์˜ ์ •์„์„ ์ฐธ๊ณ ํ•ด์„œ ํ•„๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค! ๐Ÿ‘

profile
JAVA / SQL / Spring ์„ ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿฅ

0๊ฐœ์˜ ๋Œ“๊ธ€