ํ๋ ์ด์์ class์ ๊ทธ class์์ field์ method๋ก ๊ตฌ์ฑ.
class ํด๋์ค์ด๋ฆ{
ํ๋ ์ ์ธ
๋ฉ์๋ ์ ์ธ
}
class begin{
int field1;
String field2;
void method(){
System.out.pringln("Hello JAVA");
}
}
์๋ฐ๋ ํ๋ก๊ทธ๋๋ฐ์ด ์์๋๋ฉด ๋จผ์ main()๋ฉ์๋ ์์ ๋ช ๋ น์ด๋ค์ ์ฐจ๋ก๋๋ก ์คํ์ํจ๋ค. ์๋ฐ ํ๋ก๊ทธ๋จ ํ๊ฐ์๋ ๋ฐ๋์ main()๋ฉ์๋๋ฅผ ํฌํจ์ํค๋ class๊ฐ ์กด์ฌํด์ผํ๋ค.
๋ณ์(variable)๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ํ๋ก๊ทธ๋จ์ ์ํด ์ด๋ฆ์ ํ ๋น๋ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์๋ฏธ
๐๋ณ์ ์ ์ธ์ ๊ท์น
- ์ด๋ฆ์ ์๋ฌธ์(๋์๋ฌธ์, ์ซ์, ์ธ๋์ค์ฝ์ด(_),๋ฌ๋ฌ($)๋ก๋ง ๊ตฌ์ฑ ๊ฐ๋ฅ
- ๋ณ์์ด๋ฆ์ ์ซ์๋ก ์์ ๋ถ๊ฐ๋ฅ
- ๋ณ์์ ์ด๋ฆ์ผ๋ก JAVA์์ ์ ์ํ ํค์๋ ์ฌ์ฉ ๋ถ๊ฐ
- ๋ณ์์ ์ด๋ฆ ์ฌ์ด์ ๊ณต๋ฐฑํ์ ๋ถ๊ฐ๋ฅ
๊ธฐ๋ณธํ ์ ์:
//๋ณ์์ ์ธ ๋ฐฉ๋ฒ
int age; //๋ณ์ ์ ์ธ
age = 25; //๋ณ์ ์ด๊ธฐํ
System.out.println(age);
-> ๋ณ์ ์ ์ธ์ ๊ผญ ๋ณ์ ์ด๊ธฐํ ์์ผ์ผํจ.
//๋ณ์์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํํ๊ธฐ
int age = 25;
System.out.println(age);๋ ฅํ์ธ์
์์(constant)๋ ๋ณ์์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์๋ฏธํ๋ค. ๊ทธ๋ฌ๋ ์์๋ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ๋์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค.
-> ์๋ฐ์์ final๋ก ํ๊ธฐ
-> ์์ fianl์ ์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํ ์์ผ์ผํจ.
final String name = 'Jaei';
๐์กฐ๊ฑด๋ฌธ(conditional statements)
1. if๋ฌธ
2. if/else๋ฌธ
3. if/else if/ else๋ฌธ
4. switch๋ฌธ
if(์กฐ๊ฑด){
์กฐ๊ฑด์ด ์ฐธ์ผ ๋ ์คํ๋๋ ๋ช
๋ น๋ฌธ;
}
if(์กฐ๊ฑด){
์กฐ๊ฑด์ด ์ฐธ์ผ ๋ ์คํ๋๋ ๋ช
๋ น๋ฌธ;
} else{
์กฐ๊ฑด์ด ๊ฑฐ์ง์ผ ๋ ์คํ๋๋ ๋ช
๋ น๋ฌธ;
}
if(์กฐ๊ฑด1){
์กฐ๊ฑด1์ด ์ฐธ์ผ ๋ ์คํ๋๋ ๋ช
๋ น๋ฌธ;
}
else if(์กฐ๊ฑด2){
์กฐ๊ฑด2๊ฐ ์ฐธ์ผ ๋ ์คํ๋๋ ๋ช
๋ น๋ฌธ;
}
else{
์กฐ๊ฑด1๊ณผ ์กฐ๊ฑด2 ๋ชจ๋ ๊ฑฐ์ง์ผ ๋ ์คํ๋๋ ๋ช
๋ น๋ฌธ;
}
์กฐ๊ฑด์ ? ๋ฐํ๊ฐ1 : ๋ฐํ๊ฐ2
switch๋ฌธ์ if/else๋ฌธ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฃผ์ด์ง ์กฐ๊ฑด ๊ฐ์ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ํ๋ก๊ทธ๋จ์ด ๋ค๋ฅธ ๋ช
๋ น์ ์ํํ๋๋ก ํ๋ ์กฐ๊ฑด๋ฌธ.
๊ฐ๋
์ฑ์ด ์ข๊ณ ์ปดํ์ผ๋ฌ๊ฐ ์ต์ ํ๋ฅผ ์ฝ๊ฒ ํ ์ ์์ด ์๋ ๋ํ ๋น ๋ฅด๋ค.
switch๋ฌธ์ integer promotion๊ฐ๋ง ์ฌ์ฉ๋ ์ ์๋ค.
switch(์กฐ๊ฑด๊ฐ){
case ๊ฐ1:
์กฐ๊ฑด ๊ฐ์ด ๊ฐ1์ผ ๋ ์คํ๋๋ ๋ช
๋ น๋ฌธ;
break;
case ๊ฐ2:
์กฐ๊ฑด ๊ฐ์ด ๊ฐ2์ผ ๋ ์คํ๋๋ ๋ช
๋ น๋ฌธ;
break;
default:
์กฐ๊ฑด ๊ฐ์ด ์ด๋ ํ case์ ์๋ ํด๋นํ์ง ์์ ๋ ์คํ๋๋ ๋ช
๋ น๋ฌธ;
break;
}
๐๋ฐ๋ณต๋ฌธ(iteration statements)
1. while๋ฌธ
2. do/while๋ฌธ
3. for๋ฌธ
4. Enhanced for๋ฌธ
while(์กฐ๊ฑด์){
์กฐ๊ฑด์์ ๊ฒฐ๊ณผ๊ฐ ์ฐธ์ธ ๋์ ๋ฐ๋ณต์ ์ผ๋ก ์คํํ๊ณ ์ ํ๋ ๋ช
๋ น๋ฌธ;
}
-> ์กฐ๊ฑด์์ ๊ฒ์ฌ๋ฅผ ํตํด ๋ฐ๋ณตํด์ ์คํ๋๋ ๋ฐ๋ณต๋ฌธ = ๋ฃจํ(loop)
while๋ฌธ์ ๋ฃจํ์ ์ง์
ํ๊ธฐ ์ ์ ๋จผ์ ์กฐ๊ฑด์๋ถํฐ ๊ฒ์ฌํจ.
ํ์ง๋ง do/while๋ฌธ์ ๋จผ์ ๋ฃจํ๋ฅผ ํ ๋ฒ ์คํํ ํ ์กฐ๊ฑด์์ ๊ฒ์ฌ.
์ฆ, do/while๋ฌธ์ ์กฐ๊ฑด์์ ๊ฒฝ๊ณผ์ ์๊ด์์ด ๋ฌด์กฐ๊ฑด ํ ๋ฒ ๋ฃจํ๋ฅผ ์คํ.
do{
์กฐ๊ฑด์์ ๊ฒฐ๊ณผ๊ฐ ์ฐธ์ธ ๋์ ๋ฐ๋ณต์ ์ผ๋ก ์คํํ๊ณ ์ ํ๋ ๋ช
๋ น๋ฌธ;
}while(์กฐ๊ฑด์);
for(์ด๊ธฐ์;์กฐ๊ฑด์;์ฆ๊ฐ์){
์กฐ๊ฑด์์ ๊ฒฐ๊ณผ๊ฐ ์ฐธ์ธ ๋์ ๋ฐ๋ณต์ ์ผ๋ก ์คํํ๊ณ ์ ํ๋ ๋ช
๋ น๋ฌธ;
}
๐ ๋ฃจํ์ ์ ์ด
์ผ๋ฐ์ ์ผ๋ก ์กฐ๊ฑด์์ ๊ฒ์ฌ๋ฅผ ํตํด ๋ฃจํ๋ก ์ง์ ํ๋ฉด, ๋ค์ ์กฐ๊ฑด์์ ๊ฒ์ฌํ๊ธฐ ์ ๊น์ง ๋ฃจํ ์์ ์๋ ๋ชจ๋ ๋ช ๋ น๋ฌธ์ ์คํํจ. ๊ทธ๋ฌ๋ continue๋ฌธ๊ณผ break๋ฌธ์ ์ด๋ฌํ ์ผ๋ฐ์ ์ธ ๋ฃจํ์ ํ๋ฆ์ ์ฌ์ฉ์๊ฐ ์ง์ ์ ์ดํ ์ ์๋๋ก ๋์.
โ๏ธ continue ๋ฌธ: continue๋ฌธ์ ๋ฃจํ ๋ด์์ ์ฌ์ฉํ์ฌ ํด๋น ๋ฃจํ์ ๋๋จธ์ง ๋ถ๋ถ์ ๊ฑด๋๋ฐ๊ณ , ๋ฐ๋ก ๋ค์ ์กฐ๊ฑด์์ ํ๋จ์ผ๋ก ๋์ด๊ฐ๊ฒ ํด์ค๋ค. ๋ณดํต ๋ฐ๋ณต๋ฌธ๋ด์์ ํน์ ์กฐ๊ฑด์ ๋ํ ์์ธ ์ฒ๋ฆฌ๋ฅผ ํ๊ณ ์ ํ ๋ ์์ฃผ ์ฌ์ฉ๋จ.
โ๏ธ break ๋ฌธ: break๋ฌธ์ ๋ฃจํ ๋ด์์ ์ฌ์ฉํ์ฌ ํด๋น ๋ฐ๋ณต๋ฌธ์ ์์ ํ ์ข ๋ฃ์ํจ ๋ค, ๋ฐ๋ณต๋ฌธ ๋ฐ๋ก ๋ค์์ ์์นํ ๋ช ๋ น๋ฌธ์ ์คํํ๋ค. ์ฆ ๋ฃจํ ๋ด์์ ์กฐ๊ฑด์์ ํ๋จ ๊ฒฐ๊ณผ์ ์๊ด์์ด ๋ฐ๋ณต๋ฌธ์ ์์ ํ ๋น ์ ธ๋๊ฐ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค.
๋ชจ๋ ์๋ฐ ํ๋ก๊ทธ๋จ์ ์๋ฐ ๊ฐ์๋จธ์ (JVM)์ ํตํด์ ์คํ๋๋ค.
โ๏ธ ๋ฉ์๋(method)์์ญ: ๋ฉ์๋(method)์์ญ์ ์๋ฐ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉ๋๋ ํด๋์ค์ ๋ํ ์ ๋ณด์ ํจ๊ป ํด๋์ค ๋ณ์(static variavble)๊ฐ ์ ์ฅ๋๋ ์์ญ์ด๋ค. JVM์ ์๋ฐ ํ๋ก๊ทธ๋จ์์ ํน์ ํด๋์ค๊ฐ ์ฌ์ฉ๋๋ฉด ํด๋น ํด๋์ค์ ํด๋์ค ํ์ผ(*.class)๋ฅผ ์ฝ์ด๋ค์ฌ, ํด๋น ํด๋์ค์ ๋ํ ์ ๋ณด๋ฅผ ๋ฉ์๋ ์์ญ์ ์ ์ฅํ๋ค.
โ๏ธ ํ(heap) ์์ญ: ํ(heap)์์ญ์ ์๋ฐ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉ๋๋ ๋ชจ๋ ์ธ์คํด์ค ๋ณ์๊ฐ ์ ์ฅ๋๋ ์์ญ์ด๋ค. JVM์ ์๋ฐ ํ๋ก๊ทธ๋จ์์ newํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค๊ฐ ์์ฑ๋๋ฉด, ํด๋น ์ธ์คํด์ค์ ์ ๋ณด๋ฅผ ํ ์์ญ์ ์ ์ฅํ๋ค. ํ ์์ญ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ฎ์ ์ฃผ์์์ ใ ฃ๋์ ์ฃผ์์ ๋ฐฉํฅ์ผ๋ก ํ ๋น๋จ.
โ๏ธ ์คํ(stack) ์์ญ: ์คํ(stack)์์ญ์ ์๋ฐ ํ๋ก๊ทธ๋จ์์ ๋ฉ์๋๊ฐ ํธ์ถ๋ ๋ ๋ฉ์๋์ ์คํ ํ๋ ์์ด ์ ์ฅ๋๋ ์์ญ. JVM์ ์๋ฐํ๋ก๊ทธ๋จ์์ ๋ฉ์๋๊ฐ ํธ์ถ๋๋ฉด, ๋ฉ์๋์ ํธ์ถ๊ณผ ๊ด๊ณ๋๋ ์ง์ญ ๋ณ์์ ๋ฐฐ๊ฐ๋ณ์๋ฅผ ์คํ ์์ญ์ ์ ์ฅํ๋ค. ์ด๋ ๊ฒ ์คํ์์ญ์ ๋ฉ์๋์ ํธ์ถ๊ณผ ํจ๊ป ํ ๋น๋๋ฉฐ, ๋ฉ์๋์ ํธ์ถ์ด ์๋ฃ๋๋ฉด ์๋ฉธํ๋ค. ์ด๋ ๊ฒ ์คํ ์์ญ์ ์ ์ฅ๋๋ ๋ฉ์๋์ดใ
ก ใ
ฃํธ์ถ ์ ๋ณด๋ฅผ ์คํ ํ๋ ์์ด๋ผ๊ณ ํ๋ค.
์คํ ์์ญ์ ํธ์(push)๋์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ , ํ(pop) ๋์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ธ์ถํ๋ค.
ํ์
[] ๋ฐฐ์ด์ด๋ฆ;
ํ์
๋ฐฐ์ด์ด๋ฆ[];
๋ฐฐ์ด์ด๋ฆ = new ํ์
[๋ฐฐ์ด๊ธธ์ด];
ํ์
[] ๋ฐฐ์ด์ด๋ฆ = new ํ์
[๋ฐฐ์ด๊ธธ์ด];