๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–ฅ๏ธ ๋ฐฑ์—”๋“œ/Java

[ch.9] Object, Objects ํด๋ž˜์Šค

by OR15A 2023. 11. 13.

Object ํด๋ž˜์Šค (java.lang ํŒจํ‚ค์ง€)

  • ๋ฉค๋ฒ„๋ณ€์ˆ˜ ์—†์Œ. ์˜ค์ง ๋ฉ”์„œ๋“œ 11๊ฐœ
  • equals( Object obj )
  • ๋‘ ๊ฐ์ฒด์˜ ์ฐธ์กฐ๋ณ€์ˆ˜๊ฐ’(์ฃผ์†Œ๊ฐ’)์œผ๋กœ ํŒ๋‹จํ•จ.
  • ๋ฉค๋ฒ„๋ณ€์ˆ˜ ๊ฐ’์œผ๋กœ ๋น„๊ตํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜๊ธฐ.
  • hashCode( )
  • ๊ฐ์ฒด์˜ ํ•ด์‹œ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์คŒ(๊ณ ์œ ๊ฐ’).
  • equals ์˜ค๋ฒ„๋ผ์ด๋”ฉ ์‹œ ๊ฐ™์ด ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•ด์ฃผ๊ธฐ.
  • toString( )
  • ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ฌธ์ž์—ด๋กœ ์ œ๊ณตํ•จ.
  • ์›๋ž˜ ์ •์˜ ํด๋ž˜์Šค์ด๋ฆ„+@+ํ•ด์‰ฌ์ฝ”๋“œ16์ง„์ˆ˜
  • clone( )
  • ์ž์‹ ์„ ๋ณต์ œํ•˜์—ฌ ์ƒˆ๋กœ์šด ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•จ.
  • ์กฐ๊ฑด
    • โ‘ ๋ณต์ œํ•  ํด๋ž˜์Šค๊ฐ€ Cloneable์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•ด์•ผํ•˜๊ณ , clone( ) ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜๋ฉด์„œ, ์ ‘๊ทผ์ œ์–ด์ž๋ฅผ protected์—์„œ public์œผ๋กœ ๋ณ€๊ฒฝํ•ด์•ผํ•จ.
    • โ‘ก์กฐ์ƒํด๋ž˜์Šค์˜ clone( )๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋œ try-catch๋ฌธ์„ ์ž‘์„ฑํ•จ.
    • ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ํ•„์ˆ˜. CloneNotSupportedException
    • ์ด๊ฒƒ์€ ์–•์€ ๋ณต์‚ฌ์ด๋‹ค.
  • ์–•์€ ๋ณต์‚ฌ
    • ๋‹จ์ˆœํžˆ ๊ฐ์ฒด์— ์ €์žฅ๋œ ๊ฐ’๋งŒ ๋ณต์‚ฌํ•จ. ์›๋ณธ๊ณผ ๋ณต์ œ๋ณธ์ด ๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ๊ณต์œ ํ•จ.
    • ํ•œ์ชฝ ๋ณ€๊ฒฝ ์‹œ ๋‹ค๋ฅธ ์ชฝ์—๋„ ์˜ํ–ฅ์ด ์žˆ์Œ.
    • ์ฝ๊ธฐ ์šฉ๋„์—์„œ ์‚ฌ์šฉ.
    • ๋ณต์‚ฌ๊ฐ€ ๋น ๋ฆ„.
  • ๊นŠ์€ ๋ณต์‚ฌ
    • ์›๋ณธ์ด ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ๊ฐ์ฒด๊นŒ์ง€ ๋ณต์ œํ•˜๋Š” ๊ฒƒ.
    • ์›๋ณธ๊ณผ ๋ณต์ œ๋ณธ์ด ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•จ.
    • ํ•œ์ชฝ์„ ๋ณ€๊ฒฝํ•ด๋„ ๋‹ค๋ฅธ์ชฝ์— ์˜ํ–ฅ์ด ์—†์Œ.
    • ๋ณต์‚ฌ๊ฐ€ ๋ณต์žกํ•˜๊ณ  ๋ถ€๋‹ด.
    • ์˜ค๋ž˜ ๊ฑธ๋ฆผ.
    • ํ•จ์ˆ˜ํ˜•์—์„œ ์‚ฌ์šฉ.
  • ๊ณต๋ณ€๋ฐ˜ํ™˜ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๋ฉด ์‹ค์ œ ๋ฐ˜ํ™˜๋˜๋Š” ์ž์† ๊ฐ์ฒด์˜ ํƒ€์ž…์œผ๋กœ ๋ฐ˜ํ™˜์ด ๊ฐ€๋Šฅํ•จ. ์ž๋ฐ”์˜์ •์„ p.458
  • getClass( )
  • ์ž์‹ ์ด ์†ํ•œ ํด๋ž˜์Šค์˜ Class๊ฐ์ฒด ๋ฐ˜ํ™˜.
  • Class๊ฐ์ฒด์—๋Š” ํด๋ž˜์Šค์˜ ๋ชจ๋“  ์ •๋ณด๊ฐ€ ์žˆ์Œ.
  • ํด๋ž˜์Šค๊ฐ์ฒด=ํด๋ž˜์ŠคํŒŒ์ผ์„ ์ฝ์–ด์„œ ์‚ฌ์šฉํ•˜๊ธฐ ํŽธํ•œ ํ˜•ํƒœ๋กœ ์ €์žฅํ•ด ๋†“์€ ๊ฒƒ.
  • ํŒŒ์ผํ˜•ํƒœ๋กœ ์ €์žฅ๋œ ํด๋ž˜์Šค๋ฅผ โ€˜ํด๋ž˜์Šค๋กœ๋”โ€™๊ฐ€ ์ฝ์–ด์„œ Classํด๋ž˜์Šค์— ์ •์˜๋œ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ.
  • ํด๋ž˜์Šค๋‹น 1๊ฐœ๋งŒ ์กด์žฌํ•จ. MethodArea์— ์˜ฌ๋ผ๊ฐ.

java.lang ํŒจํ‚ค์ง€

  • ์ž๋ฐ”ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” ํด๋ž˜์Šค๋ฅผ ํฌํ•จ.
  • import๋ฌธ ์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•จ.


Objects ํด๋ž˜์Šค (java.util ํŒจํ‚ค์ง€)

  • Objectํด๋ž˜์Šค์˜ ๋ณด์กฐํด๋ž˜์Šค.
  • ๋ชจ๋“  ๋ฉ”์„œ๋“œ๊ฐ€ static.
  • ๊ฐ์ฒด์˜ ๋น„๊ต, ๋„ ์ฒดํฌ์— ์œ ์šฉํ•จ.๋„ ์ฒดํฌ (๋…ผ๋ฆฌ์  ๋น„๊ต 2๊ฐœ, ์˜ˆ์™ธ ๊ด€๋ จ)
  • isNull( )
    • Null์ด๋ฉด true, ์•„๋‹ˆ๋ฉด false
  • nonNull( )
    • Null์ด ์•„๋‹ˆ๋ฉด true, Null์ด๋ฉด false
  • requireNonNull( )
    • ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ค‘์š”ํ•œ ๊ฐ์ฒด๊ฐ€ null์ธ ๊ฒฝ์šฐ ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ณ  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์คŒ.
    • Null์ด๋ฉด NullPointErexception ๋ฐœ์ƒ์‹œํ‚ด.
    • ๋‘ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ง€์ •ํ•˜๋Š” ๋ฌธ์ž์—ด์€ ์˜ˆ์™ธ ๋ฉ”์‹œ์ง€.
    • ๋ณต์žกํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์œ ํšจ์„ฑ๊ฒ€์‚ฌ๋ฅผ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ๋งŒ์œผ๋กœ ๊ฐ„๋‹จํžˆ ๋๋‚ผ ์ˆ˜ ์žˆ์Œ.equals(a,b)
  • ๋น„์Šทํ•œ ๋ฉ”์„œ๋“œ ๋˜ ์ •์˜ํ•œ ์ด์œ . ์ด ๋ฉ”์„œ๋“œ๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ null๊ฒ€์‚ฌ๋ฅผ ํ•ด์คŒ. ๊ทธ๋Ÿฌ๋‚˜ a,b๋‘˜๋‹ค ๋„์ด๋ฉด true.compare(a,b,c,)
  • ๋Œ€์†Œ๋น„๊ต ๊ฐ€๋Šฅ. ๊ฐ™์œผ๋ฉด 0. ์•ž์ด ํฌ๋ฉด 1. ์ž‘์œผ๋ฉด โ€“1.deepEquals(a,b)
  • ๋‹ค์ฐจ์› ๋ฐฐ์—ด ๋น„๊ต ๊ฐ€๋Šฅํ•จ.toString(str,de)
  • ๋‚ด๋ถ€์ ์œผ๋กœ ๋„๊ฒ€์‚ฌ.๋„์ผ๋•Œ ๋Œ€์‹  ์‚ฌ์šฉํ• ๊ฐ’ ์ง€์ •๊ฐ€๋Šฅ.hashcode( ), hash(๊ฐ€๋ณ€์ธ์ž)
  • ๋‚ด๋ถ€์ ์œผ๋กœ ๋„ ๊ฒ€์‚ฌ. hash( )๋Š” ํ•ด์‹ฑ์— ์‚ฌ์šฉํ•จ.