ch12 : Object

๋ชฉ์ฐจ

Object

  • ๋ชจ๋“  ํด๋ž˜์Šค๋Š” Object ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›๋Š”๋‹ค.

  • ์ฆ‰, ๋ชจ๋“  ํด๋ž˜์Šค๋Š” Object ํด๋ ˆ์Šค์— ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋“ค์„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•จ (toString, equals, hashCode ๋“ฑ)

  • ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋Š” toString, equals, hashCode์ด๊ณ , ํ•„์š”์‹œ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.

์ฐธ๊ณ ๋กœ ์ž๋ฐ”๋Š” ๋‹ค์ค‘ ์ƒ์†์„ ๋ฐ›์„ ์ˆ˜๋Š” ์—†์ง€๋งŒ, ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๋กœ ์ƒ์† ๋ฐ›์„ ์ˆ˜๋Š” ์žˆ๋‹ค. (์˜ˆ์‹œ. Obect โ†’ Parent โ†’ Child)

toString

  • ์–ด๋–ค ๊ฐ์ฒด์ธ์ง€ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

  • toString()์ด ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š” ๊ฒฝ์šฐ

    1. System.out.println()

    2. ๊ฐ์ฒด(String์„ ์ œ์™ธ)์— ๋”ํ•˜๊ธฐ ์—ฐ์‚ฐํ•˜๋Š” ๊ฒฝ์šฐ

  • toString() ๋‚ด๋ถ€

    System.out.println(obj); // ์ž๋™ obj.toString() ํ˜ธ์ถœ!
    System.out.println(obj.toString());
    
    // ๊ธฐ๋ณธ toString() ๋‚ด๋ถ€
    getClass().getName() + '@' + Integer.toHexString(hashcode());
    // ์ถœ๋ ฅ
    // ํŒจํ‚ค์ง€,ํด๋ž˜์Šค๋ช… + '@' + ๊ฐ์ฒด์˜ ํ•ด์‹œ์ฝ”๋“œ
  • ์˜ค๋ฒ„๋ผ์ด๋”ฉ

    • DTO ํด๋ž˜์Šค์—์„œ ๋‚ด๋ถ€ ํ•„๋“œ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ, ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜์—ฌ ์‚ฌ์šฉํ•  ๊ฒƒ โ†’ IDE ํ™œ์šฉํ•ด์„œ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜๋ฉด ๊ฐ„๋‹จ!

    public clas DTO {
    	// ์˜ค๋ฒ„๋ผ์ด๋”ฉ
    	public String toString() {
    			return "name = " + name + "phone" + phone;
    	}
    }

equals

  • ์ฐธ์กฐ์ž๋ฃŒํ˜•์˜ ๊ฐ’๋น„๊ต

    • == : ์ฃผ์†Œ๊ฐ’์„ ๋น„๊ตํ•จ.

    • equals() : ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•ด์„œ ๊ฐ์ฒด์˜ ๊ฐ’ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์Œ.

      ์˜ค๋ฒ„๋ผ์ด๋”ฉ ์•ˆํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ hashCode()๊ฐ’(๊ฐ์ฒด์˜ ์ฃผ์†Œ๊ฐ’)์„ ๋น„๊ตํ•˜๊ธฐ์—, ๋‘ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ณ€์ˆ˜๊ฐ€ ๊ฐ™์•„๋„ ๋‹ค๋ฅด๋‹ค๊ณ  ๋‚˜์˜ด!

๋‹จ, equals() ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•  ๋•Œ, hashCode()๋„ ๊ฐ™์ด ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•ด์ค˜์•ผํ•œ๋‹ค.

hashCode

  • ๊ฐ์ฒด์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. (16์ง„์ˆ˜)

equals(), hashCode() ์˜ค๋ฒ„๋ผ์ด๋”ฉ์€ ํˆด์˜ ์ž๋™์™„์„ฑ์„ ์ด์šฉํ•  ๊ฒƒ!

Last updated