์๋ฐํ๋ก๊ทธ๋๋ฐ1 10์ฃผ์ฐจ ๊ฐ์_ํ๊ธฐ
1์ฐจ์
4์ฅ ํด๋์ค์ ๊ฐ์ฒด
์ปดํจํฐ ์์ ๊ตฌํํ๊ณ ์ ํ๋ ์ค์ธ๊ณ ๋ชจ๋ ์ฌ๋ฌผ์ ๊ฐ์ฒด๋ผ๊ณ ํจ
๊ฐ์ฒด๋ ํน์ฑ state์ ํ๋ behavior๋ฅผ ๊ฐ์ง
๊ฐ์ฒด ์งํฅ์ ํน์ฑ
1. ์บก์ํ // ๊ฐ์ฒด๋ฅผ ์บก์๋ก ์ธ์ ์ธ๋ถ์ ์ ๊ทผ์ผ๋ก๋ถํฐ ๋ณดํธ
๊ฐ์ฒด ์ธ๋ถ์์๋ ๊ณต๊ฐ๋ ๋ฉ์๋๋ฅผ ํตํด ๋น๊ณต๊ฐ ๋ฉค๋ฒ์ ์ ๊ทผ
ํ๋์ ๋ฉ์๋๋ ๋ชจ๋ ํด๋์ค ๋ด์ ์ ์ธ
ํด๋์ค์ ๊ฐ์ฒด์ ๊ด๊ณ // ๋ถ์ด๋นต ํ๊ณผ ๋ถ์ด๋นต
ํด๋์ค class // ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ธฐ ์ํ ํ
๊ฐ์ฒด object // ํด๋์ค ๋ชจ์๋๋ก ์์ฑ๋ ์ค์ฒด instance
// ํ๋ก๊ทธ๋จ ์คํ ์ค์ ์์ฑ๋๋ ์ค์ฒด
// ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ฐ๋ ๊ตฌ์ฒด์ ์ธ ์ค์ฒด
2. ์์ // ํ์ ํด๋์ค๊ฐ ์์ ํด๋์ค์ ์์ฑ์ ๋ชจ๋ ๊ฐ์ง๊ณ , ๊ธฐ๋ฅ ํ์ฅ
ํ์ extends ์์ // ์์->๋ถ๋ชจ, ํ์->์์, ์๋ธ->์ํผ
3. ๋คํ์ฑ // ๊ฐ์ ์ด๋ฆ์ ๋ฉ์๋๊ฐ ํด๋์ค๋ ๊ฐ์ฒด์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ๋์
ex) speak(); // ๊ฐ์์ง๋ ๋ฉ๋ฉ, ๊ณ ์์ด๋ ์ผ์น, ๋ญ์ ๊ผฌ๊ผฌ๋
๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ // ๊ฐ์ ์ด๋ฆ์ด์ง๋ง ๋งค๊ฐ๋ณ์์ ํ์ ์ด๋ ๊ฐ์๊ฐ ๋ฌ๋ผ ๊ตฌ๋ถ
๋ฉ์๋ ์ค๋ฒ๋ผ์ด๋ฉ // ์ํผ ํด๋์ค์ ๋ฉ์๋๋ฅผ ์๋ธ ํด๋์ค๋ง๋ค ๋ค๋ฅด๊ฒ ๊ตฌํ
2์ฐจ์
๊ฐ์ฒด ์งํฅ์ ๋ชฉ์
1. ์ํํธ์จ์ด์ ์์ฐ์ฑ ํฅ์
2. ์ค์ธ๊ณ์ ๋ํ ์ฌ์ด ๋ชจ๋ธ๋ง
1
2
3
|
public class Circle { // ํด๋์ค ์ ์ ์์
// ์ ๊ทผ๊ถํ class ํค์๋ ํด๋์ค ์ด๋ฆ
} // ํด๋์ค ์ ์ ๋
|
cs |
public ์ ๊ทผ์ง์ ์ // ๋ค๋ฅธ ๋ชจ๋ ํด๋์ค์ ์ ๊ทผ ํ์ฉ
๊ฐ์ฒด ์์ฑ
1. ๊ฐ์ฒด์ ๋ํ ๋ ํผ๋ฐ์ค ๋ณ์ ์ ์ธ
2. new ํค์๋๋ก ๊ฐ์ฒด ์์ฑํ์ฌ ๋ ํผ๋ฐ์ค ๋ณ์์ ๋์
// ํด๋์ค ํ์
์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น, ์์ฑ์ ์ฝ๋ ์คํ๋จ
// new ํค์๋๋ ๊ฐ์ฒด์ ์์ฑ์ ํธ์ถ
๊ฐ์ฒด ๋ฉค๋ฒ์ ์ ๊ทผ // ๋ ํผ๋ฐ์ค.๋ฉค๋ฒ == ๊ฐ์ฒด์ด๋ฆ.๋ฉค๋ฒ์ด๋ฆ
1
2
|
Circlce pizza = new Circle();
pizza.radius = 10;
|
cs |
3์ฐจ์
์์ฑ์
1. ํด๋์ค ์ด๋ฆ๊ณผ ๋์ผํ ์ด๋ฆ์ ๋ฉ์๋
2. ๊ฐ์ฒด๊ฐ ์์ฑ๋ ๋ ์๋์ผ๋ก ๋ฑ ํ๋ฒ ํธ์ถ // ๊ทธ๋ฌ๋ฏ๋ก ํด๋์ค์ ํ ๊ฐ ์ด์ ์์ด์ผ ํจ
3. ๊ฐ๋ฐ์๊ฐ ๊ฐ์ฒด๋ฅผ ์ด๊ธฐํํ๋๋ฐ ํ์ํ ์ฝ๋ ์์ฑ
4. ์์ฑ์ ์ฌ๋ฌ๊ฐ ์์ฑ๊ฐ๋ฅ // ์ค๋ฒ๋ก๋ฉ
5. ๋ฆฌํดํ์
์ง์ ํ ์ ์์
public Circle() {}
๊ธฐ๋ณธ ์์ฑ์ default constructor
๋งค๊ฐ๋ณ์ ์๊ณ , ์๋ฌด ์์
์์ด ๋จ์ ๋ฆฌํดํ๋ ์์ฑ์
ํด๋์ค์ ์์ฑ์๊ฐ ํ๋๋ ์ ์ ๋์ง ์์ ๊ฒฝ์ฐ, ์ปดํ์ผ๋ฌ๊ฐ ์๋์ผ๋ก ์ฝ์
ํด๋์ค์ ์์ฑ์๊ฐ ํ๋๋ผ๋ ์ ์๋ ๊ฒฝ์ฐ, ์ปดํ์ผ๋ฌ๊ฐ ๊ธฐ๋ณธ ์์ฑ์๋ฅผ ์๋์ผ๋ก ์ฝ์
ํ์ง ์์
// ์ด ๊ฒฝ์ฐ, ๊ธฐ๋ณธ ์์ฑ์ ํธ์ถ์ด ํ์ํ ๋ถ๋ถ์์ ์ปดํ์ผ ์ค๋ฅ ๋ฐ์
this() // ํด๋์ค ๋ด์ ๋ค๋ฅธ ์์ฑ์๋ฅผ ํธ์ถ
์์ฑ์ ๋ด์์๋ง ์ฌ์ฉ ๊ฐ๋ฅ
๋ฐ๋์ ์์ฑ์ ์ฝ๋์ ์ ์ผ ์ฒ์์ ์ํ
์๋ฐ์๋ ํฌ์ธํฐ๋ผ๋ ๊ฐ๋
์ด ์๋ค.
this์ this()๋ ์์ ๋ค๋ฅธ ๊ฒ์ด๋ผ๊ณ ์๊ฐํด๋ผ
this // ๊ฐ์ฒด ์์ ์ ๋ํ ๋ ํผ๋ฐ์ค
์๊ธฐ ์์ ์ ๊ฐ๋ฆฌํด
์ด๋ค ๊ฐ์ฒด๋ ์ง this๋ผ๋ ํ๋๊ฐ ์๋์ผ๋ก ์์ฑ๋จ
this.๋ฉค๋ฒ ํํ๋ก ๋ฉค๋ฒ ์ ๊ทผ
1
2
|
public Circle(int r) {radius = r;}
public Circle(int radius) {this.radius = radius;}
|
cs |
this๊ฐ ํ์ํ ๊ฒฝ์ฐ
1. ๊ฐ์ฒด์ ๋ฉค๋ฒ ๋ณ์์ ๋ฉ์๋ ๋ณ์์ ์ด๋ฆ์ด ๊ฐ์ ๊ฒฝ์ฐ
2. ๋ค๋ฅธ ๋ฉ์๋ ํธ์ถ์ ๊ฐ์ฒด ์์ ์ ๋ ํผ๋ฐ์ค๋ฅผ ์ ๋ฌํ ๋
3. ๋ฉ์๋๊ฐ ๊ฐ์ฒด ์์ ์ ๋ ํผ๋ฐ์ค๋ฅผ ๋ฐํํ ๋
๊ฐ์ฒด ์นํ // ๊ฐ์ฒด๊ฐ ๋ณต์ฌ๋๋ ๊ฒ์ด ์๋ ๋ ํผ๋ฐ์ค๊ฐ ๋ณต์ฌ๋๋ค.
1
2
3
4
5
|
Circle ob1 = new Circle();
Circle ob2 = new Circle();
Circle s;
s = ob2;
ob1 = ob2;
|
cs |
'1. Java ์๋ฐ > 1_0. ์ฑ , ๊ฐ์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๋ฐํ๋ก๊ทธ๋๋ฐ1] 12์ฃผ์ฐจ ๊ฐ์_ํ๊ธฐ (0) | 2022.05.18 |
---|---|
[์๋ฐํ๋ก๊ทธ๋๋ฐ1] 11์ฃผ์ฐจ ๊ฐ์_ํ๊ธฐ (0) | 2022.05.18 |
[์๋ฐํ๋ก๊ทธ๋๋ฐ1] 9์ฃผ์ฐจ ๊ต์ฌ_์ ๋ฆฌ (0) | 2022.05.18 |
[์๋ฐํ๋ก๊ทธ๋๋ฐ1] 7์ฃผ์ฐจ ๊ต์ฌ_์ ๋ฆฌ (0) | 2022.05.13 |
[์๋ฐํ๋ก๊ทธ๋๋ฐ1] 6์ฃผ์ฐจ ๊ต์ฌ_์ ๋ฆฌ (0) | 2022.05.13 |