๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ชฉ๋ก์ด ์—†์Šต๋‹ˆ๋‹ค.

[JAVA] ์˜ค๋ฒ„๋ผ์ด๋”ฉ ๋ฐ ํŒจํ‚ค์ง€ ๊ฐœ๋… ์ •๋ฆฌ

๐Ÿ—ฃ Language/JAVA

    ์˜ค๋ฒ„๋ผ์ด๋”ฉ


    ์ €๋ฒˆ์— ๋†“์นœ ์กฐ๊ฑด์œผ๋กœ๋Š” ์กฐ์ƒ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋ณด๋‹ค ๋งŽ์€ ์ˆ˜์˜ ์˜ˆ์™ธ๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์ .


    ์˜ˆ๋ฅผ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค.


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Class Parent {
        void parentMethod() throws IOException, SQLException {
     
        }
    }
     
    Class Child extends Parent {
        void parentMethod() throws IOException {
     
        }
    }
    cs

    - ์˜ฌ๋ฐ”๋ฅธ ์˜ค๋ฒ„๋ผ์ด๋”ฉ



    ์—ฌ๊ธฐ์„œ ๋ฌธ์ œ๋Š” ๋‹จ์ˆœํžˆ ์„ ์–ธ๋œ ์˜ˆ์™ธ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ์ ์ด๋‹ค.


    1
    2
    3
    4
    5
    Class Child extends Parent {
        void parentMethod() throws Exception {
     
        }
    }
    cs


    ์œ„์™€ ๊ฐ™์ด ์˜ค๋ฒ„๋ผ์ด๋”ฉ์„ ํ•˜๋ฉด Exception์€ ๋ชจ๋“  ์˜ˆ์™ธ์˜ ์กฐ์ƒ์œผ๋กœ ๊ฐ€์žฅ ๋งŽ์€ ์˜ˆ์™ธ๋ฅผ ์„ ์–ธํ•œ ๊ฒƒ์ด๋‹ค. ์ž˜๋ชป๋œ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์ด๋‹ค.


    ์กฐ์ƒ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ž์† ํด๋ž˜์Šค์—์„œ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•  ๋•Œ


    1. ์ ‘๊ทผ ์ œ์–ด์ž๋ฅผ ์กฐ์ƒ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋ณด๋‹ค ์ข์€ ๋ฒ”์œ„๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.

    2. ์˜ˆ์™ธ๋Š” ์กฐ์ƒ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋ณด๋‹ค ๋งŽ์ด ์„ ์–ธํ•  ์ˆ˜ ์—†๋‹ค.

    3. ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ๋ฅผ static ๋ฉ”์„œ๋“œ๋กœ ๋˜๋Š” ๊ทธ ๋ฐ˜๋Œ€๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.



    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class Parent {
        void parentMethod() {}
    }
     
    class Child extends Parent {
        void parentMethod() {}    // ์˜ค๋ฒ„๋ผ์ด๋”ฉ
        void parentMethod(int i) {}    // ์˜ค๋ฒ„๋กœ๋”ฉ
        
        void childMethod() {}
        void childMethod(int i) {}    // ์˜ค๋ฒ„๋กœ๋”ฉ
        void childMethod() {}    // already definded in Child (์ค‘๋ณต ์ •์˜)
    }
    cs




    super


    super๋Š” ์ž์‹ ํด๋ž˜์Šค์—์„œ ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„๋ฅผ ์ฐธ์กฐํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์ฐธ์กฐ๋ณ€์ˆ˜์ด๋‹ค. this๋Š” ์ž๊ธฐ ์ž์‹ ์˜ ๋ฉค๋ฒ„๋ฅผ ์ฐธ์กฐํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋“ฏ์ด ๊ทธ ์‚ฌ์šฉ๋ฒ•์€ ๋˜‘๊ฐ™๋‹ค. this์™€ super๋Š” ์ž์‹ ์ด ์†ํ•œ ์ธ์Šคํ„ด์Šค์˜ ์ฃผ์†Œ๊ฐ€ ์ง€์—ญ๋ณ€์ˆ˜๋กœ ์ €์žฅ๋œ ๊ฒƒ์œผ๋กœ static๋ฉ”์„œ๋“œ์™€๋Š” ๊ด€๋ จ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— static ๋ฉ”์„œ๋“œ ์•ˆ์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ณ  ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ ์•ˆ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.


    ๋ถ€๋ชจ์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•  ๋•Œ ๋ถ€๋ชจ์˜ ๋ฉ”์„œ๋“œ์— ๋‚ด์šฉ์„ ๋ง๋ถ™์ด๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด super๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์กฐ์ƒํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํฌํ•จ์‹œํ‚ค๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    class Point {
        int x;
        int y;
     
        String getLocatino() {
            return "x : " + x + " , y :" + y;
        }
    }
     
    class Point3D extends Point {
        int z;
        String getLocation() {    // ์˜ค๋ฒ„๋ผ์ด๋”ฉ
            return super.getLocation() + ", z :" + z;    // ๋ถ€๋ชจ์˜ ๋ฉ”์„œ๋“œ 
        }
    }
     
    cs


    ์œ„์™€ ๊ฐ™์ด ํ•ด๋†“์œผ๋ฉด ๋‚˜์ค‘์— ํ˜น์‹œ๋‚˜ ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋Š” ์ผ์ด ์žˆ๋”๋ผ๋„ ์ž์‹ ๋ฉ”์„œ๋“œ๋Š” ์ˆ˜์ •ํ•  ํ•„์š” ์—†์ด ์ž๋™์œผ๋กœ ๋ฐ˜์˜๋˜๊ธฐ ๋•Œ๋ฌธ์— ์†์ด ๋œ ๊ฐ„๋‹ค.


    ๋ฉ”์„œ๋“œ ๋ง๊ณ ๋„ ์ƒ์„ฑ์ž์™€ ๊ด€๋ จํ•ด์„œ super๋Š” ์•„์ฃผ ๊นŠ์€ ๊ด€๋ จ์ด ์žˆ๋Š”๋ฐ this()๋Š” ๊ฐ™์€ ํด๋ž˜์Šค์˜ ๋‹ค๋ฅธ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๊ณ  super()๋Š” ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ƒ์†์ด๋ผ๋Š” ๊ฐœ๋… ์ž์ฒด๊ฐ€ ๋ถ€๋ชจ์˜ ๋ฉค๋ฒ„์™€ ์ž์‹์˜ ๋ฉค๋ฒ„๊ฐ€ ํ•ฉ์ณ์ง„ ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€๋ชจ์˜ ๋ฉค๋ฒ„ ๋˜ํ•œ ์ดˆ๊ธฐํ™” ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค. ๋”ฐ๋ผ์„œ ์ž์‹ ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž์—์„œ๋Š” ๋ฌด์กฐ๊ฑด ์ฒซ์ค„์— ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๊ฐ€ ํ˜ธ์ถœ๋˜์–ด์•ผ ํ•œ๋‹ค.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    public class Object {
        public Object() {}
    }
     
    class Point extends Object {
        int x=10;
        int y=20;
     
        Point(int x, int y) {
            super();
            this.x = x;
            this.y = y;
        }
    }
     
    class Point3D extends Point {
        int z=30;
     
        Point3D(int x, int y, int z) {
            
            this.z = z;
        }
        
        Point3D() {
            this(100,200,300);
        }
    }
     
    cs


    ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ํ˜ธ์ถœํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž๋™์œผ๋กœ ๋„ฃ์–ด์ฃผ๊ฒŒ ๋˜๋Š”๋ฐ ์œ„์˜ ๊ฒฝ์šฐ์—๋Š” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด Point3D๋ผ๋Š” ์ž์‹ ํด๋ž˜์Šค์˜ Point3D(int x, int y, int z) ์ƒ์„ฑ์ž์—๋Š” ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ตฌ๋ฌธ์ด ๋ช…์‹œ์ ์œผ๋กœ ๋“ค์–ด๊ฐ€์žˆ์ง€ ์•Š๋‹ค. ๋”ฐ๋ผ์„œ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž๋™์œผ๋กœ ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ๋„ฃ์–ด์ฃผ๊ฒŒ ๋˜๋Š”๋ฐ ์ด ๋•Œ ์ƒ์„ฑ์ž์˜ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์ œ์ด๋‹ค.


    ํŒจํ‚ค์ง€(package)


    ํŒจํ‚ค์ง€๋Š” ํด๋ž˜์Šค ๋ฌถ์Œ์ด๋‹ค. ํด๋ž˜์Šค ๋˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํฌํ•จ์‹œํ‚ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์„œ๋กœ ๊ด€๋ จ๋œ ํด๋ž˜์Šค๋“ค๋ผ๋ฆฌ ๋ฌถ์–ด ๋†“์Œ์œผ๋กœ์จ ํด๋ž˜์Šค๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.


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


    ํด๋ž˜์Šค๊ฐ€ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ํ•˜๋‚˜์˜ ํด๋ž˜์ŠคํŒŒ์ผ(.class)์ธ ๊ฒƒ๊ณผ ๊ฐ™์ด ํŒจํ‚ค์ง€๋Š” ๋ฌผ๋ฆฌ์ ์œผ๋กœ ํ•˜๋‚˜์˜ ๋””๋ ‰ํ† ๋ฆฌ์ด๋‹ค. ์ฆ‰, ์–ด๋–ค ํŒจํ‚ค์ง€์— ์†ํ•œ ํด๋ž˜์Šค๋Š” ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ์— ์กด์žฌํ•˜๋Š” ํด๋ž˜์Šค ํŒŒ์ผ์ด๋‹ค.


    ์‹ค์ œ๋กœ Stringํด๋ž˜์Šค๋Š” rt.jarํŒŒ์ผ์— ์••์ถ•๋˜์–ด ์žˆ๋Š”๋ฐ ์ด ํŒŒ์ผ์˜ ์••์ถ•์„ ํ’€๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.




    ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ํŒจํ‚ค์ง€๋ช…์—์„œ ์„œ๋ธŒ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด '์ '์œผ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค. ์œ„์˜ ์˜ˆ๋ฅผ๋“ค๋ฉด java.lang์—์„œ lang์€ java์˜ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.


    ํŒจํ‚ค์ง€์˜ ์„ ์–ธ์€ ์•„์ฃผ ๊ฐ„๋‹จํ•˜๋‹ค. ํด๋ž˜์Šค๋‚˜ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์†Œ์ŠคํŒŒ์ผ(.java)์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•œ ์ค„๋งŒ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.


    1
    package ํŒจํ‚ค์ง€๋ช…;
    cs


    ํŒจํ‚ค์ง€ ์„ ์–ธ๋ฌธ์€ ๋ฐ˜๋“œ์‹œ ์†Œ์ŠคํŒŒ์ผ์—์„œ ์ฃผ์„๊ณผ ๊ณต๋ฐฑ์„ ์ œ์™ธํ•œ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์žฅ์ด์–ด์•ผ ํ•˜๊ณ , ํ•˜๋‚˜์˜ ์†Œ์ŠคํŒŒ์ผ์— ๋‹จ ํ•œ๋ฒˆ๋งŒ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋‹ค.


    ๊ทธ๋Ÿฐ๋ฐ ์†Œ์ŠคํŒŒ์ผ์„ ์ž‘์„ฑํ•  ๋•Œ ํŒจํ‚ค์ง€๋ฅผ ์„ ์–ธํ•˜์ง€ ์•Š๊ณ ๋„ ๋ฌธ์ œ์—†์ด ๋Œ์•„๊ฐ”๋˜ ์ด์œ ๋Š” ๋ฐ”๋กœ ์ž๋ฐ”์—์„œ ํ•ด์ฃผ๋Š”๊ฒƒ.. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๋ฆ„์—†๋Š” ํŒจํ‚ค์ง€(unnamed package)์— ์ž๋™์ ์œผ๋กœ ์„ ์–ธ์„ ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์†Œ์ŠคํŒŒ์ผ์— ํŒจํ‚ค์ง€๋ฅผ ์„ ์–ธํ•˜์ง€ ์•Š์€ ํด๋ž˜์Šค๋‚˜ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ž๋™์ ์œผ๋กœ ๊ฐ™์€ ํŒจํ‚ค์ง€์— ์†ํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.


    ๋˜ํ•œ, ํŒจํ‚ค์ง€ ์ด๋ฆ„์„ ์ •ํ•  ๋•Œ ์ฃผ์˜ํ•  ์ ์„ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

    1. ์ž๋ฐ”์˜ ์˜ˆ์•ฝ์–ด (int, double ๋“ฑ) ์‚ฌ์šฉ ๊ธˆ์ง€

    2. ์ฃผ์„๊ณผ ๊ณต๋ฐฑ์„ ์ œ์™ธํ•œ ์†Œ์Šค์˜ ๊ฐ€์žฅ ์ฒซ๋ฒˆ์งธ ์ค„์— ์™€์•ผํ•จ.

    3. ํŒจํ‚ค์ง€ ์ด๋ฆ„๊ณผ ํด๋ž˜์Šค๊ฐ€ ์œ„์น˜ํ•œ ํด๋”์˜ ์ด๋ฆ„์ด ๊ฐ™์•„์•ผํ•จ.

    4. java๋กœ ์‹œ์ž‘ํ•˜๋Š” ํŒจํ‚ค์ง€๋ช…์„ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋œ๋‹ค. ( ์ด๋Š” java๊ฐ€ ๋ง‰์•„๋†“์€ ๊ฒƒ. ์—๋Ÿฌ ๋ฐœ์ƒ -> Prohibited package name: java)

    5. ํŒจํ‚ค์ง€๋ช…์€ ํด๋ž˜์Šค๋ช…๊ณผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ์†Œ๋ฌธ์ž๋กœ ์ž‘์„ฑํ•˜๊ธฐ๋ฅผ ๊ถŒ๊ณ ํ•จ. (๋Œ€๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋Š” ์žˆ๋‹ค. ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•จ)


    import


    import๋Š” ํ˜„์žฌ ์ž‘์„ฑ์ค‘์ธ ์†Œ์Šค์—์„œ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์˜ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ํ•œ ๊บผ๋ฒˆ์— ์—ฌ๋Ÿฌ ํด๋ž˜์Šค๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜๋„ ์žˆ๋Š”๋ฐ ๋งŒ์•ฝ  com.common.service ์•ˆ์— ์—ฌ๋Ÿฌ ํด๋ž˜์Šค๊ฐ€ ์กด์žฌํ•  ๋•Œ service์•ˆ์— ์žˆ๋Š” ํด๋ž˜์Šค๋ฅผ ์ „๋ถ€ ๋ถˆ๋Ÿฌ์˜ค๊ณ  ์‹ถ์„ ๋•Œ ๋‹ค์Œ๊ณผ๊ฐ™์ด import๋ฅผ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.


    1
    import com.common.service.*;
    cs


    import๋ฅผ ํ•˜์ง€ ์•Š์•„๋„ ์•ˆ์— ์žˆ๋Š” ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํŒจํ‚ค์ง€๋„ ์žˆ๋Š”๋ฐ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

    1. java.lang ํŒจํ‚ค์ง€

    2. ๊ฐ™์€ ํŒจํ‚ค์ง€


    ์ง€๊ธˆ๊นŒ์ง€ String์ด๋˜ System์— ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋“ค์„ import๋ฅผ ๋”ฐ๋กœ ํ•˜์ง€ ์•Š๊ณ ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒƒ์€ ๋ฐ”๋กœ java.langํŒจํ‚ค์ง€ ์•ˆ์— ์žˆ๋Š” ํด๋ž˜์Šค๋“ค๋กœ ๋”ฐ๋กœ import๋ฅผ ํ•˜์ง€ ์•Š์•„๋„ ์†Œ์Šค์— ํฌํ•จ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


    java.lang ํŒจํ‚ค์ง€์— ์žˆ๋Š” ํด๋ž˜์Šค๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.


    String, StringBuffer

    Process, Runtime, Thread

    Math, StrictMath

    Exception Throwable, Error

    Package, Class, ClassLoader

    Wrapper, System, Stream


    import์—๋Š” static ์˜ˆ์•ฝ์–ด๋ฅผ ๋ถ™์ผ ์ˆ˜๋„ ์žˆ๋Š”๋ฐ ๊ทธ๋Ÿฐ ๊ฒฝ์šฐ importํ•œ ํด๋ž˜์Šค์˜ ์ •์  ๋ฉค๋ฒ„์— ํด๋ž˜์Šค๋ช… ์—†์ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

    ์˜ˆ๋ฅผ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค


    1
    2
    3
    4
    5
    6
    7
    import static java.lang.System.*;
     
    public class Example {
        public static void main(String[] ar) {
            out.println("Hello, World!");
        }
    }
    cs


    java.lang ํŒจํ‚ค์ง€์•ˆ์— ์žˆ๋Š” System์˜ ํด๋ž˜์Šค๋“ค์„ ์ •์ ์œผ๋กœ importํ•œ ๊ฒฝ์šฐ๋‹ค. ์ด ๊ฒฝ์šฐ ์•ˆ์— ์žˆ๋Š” ์ •์  ๊ฐ์ฒด์ธ out์„ System์ด๋ผ๋Š” ํด๋ž˜์Šค๋ช… ์—†์ด ๋ฐ”๋กœ out ๊ฐ์ฒด์— ์ ‘๊ทผํ•˜์—ฌ println๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๊ทธ๋Ÿผ ์ด๊ฑด ์–ธ์ œ ์‚ฌ์šฉํ• ๊นŒ??


    ๋งค์šฐ ๋“œ๋ฌผ๊ฒŒ ์‚ฌ์šฉ์ด ๋˜๊ณ  ์˜ค์ง ์ƒ์ˆ˜์˜ ๋กœ์ปฌ ๋ณต์‚ฌ๋ฅผ ์‹œ๋„ํ•˜๋Š” ๊ฒฝ์šฐ, ํ•˜๋‚˜ ํ˜น์€ ๋‘๊ฐœ์˜ ํด๋ž˜์Šค์—์„œ ์ •์  ๋ฉค๋ฒ„๋ฅผ ๋นˆ๋ฒˆํ•˜๊ฒŒ ์ ‘๊ทผํ•ด์•ผํ•  ๋•Œ ์ด์šฉํ•œ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ static ์˜ˆ์•ฝ์–ด๊ฐ€ ๊ทธ๋ ‡๋“ฏ์ด static import ๋˜ํ•œ ๊ธฐ๋Šฅ์„ ๋‚จ๋ฐœํ•˜๋ฉด ์ฝ”๋“œ๋ฅผ ๋งค์šฐ ์ฝ๊ธฐ ์–ด๋ ต๊ฒŒ ํ•˜๊ณ , ์œ ์ง€๋ณด์ˆ˜ ๋˜ํ•œ ์–ด๋ ต๊ฒŒ ํ•œ๋‹ค. (namespace๋ฅผ ์˜ค์—ผ์‹œํ‚ด)


    ๋ฌผ๋ก  ์ ์ ˆํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ๋ฅผ ๋” ์ฝ๊ธฐ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๊ณ  ๋” ๋‚˜์€ ์„ฑ๋Šฅ์„ ์œ ๋„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ค‘๋ณต ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.


    ์ฐธ๊ณ ์„œ์  : Java์˜ ์ •์„ 3rd Edition