ํด๋ž˜์Šค(Class)์™€ ๋ฉ”์„œ๋“œ(Method)๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํ•ต์‹ฌ ๊ฐœ๋…์œผ๋กœ, ์ž๋ฐ”(Java)์—์„œ๋„ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค.

 

 

1. ํด๋ž˜์Šค(Class):

์ •์˜: ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์„ค๊ณ„๋„(ํ…œํ”Œ๋ฆฟ)์ด๋‹ค. ์†์„ฑ(ํ•„๋“œ)๊ณผ ๋™์ž‘(๋ฉ”์„œ๋“œ)์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋‹ค.

์—ญํ• : ์—ฌ๋Ÿฌ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๊ณตํ†ต์ ์ธ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ํ•˜๋‚˜์˜ ํƒ€์ž…์„ ์‚ฌ์šฉ์ž๊ฐ€ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 

์˜ˆ: ์ž๋™์ฐจ๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•˜๋ฉด, ์ƒ‰์ƒ, ๋ธŒ๋žœ๋“œ, ์†๋„์™€ ๊ฐ™์€ ์†์„ฑ(ํ•„๋“œ)๊ณผ ์ด๋™, ๋ฉˆ์ถค ๊ฐ™์€ ๋™์ž‘(๋ฉ”์„œ๋“œ)์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋‹ค.

 

2. ๋ฉ”์„œ๋“œ(Method):

์ •์˜: ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์ •์˜๋œ ํ•จ์ˆ˜๋กœ, ํด๋ž˜์Šค๋‚˜ ๊ฐ์ฒด์˜ ๋™์ž‘(๊ธฐ๋Šฅ)์„ ์ •์˜ํ•œ๋‹ค.

์—ญํ• : ํŠน์ • ์ž‘์—…(๋กœ์ง)์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ํด๋ž˜์Šค์— ํฌํ•จ๋˜์–ด์•ผ๋งŒ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ: ์ž๋™์ฐจ ํด๋ž˜์Šค์—์„œ drive() ๋ฉ”์„œ๋“œ๋Š” ์ž๋™์ฐจ๋ฅผ ์ด๋™์‹œํ‚ค๋Š” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

 

ํด๋ž˜์Šค์™€ ๋ฉ”์„œ๋“œ์˜ ๊ด€๊ณ„:

ํด๋ž˜์Šค๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ํฌํ•จํ•œ๋‹ค.

๋ฉ”์„œ๋“œ๋Š” ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ ์ •์˜๋˜๊ณ  ์‹คํ–‰๋œ๋‹ค.

๋ฉ”์„œ๋“œ๋Š” ํด๋ž˜์Šค๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์˜ ๊ตฌํ˜„์„ ๋‹ด๋‹นํ•œ๋‹ค.

 

์˜ˆ์ œ:

 

์•„๋ž˜๋Š” ์˜ํ™” ๋ฆฌ๋ทฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํด๋ž˜์Šค์™€ ๋ฉ”์„œ๋“œ์˜ ์˜ˆ์ด๋‹ค.

 

// ํด๋ž˜์Šค ์ •์˜

class MovieReview {

    // ํ•„๋“œ (์†์„ฑ)

    String title;

    String review;

 

    // ๋ฉ”์„œ๋“œ (๋™์ž‘)

    void printReview() {

        System.out.println("Title: " + title);

        System.out.println("Review: " + review);

    }

}

 

// ํด๋ž˜์Šค ์‚ฌ์šฉ

public class Main {

    public static void main(String[] args) {

        // ๊ฐ์ฒด ์ƒ์„ฑ

        MovieReview movie = new MovieReview();

 

        // ํ•„๋“œ ๊ฐ’ ์„ค์ •

        movie.title = "Inception";

        movie.review = "An amazing journey into the subconscious.";

 

        // ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ

        movie.printReview();

    }

}

 

์˜ˆ์ œ ์ฝ”๋“œ ์„ค๋ช…:

1. ํด๋ž˜์Šค ์ •์˜:

MovieReview ํด๋ž˜์Šค๋Š” ์˜ํ™”์˜ ์ œ๋ชฉ(title)๊ณผ ๋ฆฌ๋ทฐ(review)๋ผ๋Š” ๋‘ ๊ฐœ์˜ ํ•„๋“œ์™€ ๋ฆฌ๋ทฐ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” printReview() ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

2. ํ•„๋“œ ์ดˆ๊ธฐํ™”:

movie.title = "Inception";์ฒ˜๋Ÿผ ๊ฐ์ฒด ์ƒ์„ฑ ํ›„ ํ•„๋“œ์— ๊ฐ’์„ ํ• ๋‹นํ•œ๋‹ค.

3. ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ:

movie.printReview();๋Š” ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง„ printReview() ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ํ•ด ๋ฆฌ๋ทฐ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

์ฐจ์ด์  ์š”์•ฝ:

 


public static void main(String[] args)๋Š” ์ž๋ฐ”์—์„œ ๋ฉ”์„œ๋“œ(Method)์ด๋‹ค. 

 

1. ๋ฉ”์„œ๋“œ์˜ ์ •์˜์™€ ํŠน์ง•

 

๋ฉ”์„œ๋“œ๋Š” ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์ •์˜๋œ ํ•จ์ˆ˜๋กœ, ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ฑฐ๋‚˜ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ๋กœ์ง์„ ๋‹ด๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. main ๋ฉ”์„œ๋“œ๋„ ์ด ์กฐ๊ฑด์— ํ•ด๋‹นํ•œ๋‹ค.

 

๋ฉ”์„œ๋“œ์˜ ๊ตฌ์„ฑ ์š”์†Œ:

 

[์ ‘๊ทผ์ œ์–ด์ž] [static ํ‚ค์›Œ๋“œ] [๋ฐ˜ํ™˜ํƒ€์ž…] [๋ฉ”์„œ๋“œ์ด๋ฆ„] (๋งค๊ฐœ๋ณ€์ˆ˜) {

    // ๋ฉ”์„œ๋“œ์˜ ์‹คํ–‰ ๋กœ์ง

}

 

์ ‘๊ทผ์ œ์–ด์ž: public → ๋ชจ๋“  ๊ณณ์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅ.

static ํ‚ค์›Œ๋“œ: ํด๋ž˜์Šค ๋ ˆ๋ฒจ์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅ(๊ฐ์ฒด ์ƒ์„ฑ ์—†์ด ํ˜ธ์ถœ ๊ฐ€๋Šฅ).

๋ฐ˜ํ™˜ํƒ€์ž…: void → ๋ฐ˜ํ™˜๊ฐ’์ด ์—†์Œ.

๋ฉ”์„œ๋“œ ์ด๋ฆ„: main → ๋ฉ”์„œ๋“œ์˜ ์ด๋ฆ„.

๋งค๊ฐœ๋ณ€์ˆ˜: (String[] args) → ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ ์ „๋‹ฌ๋˜๋Š” ์ธ์ž.

 

๋”ฐ๋ผ์„œ, public static void main(String[] args)๋Š” ๋ฉ”์„œ๋“œ์˜ ๊ตฌ์กฐ๋ฅผ ์ •ํ™•ํžˆ ๋”ฐ๋ฅด๊ณ  ์žˆ๋‹ค.

 

2. main ๋ฉ”์„œ๋“œ์˜ ์—ญํ• 

 

main ๋ฉ”์„œ๋“œ๋Š” ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์˜ ์‹œ์ž‘์ (entry point)์ด๋‹ค. ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์€ ์‹คํ–‰ํ•  ๋•Œ JVM(Java Virtual Machine)์ด main ๋ฉ”์„œ๋“œ๋ฅผ ์ฐพ์•„์„œ ์‹คํ–‰ํ•œ๋‹ค.

 

ํŠน์ง•:

ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์ •์˜๋จ: ๋ชจ๋“  ๋ฉ”์„œ๋“œ๋Š” ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์ •์˜๋˜์–ด์•ผ ํ•˜๋ฉฐ, main ๋ฉ”์„œ๋“œ๋„ ์˜ˆ์™ธ๊ฐ€ ์•„๋‹ˆ๋‹ค.

JVM์ด ํ˜ธ์ถœ: ์‚ฌ์šฉ์ž๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ ํ˜ธ์ถœํ•˜์ง€ ์•Š์•„๋„, JVM์ด ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘ ์‹œ ์ž๋™์œผ๋กœ ํ˜ธ์ถœํ•œ๋‹ค.

 

3. ์™œ ๋ฉ”์„œ๋“œ๋ผ๊ณ  ๋ถ€๋ฅด๋‚˜?

ํด๋ž˜์Šค์˜ ์ผ๋ถ€: main ๋ฉ”์„œ๋“œ๋Š” ํ•ญ์ƒ ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์กด์žฌํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด:

 

public class MainClass {

    public static void main(String[] args) {

        System.out.println("Hello, World!");

    }

}

 

์—ฌ๊ธฐ์„œ main์€ MainClass ํด๋ž˜์Šค์— ์†ํ•œ ๋ฉ”์„œ๋“œ์ด๋‹ค.

 

๋กœ์ง์„ ํฌํ•จ: ๋ฉ”์„œ๋“œ๋Š” ๋กœ์ง(์ž‘์—… ์ˆ˜ํ–‰ ์ฝ”๋“œ)์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, main ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€์—๋„ ์‹คํ–‰ํ•  ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋œ๋‹ค.

 

4. ๋ฉ”์„œ๋“œ๋กœ์„œ์˜ ์˜ˆ์ œ

 

public class Example {

    public static void main(String[] args) { // main ๋ฉ”์„œ๋“œ

        printMessage(); // printMessage ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ

    }

 

    public static void printMessage() { // ๋˜ ๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ

        System.out.println("Hello, this is a method!");

    }

}

 

์„ค๋ช…:

1. main ๋ฉ”์„œ๋“œ:

ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ ์ •์˜๋œ ๋ฉ”์„œ๋“œ๋กœ, ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ ์ž๋™ ํ˜ธ์ถœ.

๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ(printMessage)๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ž‘์—…์„ ์ˆ˜ํ–‰.

2. printMessage ๋ฉ”์„œ๋“œ:

main๊ณผ ๋™์ผํ•˜๊ฒŒ ๋ฉ”์„œ๋“œ๋กœ ์ •์˜๋˜์—ˆ์œผ๋‚˜, ๋ช…์‹œ์ ์œผ๋กœ ํ˜ธ์ถœ(printMessage();)๋˜์–ด ์‹คํ–‰๋จ.

 

5. main ๋ฉ”์„œ๋“œ๊ฐ€ ํŠน๋ณ„ํ•œ ์ด์œ 

์ผ๋ฐ˜ ๋ฉ”์„œ๋“œ์™€ ๋™์ผํ•œ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€์ง€๋งŒ, ํŠน๋ณ„ํ•œ ์—ญํ• (ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘์ )์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— main์€ ์ž๋ฐ”์—์„œ ์ค‘์š”ํ•œ ๋ฉ”์„œ๋“œ์ด๋‹ค.

 

 

+ Recent posts