๋ฌธ์ : ์ํ ๋ฆฌ๋ทฐ ๊ด๋ฆฌํ๊ธฐ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์ผ๋ก ์ ์ธํด์ผ ํ๋ค.
[Java] static์ ์ ๋ฌด (์ธ์คํด์ค ๋ฉ์๋ & ํด๋์ค ๋ฉ์๋)
1. ํด๋์ค๋?ํด๋์ค๋ ์ค๊ณ๋์ด๋ค.์ค๊ณ๋๋ฅผ ์ด์ฉํด์ ๋ฌผ๊ฑด(๊ฐ์ฒด)๋ฅผ ๋ง๋ค ์ ์๋ค.์๋ฅผ ๋ค์ด, ์๋์ฐจ ์ค๊ณ๋(Car)๋ฅผ ๋ง๋ค๋ฉด, ์ด ์ค๊ณ๋๋ฅผ ๋ฐํ์ผ๋ก ๋นจ๊ฐ์ ์๋์ฐจ์ ํ๋์ ์๋์ฐจ๋ผ๋ ๋ ๋์ ์
yeonbikim.tistory.com