[Java] ์ต๋ช… ํด๋ž˜์Šค(Anonymous Class)

2025. 5. 22. 18:38ยท๐Ÿ› ๏ธBackend/โ˜•Java
๋ชฉ์ฐจ
  1. โœ… 1. ์ต๋ช… ํด๋ž˜์Šค๋ž€?
  2. โœ… 1. ์ต๋ช… ํด๋ž˜์Šค ์‚ฌ์šฉ ๋ฐฉ๋ฒ•
  3. โœ… 2. ์ต๋ช… ํด๋ž˜์Šค ์‚ฌ์šฉ ์ด์œ 

โœ… 1. ์ต๋ช… ํด๋ž˜์Šค๋ž€?

  • "์ต๋ช…" + "ํด๋ž˜์Šค" ์ด๋ฆ„์ด ์—†๋Š” ํด๋ž˜์Šค๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
  • ์ผํšŒ์„ฑ์œผ๋กœ 1๊ฐœ์˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํด๋ž˜์Šค์ด๋ฉฐ, ์ต๋ช… ํด๋ž˜์Šค ์ •์˜์™€ ๋™์‹œ์— ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

โœ… 1. ์ต๋ช… ํด๋ž˜์Šค ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

// ๋ถ€๋ชจ ํด๋ž˜์Šค
class Animal {
    public void sound() {
        System.out.println("๋™๋ฌผ์†Œ๋ฆฌ");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal dog = new Animal() {
            @Override
            public void sound() {
                Systme.out.println("๊ฐ•์•„์ง€ ์†Œ๋ฆฌ");
            }
        };
        dog.bark();
    }
}
  • ์ต๋ช…ํด๋ž˜์Šค๋กœ ๋งŒ๋“ค๊ฒŒ ๋˜๋ฉด, ์ต๋ช…์˜ ์ž์‹ ํด๋ž˜์Šค๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ฒŒ ๋œ๋‹ค. ์ฆ‰, ์˜ค๋ฒ„๋ผ์ด๋”ฉ์„ ํ†ตํ•ด ์žฌ์ •์˜๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์„ํ•œ๋‹ค.
  • ๋งŒ์•ฝ ์žฌ์ •์˜๋ฅผ ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋„ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ด๋Š” ์ƒ์†๊ณผ ๊ฐ™์€ ๊ฐœ๋…์ด๋‹ค.
  • ๋‹จ, ์ต๋ช… ํด๋ž˜์Šค์— ์ƒ์œ„ํด๋ž˜์Šค ์ฆ‰, ํ˜„์žฌ ์ƒ์„ฑํ•˜๋Š” ํด๋ž˜์Šค์— ์—†๋Š” ๋ฉ”์„œ๋“œ๋‚˜ ํ•„๋“œ๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค ๊ฒฝ์šฐ์—๋Š” ์‚ฌ์šฉ์€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์ต๋ช… ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ๋งŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์™ธ๋ถ€์—์„œ๋Š” ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์ฆ‰, ์™ธ๋ถ€์—์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ๊ฑด ์›๋ž˜ ํด๋ž˜์Šค์˜ ์ •์˜๋œ ํ•„๋“œ๋‚˜ ๋ฉ”์„œ๋“œ์ด๋‹ค.

โœ… 2. ์ต๋ช… ํด๋ž˜์Šค ์‚ฌ์šฉ ์ด์œ 

  • ์ƒ์† ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ธํ„ฐํŽ˜์ด์Šค, ์ถ”์ƒ๋„ ๊ฐ€๋Šฅํ•ด์„œ ํด๋ž˜์Šค ์žฌ์‚ฌ์šฉ ์—†์ด ๋”ฑ ํ•œ ๋ฒˆ๋งŒ ๊ตฌํ˜„ํ•ด์„œ ์“ธ ๊ฑฐ๋ผ๋ฉด, ๋ณ„๋„์˜ ํด๋ž˜์Šค ์ €์œผ์ด ๋ง๊ณ  ์ต๋ช… ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ์ข‹์Œ.
  • ์ง€์—ญ ๋ณ€์ˆ˜์ฒ˜๋Ÿผ ์ต๋ช… ํด๋ž˜์Šค๋กœ ์ •์˜ํ•˜๊ณ  ์Šคํƒ์ด ๋๋‚˜๋ฉด ์‚ญ์ œ๋˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์–ด ๋ฉ”๋ชจ๋ฆฌ ์ ˆ์•ฝ ์ธก๋ฉด์—์„œ ์ด์ ์ด ์žˆ์Œ.
  • ์ƒ์†ํ•œ ํด๋ž˜์Šค์˜ ์ผ๋ถ€ ๋ฉ”์„œ๋“œ๋งŒ ๊ฐ„๋‹จํžˆ ์žฌ์ •์˜ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ, ๊ตณ์ด ์ƒˆ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๊ณ  ๊ทธ ์ž๋ฆฌ์—์„œ ์žฌ์ •์˜๋ฅผํ•จ.
  • ์ธํ„ฐํŽ˜์ด์Šค ์ฆ‰์„ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•ด์„œ ์Šค๋ ˆ๋“œ ๋“ฑ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ์ด ๋จ.

'๐Ÿ› ๏ธBackend > โ˜•Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Java] ์ž๋ฐ” ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋žŒ๋‹ค์‹(Lambda Expression) ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๊ธฐ  (1) 2025.05.23
[Java] ์ œ๋„ค๋ฆญ(Generic) ๋ฌธ๋ฒ• ์ •๋ฆฌ: ํด๋ž˜์Šค, ๋ฉ”์„œ๋“œ, ์ œํ•œ๊นŒ์ง€  (0) 2025.05.23
[Java] ๋‹คํ˜•์„ฑ(polymorphism)  (1) 2025.05.22
[Java] ์ถ”์ƒํ™” - ์ถ”์ƒํด๋ž˜์Šค, ์ถ”์ƒ๋ฉ”์„œ๋“œ, ์ธํ„ฐํŽ˜์ด์Šค  (0) 2025.05.20
[Java] Enum ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ  (1) 2025.05.05
  1. โœ… 1. ์ต๋ช… ํด๋ž˜์Šค๋ž€?
  2. โœ… 1. ์ต๋ช… ํด๋ž˜์Šค ์‚ฌ์šฉ ๋ฐฉ๋ฒ•
  3. โœ… 2. ์ต๋ช… ํด๋ž˜์Šค ์‚ฌ์šฉ ์ด์œ 
'๐Ÿ› ๏ธBackend/โ˜•Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Java] ์ž๋ฐ” ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋žŒ๋‹ค์‹(Lambda Expression) ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๊ธฐ
  • [Java] ์ œ๋„ค๋ฆญ(Generic) ๋ฌธ๋ฒ• ์ •๋ฆฌ: ํด๋ž˜์Šค, ๋ฉ”์„œ๋“œ, ์ œํ•œ๊นŒ์ง€
  • [Java] ๋‹คํ˜•์„ฑ(polymorphism)
  • [Java] ์ถ”์ƒํ™” - ์ถ”์ƒํด๋ž˜์Šค, ์ถ”์ƒ๋ฉ”์„œ๋“œ, ์ธํ„ฐํŽ˜์ด์Šค
junbin2
junbin2
java.lang.NullPointerException
  • junbin2
    bin's Development Diary
    junbin2
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ์ „์ฒด๋ณด๊ธฐ (155)
      • ๐ŸŽ“๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต (26)
        • ๐Ÿ–ฅ๏ธ์ปดํ“จํ„ฐ๊ณผํ•™๊ณผ (1)
        • ๐ŸŒ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ… (11)
        • โš™๏ธ์ปดํ“จํ„ฐ์˜ ์ดํ•ด (11)
        • ๐Ÿ›๏ธ์„ธ๊ณ„์˜์ •์น˜์™€๊ฒฝ์ œ (3)
      • ๐Ÿ› ๏ธBackend (52)
        • ๐Ÿ“š๋ฐฑ์—”๋“œ ๊ณต๋ถ€ (4)
        • โ˜•Java (21)
        • ๐ŸŒณSpring (11)
        • โšกPython (13)
        • JavaScript (1)
        • ๐Ÿ›ข๏ธDatabase (0)
        • Algorithm Problem Solving (2)
      • ๐ŸŒ Network (7)
        • ๐Ÿ“œHTTP (7)
      • ๐Ÿš€DevOps (1)
      • Data Structure (1)
      • โ›บ์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ (65)
      • ์ •๋ณด (1)
      • ์ •๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ธ€ (2)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • GitHub
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ…
    ๋ฐฉํ†ต๋Œ€
    ๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต
    ์ž…์ถœ๋ ฅ
    ์ปดํŒŒ์ผ๋Ÿฌ
    ์ปดํ“จํ„ฐ์˜ ์ดํ•ด
    spring
    Java
    ๋ฐฉ์†ก๋Œ€
    ํด๋ž˜์Šค
    ํŒŒ์ด์ฌ
    ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ…๊ฐœ๋ก 
    ์œ ๋น„์ฟผํ„ฐ์Šค
    Spring Framework
    ์ž๋ฐ”
    ํด๋ผ์šฐ๋“œ
    Python
    ์„ธ๊ณ„ํ™”
    ๋‹คํ˜•์„ฑ
    ์Šคํ”„๋ง
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.1
junbin2
[Java] ์ต๋ช… ํด๋ž˜์Šค(Anonymous Class)

๊ฐœ์ธ์ •๋ณด

  • ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ
  • ํฌ๋Ÿผ
  • ๋กœ๊ทธ์ธ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.