for๋ฌธ
๋ฐ๋ณต๋ฌธ ์ค ํ๋๋ก, ํน์ ์กฐ๊ฑด์ด ์ฐธ์ธ ๋์ ์ผ๋ จ์ ์ฝ๋ ๋ธ๋ก์ ๋ฐ๋ณต ์คํํฉ๋๋ค.
for (์ด๊ธฐํ์; ์กฐ๊ฑด์; ์ฆ๊ฐ์) {
// ๋ฐ๋ณต ์คํ๋ ์ฝ๋
}
for(i=1;i<=10;i++){
System.out.printf("%d * %d =%d",5,i,5*i).println();
}
์ด๊ธฐ๊ฐ์ ์ด๋ฏธ i=1์ ๊ฐ์ผ๋ก ์ฌ์ ์ ์ ์ํด๋์๊ธฐ ๋๋ฌธ์ ๋ฐ๋ณต๋ฌธ์ () ์กฐ๊ฑด๋ฌธ์ ํํ ์์ฑํ์ง ์์๋ ๋๋ค.
์ด๊ธฐํ์์ i๋ฟ๋ง ์๋๋ผ, j์ ๊ฐ์ด ์ฌ๋ฌ๋ณ์๋ฅผ ์ฌ์ฉํด์ for๋ฌธ์ ์ด์ฉํ ์ ์๋ค
์กฐ๊ฑด์์ i๊ฐ 10์ดํ์ผ๋๊น์ง ์ด๋ฏ๋ก, ์ด 10๋ฒ์ ๋ฐ๋ณต๋ฌธ์ ์ํํ์ฌ i = 1 → 11 , j = 2 →12๊ฐ ๋๋๊ฒ์ ํ์ธํ ์ ์๋ค.
Method
๋ฉ์๋(Method)๋ ํด๋์ค๋ ๊ฐ์ฒด์ ๋์์ ์ ์ํ๋ ์ฝ๋ ๋ธ๋ก์ ๋๋ค. ๋ฉ์๋๋ ํน์ ํ ์์ ์ ์ํํ๊ณ ๊ฐ์ ๋ฐํํ ์ ์์ต๋๋ค. ๋ฉ์๋๋ ํด๋์ค ๋ด๋ถ์ ์ ์๋๊ฑฐ๋, ํด๋์ค ๋ด๋ถ์์ ๊ฐ์ฒด์ ์ธ์คํด์ค ๋ฉ์๋๋ก ์ ์๋ ์ ์์ต๋๋ค.
[์ ๊ทผ ์ ์ด์] [static] [๋ฐํ ์ ํ] ๋ฉ์๋์ด๋ฆ(๋งค๊ฐ๋ณ์ ๋ชฉ๋ก) {
// ๋ฉ์๋์ ๋ด์ฉ
return ๋ฐํ๊ฐ; // ๋ฐํ ์ ํ์ด ์๋ ๊ฒฝ์ฐ
}
โ๏ธreturn ํ์ ์ ์ ํ์ ๋ช ์ํ์ฌ, ๋ฉ์๋๋ฅผ ์ ์ํด์ผํ๋ค. (์นด๋ฉ์ผ์ด์ค ๋ค์ด๋ฐ์ ์ฌ์ฉ)
Mehod Overloading
์ค๋ฒ๋ก๋ฉ์ ๊ฐ์ ์ด๋ฆ์ ๋ฉ์๋๊ฐ ์๋ก ๋ค๋ฅธ ๋งค๊ฐ๋ณ์๋ฅผ ๊ฐ์ง๋ ๊ฒ์ ํ์ฉํ๋ ๊ฐ๋ ์ ๋๋ค.
์ฆ, ๋ฉ์๋์ ์๊ทธ๋์ฒ(๋งค๊ฐ๋ณ์์ ์ ํ, ๊ฐ์, ์์)๊ฐ ๋ค๋ฅด๋ฉด ๊ฐ์ ์ด๋ฆ์ ๋ฉ์๋๋ฅผ ์ฌ๋ฌ ๊ฐ ์ ์ํ ์ ์์ต๋๋ค.
- ๋ฉ์๋ ์ด๋ฆ์ด ๋์ผํด์ผ ํฉ๋๋ค.
- ๋งค๊ฐ๋ณ์์ ์ ํ, ๊ฐ์, ์์ ์ค ํ๋๊ฐ ๋ฌ๋ผ์ผ ํฉ๋๋ค.
public class Calculator {
// ์ ์ ๋ ๊ฐ๋ฅผ ๋ํ๋ ๋ฉ์๋
public int add(int a, int b) {
return a + b;
}
// ์ค์ ๋ ๊ฐ๋ฅผ ๋ํ๋ ๋ฉ์๋ (์ค๋ฒ๋ก๋ฉ)
public double add(double a, double b) {
return a + b;
}
// ๋ฌธ์์ด ๋ ๊ฐ๋ฅผ ๊ฒฐํฉํ๋ ๋ฉ์๋ (์ค๋ฒ๋ก๋ฉ)
public String add(String a, String b) {
return a + b;
}
}
๋งค๊ฐ๋ณ์์ ์ ํ์ด ๋ค๋ฅธ ์ค๋ฒ๋ก๋ฉ addํจ์ (int,double,string)
โ๏ธ ์ปดํ์ผ๋ฌ๋ ๋งค๊ฐ ๋ณ์์ ์์ ์ ํ์ผ๋ก ๋ ๋ฉ์๋๋ฅผ ๊ตฌ๋ถํ ์ ์์ต๋๋ค.
Mehod Overriding
์ค๋ฒ๋ผ์ด๋ฉ์ ์์ ๊ด๊ณ์์ ๋ถ๋ชจ ํด๋์ค์ ๋ฉ์๋๋ฅผ ์์ ํด๋์ค์์ ๋ค์ ์ ์ํ์ฌ ์์ ํด๋์ค์ ๋์์ผ๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
- ๋ฉ์๋ ์ด๋ฆ, ๋ฐํ ์ ํ, ๋งค๊ฐ๋ณ์์ ์๊ทธ๋์ฒ๊ฐ ๋ถ๋ชจ ํด๋์ค์ ๋ฉ์๋์ ๋์ผํด์ผ ํฉ๋๋ค.
- ์ ๊ทผ ์ ์ด์๋ ๋ถ๋ชจ ํด๋์ค์ ๋ฉ์๋์ ๋์ผํ๊ฑฐ๋ ํ์ฅ๋์ด์ผ ํฉ๋๋ค.
- ์์ธ(throws)๋ฅผ ์ ์ธํ ๊ฒฝ์ฐ, ๋ถ๋ชจ ํด๋์ค์ ๋ฉ์๋์์ ์ ์ธ๋ ์์ธ์ ๋์ผํ๊ฑฐ๋ ํ์ ์์ธ๋ฅผ ์ ์ธํด์ผ ํฉ๋๋ค.
class Animal {
public void makeSound() {
System.out.println("Animal makes a sound");
}
}
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Dog barks");
}
}
Dog(์์) ํด๋์ค๊ฐ Animal(๋ถ๋ชจ)์ makeSound ๋ฉ์๋๋ฅผ ์ฌ์ ์(์ค๋ฒ๋ผ์ด๋ฉ)ํ์ฌ ์์ ๋ง์ ๋์์ผ๋ก ๋ณ๊ฒฝํ๋ค.
JDK, JRE, JVM

- JVM (Java Virtual Machine):
- JVM์ Java ๊ฐ์ ๋จธ์ ์ ์๋ฏธ๋ก, ๋ฐ์ดํธ ์ฝ๋(bytecode)๋ก ์ปดํ์ผ๋ฉ๋๋ค.
- JVM์ Java ์์ฉ ํ๋ก๊ทธ๋จ์ ํ๋ซํผ ๋ ๋ฆฝ์ฑ์ ์ ๊ณตํฉ๋๋ค. ์ฆ, ํ ๋ฒ ์์ฑ๋ Java ํ๋ก๊ทธ๋จ์ ์ฌ๋ฌ ํ๋ซํผ์์ ์คํ๋ ์ ์์ต๋๋ค.
- JVM์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ, ๊ฐ๋น์ง ์ปฌ๋ ์ ๋ฑ์ ์์ ์ ์ฒ๋ฆฌํ์ฌ Java ํ๋ก๊ทธ๋จ์ด ์์ ์ ์ผ๋ก ์คํ๋๋๋ก ์ง์ํฉ๋๋ค.
- JRE (Java Runtime Environment):
- JRE๋ Java ์์ฉ ํ๋ก๊ทธ๋จ์ ์คํํ๊ธฐ ์ํด ํ์ํ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค.
- JRE๋ JVM, Java ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ, Java ํด๋์ค ๋ก๋ ๋ฑ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- Java ์์ฉ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ค๋ฉด JRE๊ฐ ์์คํ ์ ์ค์น๋์ด ์์ด์ผ ํฉ๋๋ค.
- JRE๋ ๊ฐ๋ฐ์๊ฐ Java ํ๋ก๊ทธ๋จ์ ์คํํ ์ ์๋๋ก ํ์ํ ๋ชจ๋ ๋ฐํ์ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค.
- JDK (Java Development Kit):
- JDK๋ Java ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๊ธฐ ์ํ ๋๊ตฌ์ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค.
- JDK์๋ JRE๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ, ๋๋ถ์ด ์ปดํ์ผ๋ฌ, ๋๋ฒ๊ฑฐ, Java ๋ฌธ์ ์์ฑ ๋๊ตฌ, ๊ฐ๋ฐ์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ์ด ํฌํจ๋์ด ์์ต๋๋ค.
- ๊ฐ๋ฐ์๊ฐ Java ํ๋ก๊ทธ๋จ์ ์์ฑ, ์ปดํ์ผ, ๋๋ฒ๊น ํ๊ณ ์คํํ ์ ์๋ ๋ชจ๋ ๋๊ตฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ JDK์์ ์ ๊ณตํฉ๋๋ค.
- JDK๋ฅผ ์ค์นํ๋ฉด JRE๋ ํจ๊ป ์ค์น๋๋ฏ๋ก, Java ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๊ณ ์คํํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ๊ฒ์ ์ ๊ณตํฉ๋๋ค.
๐๐ป JDK๋ Java ๊ฐ๋ฐ์ ์ํ ์ ์ฒด ๋๊ตฌ์ ํ๊ฒฝ์ ํฌํจํ๊ณ , JRE๋ Java ํ๋ก๊ทธ๋จ์ ์คํํ๊ธฐ ์ํ ์ต์ํ์ ํ๊ฒฝ์ ํฌํจํ๋ฉฐ, JVM์ Java ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๊ฐ์ ๋จธ์ ์ ๋ํ๋ธ๋ค.