Java

[Java] Private๊ณผ Static์ด ๊ณต์กดํ•  ์ˆ˜ ์žˆ๋‹ค!?

God Korea 2022. 7. 9. 03:32
728x90

๐Ÿ˜ ๋‚˜๋งŒ ๋ณผ ๊ฑฐ์•ผ, 'Private'

 ์ž๋ฐ”์—๋Š” ์—ฌ๋Ÿฌ ์ ‘๊ทผ์ œ์–ด์ž๊ฐ€ ์žˆ๋‹ค.

  • Public
  • Default
  • Protected
  • Private

 ์ œ์–ด ๋ฒ”์œ„๋Š” ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

์ง€์‹œ์ž ํด๋ž˜์Šค ๋‚ด๋ถ€ ๋™์ผ ํŒจํ‚ค์ง€ ์ƒ์†๋ฐ›์€ ํด๋ž˜์Šค ์ด์™ธ์˜ ์˜์—ญ
private O X X X
default O O X X
protected O O O X
public O O O O

์ž, ์ž ์‹œ ๋‹ค๋ฅธ ์ด์•ผ๊ธฐ๋กœ ๋„˜์–ด๊ฐ€์„œ

๐Ÿ™†‍โ™‚๏ธ ๋‹ค ๊ฐ™์ด ์“ฐ์ž! 'Static'

 ์ž๋ฐ”์—๋Š” static์ด๋ผ๋Š” ์ œ์–ด์ž๊ฐ€ ์žˆ๋‹ค. ์š”๊ฑด static(์ •์ )ํ•œ ๋ฉ”๋ชจ๋ฆฌ์— ๋ณ€์ˆ˜ or ๋ฉ”์„œ๋“œ๋ฅผ ์ €์žฅํ•ด ๋‘˜ ํ…Œ๋‹ˆ ๋ชจ๋‘ ๊ณต์œ ํ•˜์ž! ๋ผ๋Š” ์†Œ๋ฆฌ๋‹ค. ๋‹จ, static์€ ์ž์‹ ๋งŒ์˜ ์˜์—ญ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— static๋ผ๋ฆฌ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

class whatIsStatic {
    public static int num;

    public static void getNum() {
        num = 1;
        System.out.println(num);
    }

    public static void getNum2() {
        num += 2;
        System.out.println(num);
    }

    public static void main(String[] args) {
        getNum(); // 1 ์ถœ๋ ฅ
        getNum2(); // 3 ์ถœ๋ ฅ
        
        // getNum2(); ์ด๋Ÿฐ ์ˆœ์„œ๋กœ ํ˜ธ์ถœํ•˜๋ฉด 2๊ฐ€ ๋จผ์ € ์ถœ๋ ฅ๋˜๊ณ 
        // getNum(); ์—ฌ๊ธฐ์„œ๋Š” 1์ด ์ถœ๋ ฅ๋œ๋‹ค.
        // ์ฆ‰, ์ตœ์ข…์ ์œผ๋กœ num์ด๋ผ๋Š” ๋ณ€์ˆ˜๋Š” 1์˜ ๊ฐ’์„ ๊ฐ–๊ฒŒ ๋œ๋‹ค.
    }
}

 ์œ„์™€ ๊ฐ™์ด ์„œ๋กœ ๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ์—์„œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๊ฐ€ ๊ฐ™์€ ์ธ์Šคํ„ด์Šค๋กœ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ํŒŒ์ด์ฌ์—์„œ๋Š” global ๋ณ€์ˆ˜์™€ ๋น„์Šทํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.

๐Ÿ™„ ๊ทธ๋ž˜์„œ private๊ณผ static์ด ์–ด์จŒ๋Š”๋ฐ?

 ๋‚˜๋งŒ ๋ณด๋ ค๋Š” private๊ณผ ๊ณต์œ ํ•˜์ž๋Š” static์ด ๋งŒ๋‚ฌ์„ ๋•Œ, ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒƒ ๊ฐ™์ง€๋งŒ ๊ทธ๋ ‡์ง€ ์•Š๋‹ค. (์‚ฌ์‹ค ๋‚ด๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ์ƒ๊ฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๊ธ€์„ ์ ๋Š”๊ฑฐ๋‹ค.๐Ÿคฃ)

 ์ด ๋‘˜์€ ์‚ฌ์ž์™€ ํ˜ธ๋ž‘์ด๋ฅผ ์ƒ๊ฐํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค. ๋‘˜์€ ์—„์—ฐํžˆ ๋‹ค๋ฅธ ํ™˜๊ฒฝ์—์„œ ์ƒํ™œํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ ˆ๋Œ€ ๋งŒ๋‚  ์ผ์ด ์—†๋‹ค. ์ด ๋‘˜๋„ ๋˜‘๊ฐ™๋‹ค. ์ž‘๋™ํ•˜๋Š” ๋ฐฉํ–ฅ์„ฑ์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋กœ์—๊ฒŒ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค.

 private์€ ๋‹จ์ˆœํžˆ ์™ธ๋ถ€ ํด๋ž˜์Šค๋‚˜ ํŒจํ‚ค์ง€ ๋“ฑ์—์„œ ์ ‘๊ทผํ•˜๋ ค๊ณ  ํ•  ๋•Œ, ํ•ด๋‹น ๋ณ€์ˆ˜์— ํ•จ๋ถ€๋กœ ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•˜๋Š” ์ œ์–ด์ž๊ณ ,
 static์€ ๋ณ€์ˆ˜๋ฅผ static ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ๋‘๊ณ , ์™ธ๋ถ€ ํด๋ž˜์Šค๋‚˜ ํŒจํ‚ค์ง€ ๋“ฑ์—์„œ ์ ‘๊ทผ์ œ์–ด์ž์˜ ๊ทœ์น™์„ ์ง€์ผœ ์ •์ƒ์ ์œผ๋กœ ํ˜ธ์ถœํ–ˆ์„ ๋•Œ, ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ฐ’์„ ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ ํ˜ธ์ถœ ํ›„ ๊ฐ’์— ๋ณ€ํ™”๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด, 1์ด 3์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ์œ„ ์˜ˆ์‹œ์ฒ˜๋Ÿผ ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜์—์„œ ๊ฐ’์„ ๋ณ€ํ™”์‹œํ‚จ๋‹ค.

๊ทธ๋Ÿฌ๋‹ˆ๊นŒ private static ์–ด์ฉŒ๊ณ  ์ €์ฉŒ๊ณ ๋ฅผ ์–ด์ƒ‰ํ•ดํ•˜์ง€ ๋ง์ž~! (๊ทผ๋ฐ ์ž์ฃผ ์“ฐ์ง€๋Š” ์•Š์Œใ…‹ใ…‹)

 

728x90