GiantStepDEV

์ค‘์ฒฉ ํด๋ž˜์Šค๋ž€?

  • ํ•˜๋‚˜์˜ ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์„ ์–ธ๋œ ๋˜ ๋‹ค๋ฅธ ํด๋ž˜์Šค๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
  • ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ์—ฌ๋Ÿฌ ํด๋ž˜์Šค์™€ ๊ด€๊ณ„๋ฅผ ๋งบ๋Š” ๊ฒฝ์šฐ ๋…๋ฆฝ์ ์œผ๋กœ ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•จ.
  • ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ, ํŠน์ • ํด๋ž˜์Šค์™€ ๊ด€๊ณ„๋ฅผ ๋งบ๋Š” ํด๋ž˜์Šค๋ฅผ ๋‚ด๋ถ€์— ์„ ์–ธํ•˜๊ธฐ๋„ ํ•จ.

์žฅ์ 

  • ํด๋ž˜์Šค๋ฅผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋ฌถ์–ด์„œ ํ‘œํ˜„ํ•จ์œผ๋กœ์จ ์ฝ”๋“œ์˜ ์บก์Аํ™” ์ฆ๊ฐ€
  • ์™ธ๋ถ€์—์„œ๋Š” ๋‚ด๋ถ€ ํด๋ž˜์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์ฝ”๋“œ์˜ ๋ณต์žก์„ฑ์„ ์ค„์ผ ์ˆ˜ ์žˆ์Œ
  • ๋‚ด๋ถ€ ํด๋ž˜์Šค์—์„œ ์™ธ๋ถ€ ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„๋ฅผ ์†์‰ฝ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ.

์™ธ๋ถ€ ํด๋ž˜์Šค

public class OutClass {
    private int num = 10; // ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜
    private static int sNum = 20; // ์ •์  ๋ณ€์ˆ˜ (ํด๋ž˜์Šค ์†Œ์†์˜ ๋ณ€์ˆ˜)
    InClass inClass;
    
    // ์™ธ๋ถ€ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์ƒ์„ฑ์ž ํ˜ธ์ถœ
    public OutClass() {
        inClass = new InClass();
    }
    
    class InClass {
        int inNum = 100;
        // static int sInNum = 200; <- JDK 11๋ฒ„์ „ ๊ธฐ์ค€์œผ๋กœ๋Š” ๋‚ด๋ถ€ ํด๋ž˜์Šค์— ์ •์ ๋ณ€์ˆ˜ ์„ ์–ธ ๋ถˆ๊ฐ€
        void inTest() {
            System.out.println("์™ธ๋ถ€ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ : " + num);
            System.out.println("์™ธ๋ถ€ ํด๋ž˜์Šค์˜ ์ •์  ๋ณ€์ˆ˜ : " + sNum);
        }
        // static void sTest() {} <- JDK 11๋ฒ„์ „ ๊ธฐ์ค€์œผ๋กœ๋Š” ๋‚ด๋ถ€ ํด๋ž˜์Šค์— ์ •์ ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉ ๋ถˆ๊ฐ€
    }
    public void usingClass() {
        inClass.inTest();
    }
}
์ธ์Šคํ„ด์Šค ๋‚ด๋ถ€ ํด๋ž˜์Šค๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ์™€ ๊ฐ™์€ ์œ„์น˜์— ์„ ์–ธํ•˜๋ฉฐ,
์™ธ๋ถ€ ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ๋งŒ ์ƒ์„ฑํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์„ ์–ธํ•  ๋•Œ ์‚ฌ์šฉ
  • ํด๋ž˜์Šค ๋‚ด์— ์—ฌ๋Ÿฌ ๋ณ€์ˆ˜๊ฐ€ ์žˆ๊ณ  ์ด๋“ค ์ค‘ ์ผ๋ถ€๋ฅผ ๋ชจ์•„ ํด๋ž˜์Šค๋กœ ํ‘œํ˜„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํด๋ž˜์Šค๋ฅผ ๋‹ค๋ฅธ ์™ธ๋ถ€ ํด๋ž˜์Šค์—์„œ ์‚ฌ์šฉํ•  ์ผ์ด ์—†๋Š” ๊ฒฝ์šฐ, ๋‚ด๋ถ€ ์ธ์Šคํ„ด์Šค ํด๋ž˜์Šค๋กœ ์ •์˜
  • ์™ธ๋ถ€ ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ์ธ์Šคํ„ด์Šค ๋‚ด๋ถ€ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ
  • ์ธ์Šคํ„ด์Šค ๋‚ด๋ถ€ ํด๋ž˜์Šค์—์„œ ์ •์  ๋ณ€์ˆ˜ ๋ฐ ์ •์  ๋ฉ”์†Œ๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Œ
    (JDK 16๋ถ€ํ„ฐ๋Š” ๊ฐ€๋Šฅ)

Main

public class Main {
    public static void main(String[] args) {
        OutClass outClass = new OutClass();
        outClass.usingClass(); // ์ •์ƒ์ ์œผ๋กœ ๋‚ด๋ถ€ ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
        outClass.inClass.inTest(); // ์ ‘๊ทผ์ œํ•œ์ž๋ฅผ private์—์„œ default๋กœ ๋ฐ”๊ฟ”์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•ด์ง.
    }
}

 

profile

GiantStepDEV

@kongmi

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!