์๋
! ์ฐ๋ฆฌ๋ ์ค๋์ ์์
์ Java์ ์บก์ํ์ ํ ์ ํ๊ณ ๊ฒ์ดํธ์์ ๋ฐ๋ก ์์ ๋ก ์์ํ ๊ฒ์
๋๋ค. :) ์ฌ๊ธฐ์ ์ผ๋ฐ์ ์ธ ์๋ค ๋์คํ์ฑ ๋จธ์ ์ด ์์ต๋๋ค . ํ ๊ฐ์ง ์ง๋ฌธ์ด ์์ต๋๋ค. ์ด๋ป๊ฒ ์๋ํฉ๋๊น? ์์ธํ ๋ต๋ณ์ ์ ๊ณตํ์ญ์์ค. ์๋ค๋ ์ด๋์์ ์์ต๋๊น? ๋ด๋ถ ์จ๋๋ ์ด๋ป๊ฒ ์ ์ง๋ฉ๋๊น? ์ผ์์ ์ด๋์ ๋ณด๊ด๋๋์? ๊ธฐ๊ณ๋ ์ถ๊ฐํ ์๋ฝ์ ์ด๋ป๊ฒ ์๋๊น? ์๋ง๋ ์ด๋ฌํ ์ง๋ฌธ์ ๋ํ ๋ต์ด ์์ ๊ฒ์
๋๋ค. ๋ชจ๋ ์ฌ๋์ด ์ด ๊ธฐ๊ณ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์๋ ์๋ ์์ต๋๋ค. ๊ทธ๋ค์ ํ์ฌ ๊ทธ๋ค์ง ์ธ๊ธฐ๊ฐ ์์ต๋๋ค. ๋ค๋ฅธ ์๋ฅผ ๋ค์ด๋ณด๊ฒ ์ต๋๋ค. ๋น์ ์ด ํ์คํ ๋งค์ผ ์ฌ๋ฌ ๋ฒ ์ฌ์ฉํ๋ ๊ฒ. ์ค, ๋์๊ฒ ์์ด๋์ด๊ฐ ์์ด! Google ๊ฒ์ ์์ง์ด
์ด๋ป๊ฒ ์๋ํ๋์ง ์๋ ค์ฃผ์ธ์.๊ณต์ฅ. ์
๋ ฅํ ๋จ์ด์ ๋ํ ์ ๋ณด๋ฅผ ์ ํํ ์ด๋ป๊ฒ ๊ฒ์ํฉ๋๊น? ์ด ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ ์๋ ์๋จ์ ์๋ ์ด์ ๋ ๋ฌด์์
๋๊น? ๋งค์ผ Google์ ์ฌ์ฉํ์ง๋ง ์๋ง ๋ชจ๋ฅผ ๊ฒ์
๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ์ค์ํ์ง ์์ต๋๋ค. ๊ฒฐ๊ตญ, ๊ทธ๊ฒ์ ๋น์ ์ด ์์์ผ ํ ๊ฒ์ด ์๋๋๋ค. ์ ํํ ์ด๋ป๊ฒ ์๋ํ๋์ง ์๊ฐํ์ง ์๊ณ ๊ฒ์ ์์ง์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ ์กฐ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅธ ์ฑ ๊ธฐ๊ณ์์ ํ์ฐ์๋ฃ๋ฅผ ๊ตฌ์
ํ ์ ์์ต๋๋ค. ๋ด์ฐ ๊ธฐ๊ด์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ํ๊ตฌํ์ง ์๊ณ ๊ณ ๋ฑํ๊ต ๋ฌผ๋ฆฌํ์ ๋ชฐ๋ผ๋ ์๋์ฐจ๋ฅผ ์ด์ ํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์ฃผ์ ์์น ์ค ํ๋์ธ ์บก์ํ ๋๋ถ์ ๊ฐ๋ฅํฉ๋๋ค. ์ด ์ฃผ์ ์ ๋ํ ์ฌ๋ฌ ๊ธฐ์ฌ๋ฅผ ์ฝ์ผ๋ฉด์ ์บก์ํ์ ์ ๋ณด ์๋์ด๋ผ๋ ๋ ๊ฐ์ง ๋๋ฆฌ ํผ์ง ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋
์ ์ ํ์ ๊ฒ์
๋๋ค. ๊ณต๊ต๋กญ๊ฒ๋, ๋ค๋ฅธ ์ฌ๋๋ค์ '๋ผ๋ ๋จ์ด๋ฅผ ์ดํดํฉ๋๋ค. ์บก์ํ'๋ ๋ค๋ฅธ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๋น์ ์ด ์์ ํ ์ดํดํ ์ ์๋๋ก ๋ ์ฉ์ด๋ฅผ ๋ชจ๋ ํด๋
ํ ๊ฒ์
๋๋ค. ํ๋ก๊ทธ๋๋ฐ์์ ์ ์๋ ์๋ฏธ๋์บก์ํ๋ ํ๋์ ํจํค์ง("์บก์")์์ ํด๋น ๋ฐ์ดํฐ๋ก ์์
ํ๊ธฐ ์ํด ๋ฐ์ดํฐ์ ๋ฐฉ๋ฒ์ ๊ฒฐํฉํ๋ ๊ฒ์ด์์ต๋๋ค. Java์์ ์บก์ํ ํจํค์ง๋ ํด๋์ค ์
๋๋ค . ํด๋์ค์๋ ๋ฐ์ดํฐ (ํ๋)์ ํด๋น ๋ฐ์ดํฐ ์์
์ ์ํ ๋ฉ์๋๊ฐ ๋ชจ๋ ํฌํจ๋์ด ์์ต๋๋ค.
์ด๊ฒ์ ๋น์ ์๊ฒ ๋ช
๋ฐฑํด ๋ณด์ผ ์ ์์ง๋ง ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์์๋ ๋ชจ๋ ๊ฒ์ด ๋ค๋ฅด๊ฒ ๋ฐฐ์ด๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์์ ๋ฐ์ดํฐ๋ ๋ฐ์ดํฐ ์์
๊ณผ ์๊ฒฉํ๊ฒ ๊ตฌ๋ถ๋ฉ๋๋ค. ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ(OOP)์์ ํ๋ก๊ทธ๋จ์ ๋ฐ์ดํฐ์ ๋ฐ์ดํฐ ์์
์ ์ํ ํจ์๋ก ๊ตฌ์ฑ๋ ์บก์(ํด๋์ค)๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
์ฐ๋ฆฌ๋ ๋ค์์ ํตํด ๋ฐ์ดํฐ ์๋์ ๋ฌ์ฑํฉ๋๋ค.


์ด์ ์ ๋ณด ์๋์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
๊ตฌ์ถ ๋ฐฉ์์ด๋ ์๋ ๋ฐฉ์์ ์ดํดํ์ง ์๊ณ ๋ชจ๋ ์ข ๋ฅ์ ๋ณต์กํ ๋ฉ์ปค๋์ฆ์ ์ด๋ป๊ฒ ์ฌ์ฉํฉ๋๊น? ๊ฐ๋จํฉ๋๋ค. ์ ์์๊ฐ ๊ฐ๋จํ๊ณ ํธ๋ฆฌํ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ์ต๋๋ค. ์๋ค ๊ธฐ๊ณ์์ ์ธํฐํ์ด์ค๋ ์ ๋ฉด ํจ๋์ ๋ฒํผ์ ๋๋ค. ๋ฒํผ ํ๋๋ก ์ปต ํฌ๊ธฐ๋ฅผ ์ ํํ ์ ์์ต๋๋ค. ๋ ๋ฒ์งธ ๋ฒํผ์ผ๋ก ์๋ฝ์ ์ ํํฉ๋๋ค. ์ธ ๋ฒ์งธ๋ ์ผ์ ์ถ๊ฐ๋ฅผ ๋ด๋นํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ด ๋น์ ์ด ํด์ผ ํ ์ ๋ถ์ ๋๋ค. ๊ธฐ๊ณ ๋ด๋ถ๊ฐ ์ด๋ป๊ฒ ์๊ฒผ๋์ง๋ ์ค์ํ์ง ์์ต๋๋ค. ์ค์ํ ๊ฒ์ ์ฌ์ฉ์๊ฐ ์ธ ๊ฐ์ ๋ฒํผ์ ๋๋ฌ ํ์ฐ์๋ฃ๋ฅผ ์ป์ ์ ์๋๋ก ์ค๊ณ๋์๋ค๋ ๊ฒ์ ๋๋ค. ์๋์ฐจ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๋ด๋ถ์์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง๋ ์ค์ํ์ง ์์ต๋๋ค. ์ค์ํ ๊ฒ์ ์ค๋ฅธ์ชฝ ํ๋ฌ์ ๋ฐ์ผ๋ฉด ์ฐจ๊ฐ ์์ผ๋ก ๊ฐ๊ณ , ์ผ์ชฝ ํ๋ฌ์ ๋ฐ์ผ๋ฉด ์ฐจ๊ฐ ๋๋ ค์ง๋ค๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ด ์ ๋ณด์๋์ ๋ณธ์ง์ด๋ค. ํ๋ก๊ทธ๋จ์ ๋ชจ๋ ๊ฒ' s 'innards'๋ ์ฌ์ฉ์์๊ฒ ์จ๊ฒจ์ ธ ์์ต๋๋ค. ์ด๋ฌํ ์ ๋ณด๋ ์ฌ์ฉ์์๊ฒ ๋ถํ์ํ๊ฑฐ๋ ๋ถํ์ํฉ๋๋ค. ์ฌ์ฉ์์๊ฒ๋ ๋ด๋ถ ํ๋ก์ธ์ค๊ฐ ์๋ ์ต์ข ๊ฒฐ๊ณผ๊ฐ ํ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.์ฐจ๋ ๋ฑ๊ธ:
public class Vehicle {
public void gas() {
/* Some complicated things happen inside a car.
As a result, it moves forward */
}
public void brake() {
/* Some complicated things happen inside a car.
As a result, it slows down */
}
public static void main(String[] args) {
Vehicle vehicle = new Vehicle();
// How everything looks to the user
// Press one pedal, the car moves
vehicle.gas();
// Press the other pedal, the car brakes
vehicle.brake();
}
}
์ด๊ฒ์ด Java ํ๋ก๊ทธ๋จ์์ ๊ตฌํ์ด ์จ๊ฒจ์ง ๋ฐฉ์์
๋๋ค. ์ค์ํ์์์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฌ์ฉ์์๊ฒ ์ธํฐํ์ด์ค(๋ฉ์๋)๊ฐ ์ ๊ณต๋ฉ๋๋ค. ํ๋ก๊ทธ๋จ์์ ์์
์ ์ํํ๊ธฐ ์ํด ์๋์ฐจ๊ฐ ํ์ํ ๊ฒฝ์ฐ ์ํ๋ ๋ฉ์๋๋ฅผ ํธ์ถํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ์ด๋ฌํ ๋ฉ์๋ ๋ด์์ ์ผ์ด๋๋ ์ผ์ ๋ถํ์ํฉ๋๋ค. ์ค์ํ ๊ฒ์ ๋ชจ๋ ๊ฒ์ด ์ ์์ ์ผ๋ก ์๋ํ๋ค๋ ๊ฒ์
๋๋ค. ์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ ๊ตฌํ ์จ๊น์ ๋ํด ์ด์ผ๊ธฐํ์ต๋๋ค. ์๋ฐ์๋ ๋ฐ์ดํฐ ์๋ ๊ธฐ๋ฅ์ด ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ฒํฐ์ ์ธํฐ์ ๋ํ ์์
์์ ๊ทธ๊ฒ์ ๋ํด ์ผ์ง ๋ง , ์๊ธฐ์์ผ๋ ๋์์ง ์์ ๊ฒ์
๋๋ค. ์๋ฅผ ๋ค์ด Cat ํด๋์ค ๊ฐ ์์ต๋๋ค .
public class Cat {
public String name;
public int age;
public int weight;
public Cat(String name, int age, int weight) {
this.name = name;
this.age = age;
this.weight = weight;
}
public Cat() {
}
public void sayMeow() {
System.out.println("Meow!");
}
}
์ง๋ ์์
์์ ์ด ์์
์ ๋ฌธ์ ์ ์ด ๋ฌด์์ธ์ง ๊ธฐ์ตํ์ญ๋๊น? ๊ทธ๋ ์ง ์๋ค๋ฉด ๊ธฐ์ตํด ๋ด
์๋ค. ๋ฌธ์ ๋ ๋ฐ์ดํฐ(ํ๋)๊ฐ ๋ชจ๋ ์ฌ๋์๊ฒ ์ด๋ ค ์๋ค๋ ๊ฒ์
๋๋ค. ๋ค๋ฅธ ํ๋ก๊ทธ๋๋จธ๋ ๊ฐ์ค์น๊ฐ 0์ด๊ณ ๋์ด๊ฐ -1000๋
์ธ ์ด๋ฆ ์๋ ๊ณ ์์ด๋ฅผ ์ฝ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
public static void main(String[] args) {
Cat cat = new Cat();
cat.name = "";
cat.age = -1000;
cat.weight = 0;
}
์ด ์ํฉ์์ ๋๋ฃ ์ค ํ ๋ช
์ด ์๋ชป๋ ์ํ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์๋์ง ์ฃผ์ ๊น๊ฒ ์ถ์ ํ ์ ์์ง๋ง ์ด๋ฌํ ์๋ชป๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๊ฐ๋ฅ์ฑ์กฐ์ฐจ ์ ๊ฑฐํ๋ ๊ฒ์ด ํจ์ฌ ์ข์ต๋๋ค. 
- ์ก์ธ์ค ์์ ์( ๊ฐ์ธ, ๋ณดํธ, ํจํค์ง ๊ธฐ๋ณธ๊ฐ );
- ๊ฒํฐ์ ์ธํฐ.
์บก์ํ๋ ๋ช ๊ฐ์ง ์ค์ํ ์ด์ ์ ์ ๊ณตํฉ๋๋ค.
- ์ฌ๋ฐ๋ฅธ ๊ฐ์ฒด ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํฉ๋๋ค. ์์์ ์ด์ ๋ํ ์๋ฅผ ๋ค์์ต๋๋ค. setter์ private ์์ ์ ๋๋ถ์ ์ฐ๋ฆฌ๋ ๊ฐ์ค์น๊ฐ 0์ธ ๊ณ ์์ด์ ๋ํด ํ๋ก๊ทธ๋จ์ ๋ณดํธํ์ต๋๋ค.
- ์ฌ์ฉ์ ์นํ์ ์ธ ์ธํฐํ์ด์ค. ์ฐ๋ฆฌ๋ ๋ฉ์๋๋ง ์ฌ์ฉ์์๊ฒ ๋ ธ์ถ๋ ์ํ๋ก ๋ก๋๋ค. ์ฌ์ฉ์๋ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ธฐ ์ํด ํธ์ถํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค์ด ์ด๋ป๊ฒ ์๋ํ๋์ง์ ๋ํ ์ธ๋ถ ์ฌํญ์ ํ๊ตฌํ ํ์๊ฐ ์ ํ ์์ต๋๋ค.
- ์ฝ๋ ๋ณ๊ฒฝ์ ์ฌ์ฉ์์๊ฒ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค. ๋ฉ์๋ ๋ด์์ ๋ชจ๋ ๋ณ๊ฒฝ์ ์ํํฉ๋๋ค. ์ด๊ฒ์ ์ฌ์ฉ์์๊ฒ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค. ๊ทธ๋ค์ ๊ฐ์ค๋ฅผ ์ ์ฉํ๊ธฐ ์ํด vehicle.gas()๋ฅผ ์์ฑํ๊ณ , ๊ณ์ํด์ ๊ทธ๋ ๊ฒ ํ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๊ฐ gas() ๋ฉ์๋ ๋ด๋ถ์์ ๋ฌด์ธ๊ฐ๋ฅผ ๋ณ๊ฒฝํ๋ค๋ ์ฌ์ค์ ๋ณด์ด์ง ์์ต๋๋ค. ์ด์ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํ์ํ ๊ฒฐ๊ณผ๋ฅผ ์ป์ต๋๋ค.
๋ ์ฝ์ด๋ณด๊ธฐ: |
---|
GO TO FULL VERSION