๋ฌธ์ œ : ์˜ํ™” ๋ฆฌ๋ทฐ ๊ด€๋ฆฌํ•˜๊ธฐ1.

 

๋ฌธ์ œ ์„ค๋ช… : 

๋‹น์‹ ์€ ์˜ํ™” ๋ฆฌ๋ทฐ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๋จผ์ €, ์˜ํ™” ๋ฆฌ๋ทฐ ์ •๋ณด๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” MovieReviewํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž.

 

์š”๊ตฌ ์‚ฌํ•ญ

1. MovieReview ํด๋ž˜์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋ฅผ ํฌํ•จํ•ด์•ผ ํ•œ๋‹ค.

  - ์˜ํ™”์ œ๋ชฉ(title)

  - ๋ฆฌ๋ทฐ๋‚ด์šฉ(review)

2. MovieReviewMain ํด๋ž˜์Šค ์•ˆ์— main()๋ฉ”์„œ๋“œ๋ฅผ ํฌํ•จํ•˜์—ฌ, ์˜ํ™” ๋ฆฌ๋ทฐ ์ •๋ณด๋ฅผ ์„ ์–ธํ•˜๊ณ  ์ถœ๋ ฅํ•˜์ž.

 

์ถœ๋ ฅ ์˜ˆ์‹œ

์˜ํ™” ์ œ๋ชฉ : "์ธ์…‰์…˜", ๋ฆฌ๋ทฐ : "์ธ์ƒ์€ ๋ฌดํ•œ ๋ฃจํ”„"
์˜ํ™” ์ œ๋ชฉ : "์–ด๋ฐ”์›ƒ ํƒ€์ž„", ๋ฆฌ๋ทฐ : "์ธ์ƒ ์‹œ๊ฐ„ ์˜ํ™”!"

 


<๋‚˜์˜ ์ฝ”๋“œ>

package javaBasicLecture.array.quiz1;

public class MovieReview {
    String title;
    String review;
}
package javaBasicLecture.array.quiz1;

public class MovieReviewMain {

        MovieReview moviereview1 = new MovieReview();
        MovieReview moviereview2 = new MovieReview();

        moviereview1.title = "์ธ์…‰์…˜";
        moviereview1.review = "์ธ์ƒ์€ ๋ฌดํ•œ๋ฃจํ”„";

        moviereview2.title = "์–ด๋ฐ”์›ƒํƒ€์ž„";
        moviereview2.review = "์ธ์ƒ ์‹œ๊ฐ„ ์˜ํ™”";

        MovieReview [] moviereviews = new MovieReview {moviereview1, moviereview2};


        public static void main(String[] args) {

            for (MovieReview s : moviereviews) {
                System.out.println( "์˜ํ™” ์ œ๋ชฉ : " + s.title + "๋ฆฌ๋ทฐ : " + s.review);
            }

        }

    }

 


 

<์ฑ„์ >

 

1. MovieReview ๊ฐ์ฒด ์ดˆ๊ธฐํ™” ์œ„์น˜ ๋ฌธ์ œ - ์ž๋ฐ”์˜ ํด๋ž˜์Šค ๊ตฌ์กฐ์™€ ์ดˆ๊ธฐํ™” ๊ทœ์น™์— ๋Œ€ํ•œ ๋ถ€์กฑํ•œ ์ดํ•ด

ํด๋ž˜์Šค์˜ ํ•„๋“œ์™€ ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€์˜ ์ฝ”๋“œ๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ๋ชปํ•ด, ๊ฐ์ฒด ์ดˆ๊ธฐํ™”์™€ ๋ฐฐ์—ด ์„ ์–ธ์„ ํด๋ž˜์Šค ํ•„๋“œ ์˜์—ญ์— ์ž‘์„ฑํ–ˆ๋‹ค.

moviereview1.title = "์ธ์…‰์…˜";
moviereview1.review = "์ธ์ƒ์€ ๋ฌดํ•œ๋ฃจํ”„";

๋ฌธ์ œ: ์œ„ ์ฝ”๋“œ๊ฐ€ MovieReviewMain ํด๋ž˜์Šค์˜ ํ•„๋“œ ์˜์—ญ์— ์ž‘์„ฑ๋˜์–ด ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ž๋ฐ”์—์„œ๋Š” ํด๋ž˜์Šค ํ•„๋“œ ์˜์—ญ์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ(๋ฉ”์„œ๋“œ ํ˜ธ์ถœ, ๊ฐ’ ํ• ๋‹น ๋“ฑ)๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

 

์›์ธ: ๊ฐ์ฒด ์ดˆ๊ธฐํ™”์™€ ๊ฐ’ ์„ค์ •์€ ๋ฐ˜๋“œ์‹œ ๋ฉ”์„œ๋“œ(์˜ˆ: main) ์•ˆ์—์„œ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•œ๋‹ค. ๋‚ด๊ฐ€ ์ด ๊ทœ์น™์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ๋‹ค.


2. ๋ฐฐ์—ด ์ดˆ๊ธฐํ™” ๊ตฌ๋ฌธ ๋ฌธ์ œ - ๋ฐฐ์—ด ์ดˆ๊ธฐํ™” ๋ฌธ๋ฒ•์˜ ์˜คํ•ด

์ž๋ฐ”์—์„œ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•  ๋•Œ์˜ ์ •ํ™•ํ•œ ๋ฌธ๋ฒ•(ํŠนํžˆ new์™€ {} ์‚ฌ์šฉ ๊ทœ์น™)์„ ์ž˜ ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ๋‹ค.

MovieReview[] moviereviews = new MovieReview {moviereview1, moviereview2};

๋ฌธ์ œ:  ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•  ๋•Œ๋Š” new ํ‚ค์›Œ๋“œ ๋’ค์— ๋Œ€๊ด„ํ˜ธ []๊ฐ€ ํ•„์š”ํ•˜๊ฑฐ๋‚˜, ๊ฐ„๋‹จํžˆ {}๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

์˜ฌ๋ฐ”๋ฅธ ์˜ˆ์‹œ:

MovieReview[] moviereviews = {moviereview1, moviereview2};

 


 

3. moviereviews ๋ฐฐ์—ด์˜ ์Šค์ฝ”ํ”„ ๋ฌธ์ œ - static ๋ฉ”์„œ๋“œ์™€ ์ธ์Šคํ„ด์Šค ๋ฉค๋ฒ„ ๊ฐ„์˜ ๊ด€๊ณ„ ์ดํ•ด ๋ถ€์กฑ

main ๋ฉ”์„œ๋“œ๋Š” ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์˜ ์‹œ์ž‘์ ์œผ๋กœ static ๋ฉ”์„œ๋“œ์—ฌ์•ผ ํ•œ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ static ๋ฉ”์„œ๋“œ์—์„œ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค ํ•„๋“œ(์˜ˆ: moviereviews)๋ฅผ ์ง์ ‘ ์ ‘๊ทผํ•˜๋ ค๊ณ  ํ•ด์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

for (MovieReview s : moviereviews) {
    ...
}

 

๋ฌธ์ œ: moviereviews ๋ฐฐ์—ด์ด main ๋ฉ”์„œ๋“œ ๋ฐ”๊นฅ์— ์„ ์–ธ๋˜์–ด ์žˆ์ง€๋งŒ, ์ด๋ฅผ main ๋ฉ”์„œ๋“œ์—์„œ ์ง์ ‘ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ moviereviews๋Š” static ํ‚ค์›Œ๋“œ๊ฐ€ ์—†๋Š” ์ธ์Šคํ„ด์Šค ํ•„๋“œ์ด๊ณ , main ๋ฉ”์„œ๋“œ๋Š” static ๋ฉ”์„œ๋“œ๋‹ค.

์›์ธ: static ๋ฉ”์„œ๋“œ์™€ static์ด ์•„๋‹Œ ๋ฉค๋ฒ„ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ๋‹ค.

 

์ด ๋ถ€๋ถ„์€ ๋ฐ‘์— ์ถ”๊ฐ€ ์„ค๋ช… ๋˜์–ด ์žˆ๋‹ค.


<์ •๋‹ต ์ฝ”๋“œ>

package javaBasicLecture.array.quiz1;

public class MovieReview {
    String title;  // ์˜ํ™” ์ œ๋ชฉ
    String review; // ์˜ํ™” ๋ฆฌ๋ทฐ
}

package javaBasicLecture.array.quiz1;

public class MovieReviewMain {
    public static void main(String[] args) {
        // MovieReview ๊ฐ์ฒด ์ƒ์„ฑ
        MovieReview moviereview1 = new MovieReview();
        moviereview1.title = "์ธ์…‰์…˜"; // ๊ฐ์ฒด์˜ title ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”
        moviereview1.review = "์ธ์ƒ์€ ๋ฌดํ•œ๋ฃจํ”„"; // ๊ฐ์ฒด์˜ review ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”

        MovieReview moviereview2 = new MovieReview();
        moviereview2.title = "์–ด๋ฐ”์›ƒํƒ€์ž„"; // ๊ฐ์ฒด์˜ title ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”
        moviereview2.review = "์ธ์ƒ ์‹œ๊ฐ„ ์˜ํ™”"; // ๊ฐ์ฒด์˜ review ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”

        // ๋ฐฐ์—ด ์ดˆ๊ธฐํ™”
        MovieReview[] moviereviews = {moviereview1, moviereview2};

        // ๋ฐฐ์—ด ์ถœ๋ ฅ
        for (MovieReview s : moviereviews) {
            System.out.println("์˜ํ™” ์ œ๋ชฉ: " + s.title + ", ๋ฆฌ๋ทฐ: " + s.review);
        }
    }
}

 

 


 

 

1. Static ๋ฉ”์„œ๋“œ๋ž€?

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

์˜ˆ๋ฅผ ๋“ค์–ด, main ๋ฉ”์„œ๋“œ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋  ๋•Œ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋˜๊ธฐ ๋•Œ๋ฌธ์— static์ด์–ด์•ผ ํ•œ๋‹ค.

 

public static void main(String[] args) {

    // ์—ฌ๊ธฐ๋Š” static ๋ฉ”์„œ๋“œ

}

 

ํŠน์ง•: static ๋ฉ”์„œ๋“œ๋Š” ํด๋ž˜์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋  ๋•Œ ์ž๋™์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

2. ์ธ์Šคํ„ด์Šค ๋ฉค๋ฒ„๋ž€?

static์ด ๋ถ™์ง€ ์•Š์€ ๋ฉค๋ฒ„(๋ณ€์ˆ˜๋‚˜ ๋ฉ”์„œ๋“œ)๋Š” ์ธ์Šคํ„ด์Šค(๊ฐ์ฒด)๋ฅผ ์ƒ์„ฑํ•ด์•ผ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

public class MovieReview {

    String title;  // ์ธ์Šคํ„ด์Šค ๋ฉค๋ฒ„

    String review; // ์ธ์Šคํ„ด์Šค ๋ฉค๋ฒ„

}

 

์œ„ ์˜ˆ์‹œ์—์„œ title๊ณผ review๋Š” ์ธ์Šคํ„ด์Šค ๋ฉค๋ฒ„ ๋ณ€์ˆ˜์ด๋‹ค.

๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์•ผ๋งŒ ๊ฐ’์„ ๋„ฃ๊ฑฐ๋‚˜ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค:

 

MovieReview review = new MovieReview();  // ๊ฐ์ฒด ์ƒ์„ฑ

review.title = "์ธ์…‰์…˜";  // ๊ฐ’ ์„ค์ •

 

3. Static ๋ฉ”์„œ๋“œ์™€ ์ธ์Šคํ„ด์Šค ๋ฉค๋ฒ„์˜ ๊ด€๊ณ„

Static ๋ฉ”์„œ๋“œ(main)๋Š” ํด๋ž˜์Šค์— ์†ํ•ด ์žˆ๊ณ , ๊ฐ์ฒด ์—†์ด๋„ ์‹คํ–‰๋œ๋‹ค.

ํ•˜์ง€๋งŒ ์ธ์Šคํ„ด์Šค ๋ฉค๋ฒ„๋Š” ๋ฐ˜๋“œ์‹œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ ๋’ค์—๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฆ‰, static ๋ฉ”์„œ๋“œ๊ฐ€ ์ง์ ‘์ ์œผ๋กœ ์ธ์Šคํ„ด์Šค ๋ฉค๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•˜๋ฉด, ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

4. ๋ฌธ์ œ์ 

 

์ž‘์„ฑ๋œ ์ฝ”๋“œ์—์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ถ€๋ถ„์ด ๋ฌธ์ œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค:

 

MovieReview moviereview1 = new MovieReview(); // ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ

MovieReview moviereview2 = new MovieReview();

 

MovieReview[] moviereviews = {moviereview1, moviereview2};

 

moviereviews ๋ฐฐ์—ด์ด ํด๋ž˜์Šค ํ•„๋“œ๋กœ ์„ ์–ธ๋˜์–ด ์žˆ๊ณ , main ๋ฉ”์„œ๋“œ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ moviereviews๋Š” static์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ง์ ‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

 

5. ์™œ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋Š”์ง€?

 

 

main๋ฉ”์„œ๋“œ๋Š” ๊ฐ€์žฅ ๋จผ์ € ์‹คํ–‰์ด ๋˜๋Š”๋ฐ,  ๋‹ค๋ฅธ ํด๋ž˜์Šค์—์„œ ๋งŒ๋“  ๊ฐ์ฒด๋Š” ์•„์ง ์ธ์‹์ด ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—
์ธ์Šคํ„ด์Šค ๋ฉค๋ฒ„(moviereviews)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์–ด์„œ ์˜ค๋ฅ˜๊ฐ€ ๋‚œ๋‹ค.

 

main ๋ฉ”์„œ๋“œ๋Š” static์ด๋ผ์„œ ํด๋ž˜์Šค๊ฐ€ ๋กœ๋“œ๋  ๋•Œ ๋ฐ”๋กœ ์‹คํ–‰๋œ๋‹ค.

๋ฐ˜๋ฉด, moviereviews๋Š” ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋œ ํ›„์—๋งŒ ์กด์žฌํ•œ๋‹ค.

์ฆ‰, main ๋ฉ”์„œ๋“œ๊ฐ€ ์‹คํ–‰๋  ๋•Œ moviereviews๋Š” ์•„์ง ์กด์žฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

6. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

1. moviereviews๋ฅผ static์œผ๋กœ ์„ ์–ธ:

static์œผ๋กœ ์„ ์–ธํ•˜๋ฉด moviereviews๋„ ํด๋ž˜์Šค์— ์†ํ•˜๊ฒŒ ๋˜๋ฏ€๋กœ, main ๋ฉ”์„œ๋“œ์—์„œ ๋ฐ”๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

 

static MovieReview[] moviereviews;

 

 

2. main ๋ฉ”์„œ๋“œ ์•ˆ์—์„œ ์„ ์–ธ:

main ๋ฉ”์„œ๋“œ ์•ˆ์—์„œ moviereviews๋ฅผ ์„ ์–ธํ•˜๊ณ  ์ดˆ๊ธฐํ™”ํ•˜๋ฉด, main ๋ฉ”์„œ๋“œ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค.

 

public static void main(String[] args) {

    MovieReview[] moviereviews = {moviereview1, moviereview2};

}

 

 

์ •๋ฆฌ

static ๋ฉ”์„œ๋“œ๋Š” ํด๋ž˜์Šค๊ฐ€ ์‹คํ–‰๋  ๋•Œ ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์ธ์Šคํ„ด์Šค ๋ฉค๋ฒ„๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ ํ›„์—๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

main ๋ฉ”์„œ๋“œ์ฒ˜๋Ÿผ static์ธ ๋ฉ”์„œ๋“œ์—์„œ ์ธ์Šคํ„ด์Šค ๋ฉค๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜, static์œผ๋กœ ์„ ์–ธํ•ด์•ผ ํ•œ๋‹ค.

 

2024.12.06 - [Java/Breaking down Java code] - [Java] static์˜ ์œ ๋ฌด (์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ & ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ)

 

[Java] static์˜ ์œ ๋ฌด (์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ & ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ)

1. ํด๋ž˜์Šค๋ž€?ํด๋ž˜์Šค๋Š” ์„ค๊ณ„๋„์ด๋‹ค.์„ค๊ณ„๋„๋ฅผ ์ด์šฉํ•ด์„œ ๋ฌผ๊ฑด(๊ฐ์ฒด)๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด, ์ž๋™์ฐจ ์„ค๊ณ„๋„(Car)๋ฅผ ๋งŒ๋“ค๋ฉด, ์ด ์„ค๊ณ„๋„๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋นจ๊ฐ„์ƒ‰ ์ž๋™์ฐจ์™€ ํŒŒ๋ž€์ƒ‰ ์ž๋™์ฐจ๋ผ๋Š” ๋‘ ๋Œ€์˜ ์ž

yeonbikim.tistory.com

 

+ Recent posts