Post

JAVA Program Arguments, Main method, Package, Block, Scope

โœ… Block

1
2
3
4
5
//  ๐Ÿ’ก { } ๋กœ ๋ธ”๋ก ์ƒ์„ฑ
{
    int x = 1; //ํ•œ ์ค„ ํ•œ ์ค„์ด statement
    System.out.println(x);
}
1
2
3
4
5
6
7
8
9
int z =1;
//block
for (int i = 0; i < 5; i++) {
    System.out.println(z + i);  //statement
//  โš ๏ธ ๋ธ”๋ก ๋ฐ–์—์„œ ์„ ์–ธ๋œ ๊ฒƒ์€ ์•ˆ์—์„œ ์žฌ์„ ์–ธ ๋ถˆ๊ฐ€
    int z = 2; //๋ถˆ๊ฐ€
}
//  โš ๏ธ ๋ธ”๋ก ์•ˆ์—์„œ ์„ ์–ธ๋œ ๊ฒƒ์€ ๋ฐ–์—์„œ ์‚ฌ์šฉ ๋ถˆ๊ฐ€
    System.out.println(i);  //๋ถˆ๊ฐ€

โœ… Scope

ํ•ด๋‹น ๋ณ€์ˆ˜๊ฐ€ ์œ ํšจํ•œ ๋ฒ”์œ„

  • ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ์—์„œ๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ์‚ฌ์šฉ ๋ถˆ๊ฐ€
  • ํด๋ž˜์Šค ๋‚ด ํ•„๋“œ์˜ ์Šค์ฝ”ํ”„ : ํ•ด๋‹น ํด๋ž˜์Šค ์•ˆ
  • ๋ฉ”์†Œ๋“œ ๋‚ด ๋ณ€์ˆ˜์˜ ์Šค์ฝ”ํ”„ : ํ•ด๋‹น ๋ฉ”์†Œ๋“œ ์•ˆ

๋ณ€์ˆ˜๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ๋ฒ”์œ„
์ผ๋ฐ˜์ ์œผ๋กœํ•˜๋Š” ํ•œ block ์ด ์ƒˆ๋กœ์šด scope
block๋‚ด์—์„œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” block์„ ๋ฒ—์–ด๋‚˜๋ฉด ์‚ฌ์šฉ ๋ถˆ๊ฐ€

๋ฐ”๊นฅ scope์—์„œ ๋งŒ๋“ค์–ด์ง„ ๋ณ€์ˆ˜๋Š” ๋˜ ๋‹ค๋ฅธ scope์•ˆ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ,
ํ•œ block๋‚ด์—์„œ ๋งŒ๋“ค์–ด์ง„ ๋ณ€์ˆ˜๋Š” ๊ทธ block์„ ๋ฒ—์–ด๋‚˜๋ฉด ์‚ฌ์šฉ ๋ถˆ๊ฐ€

scope ์™ธ๋ถ€์—์„œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋ฅผ ๋‚ด๋ถ€์— ๋˜ ์„ ์–ธ ๋ถˆ๊ฐ€๋Šฅ
๊ทธ๋Ÿฌ๋‚˜ ์ธ์Šคํ„ด์Šค์˜ ํ•„๋“œ๋Š” scope๋‚ด์—์„œ ๋ณ€์ˆ˜๋กœ ์„ ์–ธ ๊ฐ€๋Šฅ

Static ๐Ÿ†š Instance ๐Ÿ†š Local

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Variable {
    //static ํด๋ž˜์Šค ๋ณ€์ˆ˜
    // ํ”„๋กœ๊ทธ๋žจ์ด ์ฒ˜์Œ ์‹œ์ž‘๋  ๋•Œ ์ƒ์„ฑ, ํ”„๋กœ๊ทธ๋žจ ๋๋‚˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œํ•  ๋•Œ ์†Œ๋ฉธ
    private static int classVariable;
    //์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜
    // ๊ฐ์ฒด์— ์†ํ•œ ๋ณ€์ˆ˜
    // ํž™์ด ์ƒ์„ฑ๋˜๊ณ  JVM์œ„์— ์˜ฌ๋ผ๊ฐ
    private int instanceVariable1;
    //๋กœ์ปฌ ๋ณ€์ˆ˜(์ง€์—ญ๋ณ€์ˆ˜)
    // ๋ฉ”์†Œ๋“œ์—์„œ ์“ฐ์ด๊ณ  ์‚ฌ๋ผ์ง€๋Š” ๋ณ€์ˆ˜
    // ๋ฉ”์†Œ๋“œ ์•ˆ์—์„œ๋งŒ ์˜๋ฏธ๊ฐ€ ์žˆ์ง€, ๋ฐ–์—์„œ๋Š” ์˜๋ฏธ๊ฐ€ ์—†์Œ
    public void saySomething(int lcoalVarable){
        int localV= 3;
    }

}

โœ… Program Arguments(Command Line Arguments)

1
2
    public static void main(String[] args) {
    }

String[] args ๐ŸŸฐ JAVA Program Arguments
๐ŸŸฐ Command Line Arguments
๐ŸŸฐ ์ž๋ฐ” ๋ช…๋ น ๋งค๊ฐœ๋ณ€์ˆ˜

์ž๋ฐ” ์‹คํ–‰ ์‹œ, ์™ธ๋ถ€์—์„œ ์ „๋‹ฌ๋ฐ›๋Š” ๋ณ€์ˆ˜
Command Line(terminal)์—์„œ ์ฃผ๋Š” ๋ช…๋ น์ด args์— ์ €์žฅ๋˜์–ด์„œ ์ด๋ฆ„์ด ๋ช…๋ น ๋งค๊ฐœ๋ณ€์ˆ˜์ž„.

args๋ผ๋Š” ๋ฐฐ์—ด์€ string๋ฐฐ์—ด์ด๋‹ค.
์ธํ…”๋ฆฌ์ œ์ด โ–ถ๏ธ ๋ˆ„๋ฅด๊ณ  edit configuration
ํ•˜๊ณ  ์™ธ๋ถ€์—์„œ args ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค.

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-12-16 แ„‹แ…ฉแ„’แ…ฎ 4 59 46

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-12-16 แ„‹แ…ฉแ„’แ…ฎ 5 00 53

โœ… Package

ํด๋ž˜์Šค ์•ˆ์—์„œ ํŒจํ‚ค์ง€ ์ •๋ณด ๊ฐ€์ ธ์™€ ๋ช…์‹œ

1
package sec06.chap02.pkg4;

ํŒจํ‚ค์ง€ ๊ตฌ์กฐ๋ฅผ ์„ค๋ช…ํ•จ.
ํŒจํ‚ค์ง€๋ฅผ importํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค.
ํด๋ž˜์Šค ์ด๋ฆ„์ด ๊ฐ™๋”๋ผ๋„ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€ ์•ˆ์— ๋“ค์—ˆ์œผ๋ฉด ์‚ฌ์šฉ ๊ฐ€๋Šฅ
ํด๋ž˜์Šค ์ด๋ฆ„์ด ๋˜‘๊ฐ™์•„๋„ ์–ด๋”” ํŒจํ‚ค์ง€์— ๋“ค์–ด์žˆ๋Š”์ง€ ์•Œ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ

ํŒจํ‚ค์ง€์— ๋”ฐ๋ผ access modifier๋„ ๋‹ฌ๋ผ์ง„๋‹ค.

ํŒจํ‚ค์ง€์— ๋”ฐ๋ผ์„œ access modifier ๋‹ฌ๋ผ์ง„๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด protected์ด๋ฉด ๊ฐ™์€ ํŒจํ‚ค์ง€ ๋˜๋Š” ์ƒ์† ๊ด€๊ณ„ ์•ˆ์—์„œ๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅ.

  • private: ์˜ค๋กœ์ง€ ๊ฐ™์€ class ๋‚ด์—์„œ
  • default: ๊ฐ™์€ ํŒจํ‚ค์ง€ ์•ˆ์—์„œ
  • protected: ์ƒ์† ๊ด€๊ณ„๋ฉด ๊ฐ€๋Šฅ(๋‹ค๋ฅธ ํŒจํ‚ค์ง€์ผ ๋•Œ๋„)

โญ๏ธ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์— ์žˆ๋Š” ํด๋ž˜์Šค๋„ ์ƒ์†ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‹ค๋ฅธ ํŒจํ‚ค์ง€์—์„œ ๊ฐ€์ ธ์˜จ ํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ๋„ ์ƒ์†๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.
์ƒ๋‹จ์— importํ•˜๋ฉด ๊ฐ€๋Šฅ

1
2
import sec06.chap02.pkg1.Parent; // pkg1์•ˆ์— ์žˆ๋Š” Parent ํด๋ž˜์Šค ๊ฐ€์ ธ์˜ค๊ธฐ
import sec06.chap02.pkg2.* //โญ๏ธ ์™€์ผ๋“œ์นด๋“œ *: pkg2์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  ํด๋ž˜์Šค ๊ฐ€์ ธ์˜ค๊ธฐ

protected access modifier๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.
ํŒจํ‚ค์ง€๋Š” ๋‹ค๋ฅด์ง€๋งŒ, ์ƒ์† ๊ด€๊ณ„๋Š” ๋งž์œผ๋‹ˆ๊นŒ

ํŒจํ‚ค์ง€ ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  ํด๋ž˜์Šค ๊ฐ€์ ธ์™€ *

1
import sec06.chap02.pkg3.* //pkg3์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  ํด๋ž˜์Šค ๊ฐ€์ ธ์˜ค๊ธฐ

์„œ๋กœ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€ ์•ˆ์— ์žˆ๋Š” ๋™๋ช… ํด๋ž˜์Šค ๋ถˆ๋Ÿฌ์˜ฌ ๊ฒฝ์šฐ

์ธ์Šคํ„ด์Šค ์„ ์–ธํ•  ๋•Œ ์ฃผ์˜ํ•ด์•ผ ํ•จ! ์–ด๋”” ํŒจํ‚ค์ง€์˜ ํด๋ž˜์Šค์ธ์ง€ ๋ช…์‹œํ•˜๊ธฐ

1
2
3
4
5
6
7
//ํ˜„์žฌ pkg1์•ˆ์—๋„ Childํด๋ž˜์Šค ์žˆ๊ณ , pkg2์•ˆ์—๋„ Childํด๋ž˜์Šค ์žˆ๋Š” ์ƒํ™ฉ
//โŒ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์–ด๋–ค ํŒจํ‚ค์ง€์˜ Child์ธ์ง€ ์•Œ ์ˆ˜๊ฐ€ ์—†์Œ
        Child child1 = new Child();
//  โญ๏ธ ํŒจํ‚ค์ง€๊ฐ€ ๋‹ค๋ฅธ ๋™๋ช…์˜ ํด๋ž˜์Šค๋“ค์„ ๋ถˆ๋Ÿฌ์˜ฌ ๊ฒฝ์šฐ
        sec06.chap02.pkg1.Child child1 = new sec06.chap02.pkg1.Child();
        sec06.chap02.pkg2.Child child2 = new sec06.chap02.pkg2.Child();

1
2
3
4
5
6
7
    public static void main(String[] args) {
        //์™ธ๋ถ€์—์„œ args๋ฐฐ์—ด ๊ฐ’ ๋ฐ›์•„์˜ค๊ธฐ
        String menuName = args[0];
        String spicyLevel = args[1];

        System.out.printf("%s ๋งต๊ธฐ ๊ฐ•๋„ %s๋กœ ์ฃผ๋ฌธ%n", menuName, spicyLevel);
    }
This post is licensed under CC BY 4.0 by the author.