[Java] ๊ฐ์ฒด, ์ธ์Šคํ„ด์Šค, static ๋ณ€์ˆ˜ ๋ฐ ๋ฉ”์„œ๋“œ

2025. 7. 27. 23:41ยท๐Ÿ“ Study/Java

๊ฐ์ฒด / ์ธ์Šคํ„ด์Šค

ํด๋ž˜์Šค์— ์˜ํ•ด์„œ ๋งŒ๋“ค์–ด์ง„ ๊ฐ์ฒด๋ฅผ ์ธ์Šคํ„ด์Šค๋ผ๊ณ ๋„ ํ•œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๊ฐ์ฒด์™€ ์ธ์Šคํ„ด์Šค์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ผ๊นŒ? Animal cat = new Animal() ์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์ง„ cat์€ ๊ฐ์ฒด์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  cat์ด๋ผ๋Š” ๊ฐ์ฒด๋Š” Animal์˜ ์ธ์Šคํ„ด์Šค์ด๋‹ค. ์ธ์Šคํ„ด์Šค๋ผ๋Š” ๋ง์€ ํŠน์ • ๊ฐ์ฒด(์—ฌ๊ธฐ์„œ๋Š” cat)๊ฐ€ ์–ด๋–ค ํด๋ž˜์Šค(์—ฌ๊ธฐ์„œ๋Š” Animal)์˜ ๊ฐ์ฒด์ธ์ง€๋ฅผ ๊ด€๊ณ„ ์œ„์ฃผ๋กœ ์„ค๋ช…ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค. ์ฆ‰, ‘cat์€ ์ธ์Šคํ„ด์Šค’๋ณด๋‹ค๋Š” ‘cat์€ ๊ฐ์ฒด’๋ผ๋Š” ํ‘œํ˜„์ด, ‘cat์€ Animal์˜ ๊ฐ์ฒด’๋ณด๋‹ค๋Š” ‘cat์€ Animal์˜ ์ธ์Šคํ„ด์Šค’๋ผ๋Š” ํ‘œํ˜„์ด ํ›จ์”ฌ ์ž˜ ์–ด์šธ๋ฆฐ๋‹ค.

  • ๊ฐ์ฒด ๋ณ€์ˆ˜ = ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ = ๋ฉค๋ฒ„ ๋ณ€์ˆ˜ = ์†์„ฑ
  • static ๋ณ€์ˆ˜ = ํด๋ž˜์Šค ๋ณ€์ˆ˜
  • ๋ฉค๋ฒ„: ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์„ ์–ธ๋œ ๋ชจ๋“  ๊ตฌ์„ฑ์š”์†Œ. ๋ฉค๋ฒ„ ๋ณ€์ˆ˜, ๋ฉค๋ฒ„ ๋ฉ”์†Œ๋“œ
  • ๋ฉค๋ฒ„ํ•„๋“œ๋Š” ์ดˆ๊ธฐํ™”ํ•˜์ง€ ์•Š์œผ๋ฉด default value ํ• ๋‹น
  • ๊ฐ์ฒด๋Š” null์ด default.

 

์ต๋ช…(Anonymous) ๊ฐ์ฒด

๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋˜, ๊ทธ ์ฐธ์กฐ๊ฐ’(์ด๋ฆ„)์„ ๋ณ€์ˆ˜์— ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ์ฆ‰์‹œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด

public class C {
    int a;

    C() {
        System.out.println(a);  // a์˜ ์ดˆ๊ธฐ๊ฐ’ ์ถœ๋ ฅ (0)
    }

    public static void main(String[] args) {
        new C();  // ์ต๋ช… ๊ฐ์ฒด (์ฐธ์กฐ ๋ณ€์ˆ˜ ์—†์ด ์ƒ์„ฑ์ž๋งŒ ์‹คํ–‰)
    }
}

new C()๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜์ง€๋งŒ, ์ด ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ณ€์ˆ˜๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์Œ. ๊ทธ๋ƒฅ ์ƒ์„ฑ๋งŒ ํ•˜๊ณ , ์ƒ์„ฑ์ž ๋‚ด๋ถ€ System.out.println(a);๋งŒ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋‚˜๋ฉด ๊ฐ์ฒด๋Š” ๋ฒ„๋ ค์ง

 

static ๋ณ€์ˆ˜

  • ๋ชจ๋“  ๊ฐ์ฒด๊ฐ€ ๊ณต์œ ํ•˜๋Š” ๋ณ€์ˆ˜ (๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ํ•˜๋‚˜)

static ๋ฉ”์„œ๋“œ

  • ๊ฐ์ฒด ์—†์ด๋„ ํ˜ธ์ถœ ๊ฐ€๋Šฅ.
  • ๊ฐ์ฒด ์ƒํƒœ(this, ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ๋“ฑ) ์ ‘๊ทผ ๋ถˆ๊ฐ€โ—

 

public class C {
    int a;

    C() {
        System.out.println(a);  // a๋Š” ๊ธฐ๋ณธ๊ฐ’ 0
    }

    public static void main(String[] args) {
        C c = new C();  // ์ฐธ์กฐ ๋ณ€์ˆ˜ c์— ๊ฐ์ฒด๋ฅผ ์ €์žฅ
    }
}

static int ๋กœ ์ธํ•œ side effect ๋ฐฉ์ง€

'๐Ÿ“ Study > Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Java] ์˜ค๋ฒ„๋กœ๋”ฉ(Overloading)  (1) 2025.07.27
[Java] ์ƒ์„ฑ์ž, this, ์ดˆ๊ธฐํ™” ๋ธ”๋ก  (1) 2025.07.27
[Java] Call by Value  (1) 2025.07.27
[Java] String ๊ด€๋ จ ๋ฉ”์„œ๋“œ  (1) 2025.07.27
[Java] ์ปดํŒŒ์ผ ์—๋Ÿฌ vs ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ  (1) 2025.07.27
'๐Ÿ“ Study/Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Java] ์˜ค๋ฒ„๋กœ๋”ฉ(Overloading)
  • [Java] ์ƒ์„ฑ์ž, this, ์ดˆ๊ธฐํ™” ๋ธ”๋ก
  • [Java] Call by Value
  • [Java] String ๊ด€๋ จ ๋ฉ”์„œ๋“œ
0=2.
0=2.
  • 0=2.
    0=2
    0=2.
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (104)
      • ๐Ÿ“‚ Project (2)
        • Paint the City (2)
      • ๐Ÿ’ญ Problem Solving (42)
        • C++ (28)
        • Java (14)
      • ๐Ÿ“ Study (17)
        • React (1)
        • Java (16)
      • ๐Ÿ’ป CS (11)
        • ๋ฉด์ ‘์„ ์œ„ํ•œ CS ์ „๊ณต์ง€์‹ ๋…ธํŠธ (2)
        • ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ (9)
      • ๐Ÿƒ‍โ™€๏ธ Activities (32)
        • Web Front-End Basic Study (6)
        • 42 Cursus (26)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

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

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

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๋ธŒ๋ฃจํŠธํฌ์Šค
    makefile
    ๋ฐฑ์ค€
    ๋ฐฑํŠธ๋ž˜ํ‚น
    dynamic programming
    ํŠธ๋ฆฌ
    ๊ตฌํ˜„
    java
    react
    La Piscine
    ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ
    ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜
    CSS
    ๋งต
    ์‹œ๋ฎฌ๋ ˆ์ด์…˜
    unity
    .h
    ์ •๋ ฌ
    42๊ฒฝ์‚ฐ
    CS
    BFS
    knapsack
    C
    git
    HTML
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    swea
    github
    VR
    dfs
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
0=2.
[Java] ๊ฐ์ฒด, ์ธ์Šคํ„ด์Šค, static ๋ณ€์ˆ˜ ๋ฐ ๋ฉ”์„œ๋“œ
์ƒ๋‹จ์œผ๋กœ

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