Responsive Advertisement

Java Scope: ๋ณ€์ˆ˜์˜ ์œ ํšจ ๋ฒ”์œ„์™€ ํ™œ์šฉ ๊ฐ€์ด๋“œ

Java Scope๋ž€ ๋ณ€์ˆ˜๋‚˜ ๋ฉ”์„œ๋“œ๊ฐ€ ํ”„๋กœ๊ทธ๋žจ ๋‚ด์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ณ€์ˆ˜์˜ ์„ ์–ธ ์œ„์น˜์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋ฒ”์œ„๋ฅผ ๊ฐ€์ง€๋ฉฐ, ์ด๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€ ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ  ํšจ์œจ์ ์ธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Java์—์„œ ๋ณ€์ˆ˜์˜ ์Šค์ฝ”ํ”„๋ฅผ ์ข…๋ฅ˜๋ณ„๋กœ ์ •๋ฆฌํ•˜๊ณ , ํ™œ์šฉ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์Šค์ฝ”ํ”„์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

1. Java Scope๋ž€?

Java์—์„œ ๋ณ€์ˆ˜์˜ ์Šค์ฝ”ํ”„๋Š” ํ•ด๋‹น ๋ณ€์ˆ˜๊ฐ€ ์œ ํšจํ•œ ์ฝ”๋“œ ๋ธ”๋ก์˜ ๋ฒ”์œ„๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์Šค์ฝ”ํ”„๋Š” ์ฃผ๋กœ ๋ณ€์ˆ˜์˜ ์„ ์–ธ ์œ„์น˜์— ๋”ฐ๋ผ ๊ฒฐ์ •๋˜๋ฉฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์œ ํ˜•์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  • ํด๋ž˜์Šค ์Šค์ฝ”ํ”„(Class Scope)
  • ๋ฉ”์„œ๋“œ ์Šค์ฝ”ํ”„(Method Scope)
  • ๋ธ”๋ก ์Šค์ฝ”ํ”„(Block Scope)

2. ํด๋ž˜์Šค ์Šค์ฝ”ํ”„ (Class Scope)

ํด๋ž˜์Šค ์Šค์ฝ”ํ”„๋Š” ํด๋ž˜์Šค ๋ณ€์ˆ˜(๋ฉค๋ฒ„ ๋ณ€์ˆ˜)์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ํด๋ž˜์Šค ์ „์ฒด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ: ํด๋ž˜์Šค ์Šค์ฝ”ํ”„

public class ClassScopeExample {
    // ํด๋ž˜์Šค ์Šค์ฝ”ํ”„ ๋ณ€์ˆ˜
    private static int count = 0;

    public static void incrementCount() {
        count++;
        System.out.println("ํ˜„์žฌ ์นด์šดํŠธ: " + count);
    }

    public static void main(String[] args) {
        incrementCount(); // count = 1
        incrementCount(); // count = 2
    }
}

์ถœ๋ ฅ ๊ฒฐ๊ณผ:

ํ˜„์žฌ ์นด์šดํŠธ: 1  
ํ˜„์žฌ ์นด์šดํŠธ: 2  

์œ„ ์˜ˆ์ œ์—์„œ count๋Š” ํด๋ž˜์Šค ์ „์—ญ์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ํด๋ž˜์Šค ์Šค์ฝ”ํ”„ ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

3. ๋ฉ”์„œ๋“œ ์Šค์ฝ”ํ”„ (Method Scope)

๋ฉ”์„œ๋“œ ์Šค์ฝ”ํ”„๋Š” ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€์—์„œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณ€์ˆ˜๋Š” ํ•ด๋‹น ๋ฉ”์„œ๋“œ ๋‚ด์—์„œ๋งŒ ์œ ํšจํ•˜๋ฉฐ, ๋ฉ”์„œ๋“œ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์†Œ๋ฉธํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ: ๋ฉ”์„œ๋“œ ์Šค์ฝ”ํ”„

public class MethodScopeExample {
    public static void displayMessage() {
        // ๋ฉ”์„œ๋“œ ์Šค์ฝ”ํ”„ ๋ณ€์ˆ˜
        String message = "Hello, Java!";
        System.out.println(message);
    }

    public static void main(String[] args) {
        displayMessage();
        // System.out.println(message); // ์˜ค๋ฅ˜: message๋Š” ๋ฉ”์„œ๋“œ ์Šค์ฝ”ํ”„ ๋ณ€์ˆ˜
    }
}

์ถœ๋ ฅ ๊ฒฐ๊ณผ:

Hello, Java!  

๋ฉ”์„œ๋“œ ์Šค์ฝ”ํ”„ ๋ณ€์ˆ˜์ธ message๋Š” ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

4. ๋ธ”๋ก ์Šค์ฝ”ํ”„ (Block Scope)

๋ธ”๋ก ์Šค์ฝ”ํ”„๋Š” if, for, while ๋“ฑ์˜ ๋ธ”๋ก ๋‚ด๋ถ€์—์„œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ธ”๋ก ๋‚ด์—์„œ๋งŒ ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ธ”๋ก์„ ๋ฒ—์–ด๋‚˜๋ฉด ๋ณ€์ˆ˜๋Š” ์†Œ๋ฉธ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ: ๋ธ”๋ก ์Šค์ฝ”ํ”„

public class BlockScopeExample {
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            System.out.println("i์˜ ๊ฐ’: " + i);
        }
        // System.out.println(i); // ์˜ค๋ฅ˜: i๋Š” ๋ธ”๋ก ์Šค์ฝ”ํ”„ ๋ณ€์ˆ˜
    }
}

์ถœ๋ ฅ ๊ฒฐ๊ณผ:

i์˜ ๊ฐ’: 0  
i์˜ ๊ฐ’: 1  
i์˜ ๊ฐ’: 2  
i์˜ ๊ฐ’: 3  
i์˜ ๊ฐ’: 4  

์œ„ ์˜ˆ์ œ์—์„œ i๋Š” for ๋ธ”๋ก ๋‚ด์—์„œ๋งŒ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค.

5. ์Šค์ฝ”ํ”„ ํ™œ์šฉ ์˜ˆ์ œ

5.1 ๋ณ€์ˆ˜ ์ด๋ฆ„ ์ถฉ๋Œ ๋ฐฉ์ง€

์Šค์ฝ”ํ”„๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋™์ผํ•œ ์ด๋ฆ„์˜ ๋ณ€์ˆ˜๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฒ”์œ„์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

public class ScopeExample {
    private static int value = 100; // ํด๋ž˜์Šค ์Šค์ฝ”ํ”„

    public static void main(String[] args) {
        int value = 50; // ๋ฉ”์„œ๋“œ ์Šค์ฝ”ํ”„
        System.out.println("๋ฉ”์„œ๋“œ ์Šค์ฝ”ํ”„ value: " + value);
        System.out.println("ํด๋ž˜์Šค ์Šค์ฝ”ํ”„ value: " + ScopeExample.value);
    }
}

์ถœ๋ ฅ ๊ฒฐ๊ณผ:

๋ฉ”์„œ๋“œ ์Šค์ฝ”ํ”„ value: 50  
ํด๋ž˜์Šค ์Šค์ฝ”ํ”„ value: 100  

5.2 ์กฐ๊ฑด๋ฌธ์—์„œ ๋ธ”๋ก ์Šค์ฝ”ํ”„ ํ™œ์šฉ

public class ConditionScope {
    public static void main(String[] args) {
        int number = 10;

        if (number > 5) {
            String message = "number๋Š” 5๋ณด๋‹ค ํฝ๋‹ˆ๋‹ค.";
            System.out.println(message);
        }
        // System.out.println(message); // ์˜ค๋ฅ˜: message๋Š” ๋ธ”๋ก ์Šค์ฝ”ํ”„ ๋ณ€์ˆ˜
    }
}

์ถœ๋ ฅ ๊ฒฐ๊ณผ:

number๋Š” 5๋ณด๋‹ค ํฝ๋‹ˆ๋‹ค.

6. ์Šค์ฝ”ํ”„ ์‚ฌ์šฉ ์‹œ ์ฃผ์˜์‚ฌํ•ญ

  • ๋ณ€์ˆ˜ ์ด๋ฆ„ ์ค‘๋ณต: ๋™์ผํ•œ ์ด๋ฆ„์˜ ๋ณ€์ˆ˜๊ฐ€ ๋‹ค๋ฅธ ์Šค์ฝ”ํ”„์— ์กด์žฌํ•  ๊ฒฝ์šฐ, ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์Šค์ฝ”ํ”„์˜ ๋ณ€์ˆ˜๊ฐ€ ์šฐ์„ ๋ฉ๋‹ˆ๋‹ค.
  • ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”: ์Šค์ฝ”ํ”„ ๋‚ด์—์„œ ๋ณ€์ˆ˜๋Š” ๋ฐ˜๋“œ์‹œ ์ดˆ๊ธฐํ™”๋œ ํ›„์— ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์Šค์ฝ”ํ”„ ์ถ•์†Œ: ๋ณ€์ˆ˜์˜ ์œ ํšจ ๋ฒ”์œ„๋ฅผ ์ตœ์†Œํ™”ํ•˜์—ฌ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ์œ ์ง€ ๋ณด์ˆ˜์„ฑ์„ ๋†’์ด์„ธ์š”.

๊ฒฐ๋ก 

Java์—์„œ ๋ณ€์ˆ˜์˜ ์Šค์ฝ”ํ”„๋Š” ์ฝ”๋“œ์˜ ๊ตฌ์กฐ์™€ ์˜ค๋ฅ˜ ๋ฐฉ์ง€์— ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค, ๋ฉ”์„œ๋“œ, ๋ธ”๋ก ์Šค์ฝ”ํ”„๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ดํ•ดํ•˜๊ณ  ํ™œ์šฉํ•˜๋ฉด ๋ณด๋‹ค ์•ˆ์ •์ ์ด๊ณ  ํšจ์œจ์ ์ธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ ์†Œ๊ฐœํ•œ ๊ฐœ๋…๊ณผ ์˜ˆ์ œ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ Java ์Šค์ฝ”ํ”„๋ฅผ ์ ๊ทน ํ™œ์šฉํ•ด ๋ณด์„ธ์š”!

๋Œ“๊ธ€ ์“ฐ๊ธฐ