
ํด๋์ค(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์ ์๋ฐ์์ ์ค์ํ ๋ฉ์๋์ด๋ค.