
๊ฐ์ฒด๋ ์ธ๋ถ์ ๋๋ฌ๋๋ ํ์์ ํ์๋ฅผ ์ง์ํ๊ธฐ ์ํ ์ํ๋ฅผ ๋ฌถ์ด์ฃผ๋ ํธ๋ฆฌํ ๋จ์๋ค.
์ํ
- ์ํ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด์ ์ ์ฌํ ์ํ๋ฅผ ๋ฌถ์ด์ ๊ด๋ฆฌํ๊ณ ๊ฐ ์ํ๋ ๋ณ๋๋ก ๊ด๋ฆฌํด์ผํ๋ค.
๋ ๊ฐ์ ์ํ๊ฐ ์ ์ฌํ ์ง ์๋ ค๋ฉด
1. ๋ ๊ฐ์ ์ํ๊ฐ ๋์ผํ ์ฐ์ฐ ์์์ ์ฌ์ฉ๋๋๊ฐ?
2. ๋์ผํ ์์ ์ ์์ฑ๋๊ณ ์๋ฉธ๋๋๊ฐ?
๋ฅผ ํ์ธํ๋ฉด ๋๋ค.
์ง์ ์ ๊ทผ
- ์ง์ ์ ๊ทผ์ ์ฅ์ ์ ๋ช ํ์ฑ์ด๋ค.
x=10 // ๋งค์ฐ๋งค์ฐ ๋ช
ํํ๋ค.
ํ์ง๋ง ์ฝ๋๋ฅผ ํตํด ์์ธํ ๋ด์ฉ์ ์๋ ค์ฃผ๊ธฐ๋ ์ด๋ ต๋ค.
์๋ฅผ ๋ค์ด
doorRegister = 1; // ์ง๊ด์ ์ด์ง ์์
door.open(); // ๋งค์ฐ ์ง๊ด์ ์
๋ฐ๋ผ์ ์ง์ ์ ๊ทผ์ด ๋ง๋ค๋ฉด ์ํํ ์ปค๋ฎค๋์ผ์ด์ ์ ๋ฐฉํดํ ์ ์๋ค.
๊ฐ์ ์ ๊ทผ
- ๋ช ํ์ฑ๊ณผ ์ง์ ์ฑ์ ํฌ์ํด์ ์ ์ฐ์ฑ์ ์ป์ ์ ์๋ค.
- 2๊ฐ ์ด์์ ๋ฐ์ดํฐ ๊ฐ์ ์์กด ๊ด๊ณ๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ ๋งค์ฐ ์ ์ฉํ๋ค.
void setValue(int number){
this.number = number;
value = width * number;
}
๊ณต์ฉ ์ํ
- ๊ฐ์ ๋ฐ์ดํฐ ์์๋ ํด๋์ค์ ํ๋๋ฅผ ์ ์ธํด์ ์ฌ์ฉํ๋ฉด ์ข๋ค.
- ๊ฐ ๊ฐ์ฒด์ ๊ณต์ฉ ์ํ๋ ๋ชจ๋ ๋ฒ์์ ์๋ช ๊ธฐ๊ฐ์ด ๊ฐ์์ผํ๋ค.
class Point {
int x;
int y;
}
๊ฐ๋ณ ์ํ
- ๋ฐ์ดํฐ ์์์ ์ด๋ฆ์ ํค๋กํ๊ณ ๊ฐ์ ๋ฐ์ดํฐ๋ก ํ๋ ๋งต์ผ๋ก ํํํ๋ค.
- ์ ์ฐํ๊ธด ํ์ง๋ง ์ปค๋ฎค๋์ผ์ด์ ์ด ์ด๋ ต๋ค.
- ๊ฐ ํ๋์ ์ํ์ ๋ฐ๋ผ ๋ค๋ฅธ ํ๋๋ฅผ ํ์๋ก ํ๋ ๊ฒฝ์ฐ ์ ์ฉํ๋ค.
์ธ์ฌ ์ํ
์ด๋ค ๊ฐ์ฒด์ ๊ด๋ จ๋ ํน์ ๋ชฉ์ ์ ๋ณด๋ ๊ฐ์ฒด๊ฐ ์๋๋ผ ํ์๋ก ํ๋ ๋ถ๋ถ์ ๋๋ ๊ฒ ๋ซ๋ค.
๋ค๋ง ์ธ์ฌ ์ํ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ์ฒด์ ๋ณต์ฌ๊ฐ ์ด๋ ค์์ง๋ค.
๋ณ์
๋๋ถ๋ถ์ ๊ฒฝ์ฐ์๋ ์ง์ญ ๋ณ์๋ฅผ ์์ฉํ๊ณ ๊ฐ๊ฐํ ์ ์ ๋ณ์์ ์ ์ฉ ๋ณ์๋ฅผ ์ฌ์ฉํด์ ๊ฐ์ฒด ๊ฐ์ ์์กด์ฑ์ ์ค์ด๋ ๊ฒ์ด ์ข๋ค.
๋ณ์์ ์ข ๋ฅ๋ฅผ ์ค์ด๋ฉด ๋ฌธ๋งฅ๋ง์ผ๋ก๋ ์ฝ๊ฒ ๊ตฌ๋ถํ ์ ์๋ค.
๋ณ์์ ์๋ช ์๊ฐ์ ๋ณ์์ ๋ฒ์์ ๊ฐ๊น์ด๊ฒ ์ข๋ค.
๊ฐ์ ๋ฒ์์์ ์ ์๋๋ ๋ณ์๋ค์ ๋ชจ๋ ๊ฐ์ ์๋ช ๊ธฐ๊ฐ์ ๊ฐ์ ธ์ผํ๋ค.
์ง์ญ๋ณ์
์ง์ญ ๋ณ์๋ ๊ฐ๊ธ์ ์ต์ ๋ฒ์ ๋ด์์ ์ ์ธํ๋ผ
์ง์ญ ๋ณ์๋ ๋์ฐ๋ฏธ ๋ฉ์๋๋ก ๋ฐ๊ฟ ์ ์๋ค.
์ด๋ ์ฐ์ฐ์ ํ์ํ ํํ์ ๋ฉ์๋ ๋ด์ฉ์ด ๋๊ณ , ๋ณ์ ์ด๋ฆ์ ๋ฉ์๋ ์ด๋ฆ์ด ๋๋ค.
ํ๋
ํ๋์ ๋ฒ์์ ์๋ช ๊ธฐ๊ฐ์ ํ๋๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฐ์ฒด์ ๊ฐ๋ค.
๋ง์ฝ ํ๋๋ฅผ ๊ฐ์ฅ ์์ ์ ์ธํ๋ฉด , ์ด๋ป๊ฒ ์ฌ์ฉ๋ ์ง์ ๋ํ ๋ฌธ๋งฅ์ ์ ๊ณตํด์ค ์ ์๋ค.
๋ค์ ์ ์ธํ๋ค๋ฉด ์ค์์ฑ์ด ์๋์ ์ผ๋ก ๋จ์ด์ง๋ค๋ ๊ฒ์ ์์ํ๋ค.
๋ถ๋ฆฐ ํ๋๊ทธ๋ฅผ ํตํด "๊ฐ์ฒด๊ฐ ๋ ๊ฐ์ง ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๋์ํ๋ค" ๋ ๊ฒ์ ๋ดํฌํ ์ ์๋ค.
ํ๋ผ๋ฏธํฐ
ํ๋์ ๊ฐ์ฒด์์ ๋ค๋ฅธ ๊ฐ์ฒด์ ๋ํ ์ฌ๋ฌ ๋ฉ์์ง๊ฐ ๊ฐ์ ํ๋ผ๋ฏธํฐ๋ฅผ ํ์๋ก ํ๋ค๋ฉด , ํ๋ผ๋ฏธํฐ๋ฅผ ํธ์ถ๋๋ ๊ฐ์ฒด์ ํฌํจํ๋ผ
Server s = new Server();
s.a(this);
s.b(this);
s.c(this);
์ด ์ฝ๋๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝํ ์ ์๋ค.
Server s = new Server(this);
s.a();
s.b();
s.c();
์ด๋ ๊ฒ ํจ์ผ๋ก์จ ์์กด์ฑ์ ์ค์ผ ์ ์๋ค.
์ต์ ํ๋ผ๋ฏธํฐ
๋ฐ๋์ ํ์ํ ํ๋ผ๋ฏธํฐ๋ฅผ ์์์ ์ ๋ฌํ๊ณ , ์ต์ ํ๋ผ๋ฏธํฐ๋ ๋ค์ ์ ๋ฌํ๋ค.
public Server();
public Server(int port);
public Server(int port, int log)
์ด๋ฅผ ๋ง์๊ฒฝ์ ํ๋ผ๋ฏธํฐ ํจํด์ด๋ผ๊ณ ๋ ํ๋ค.
๊ฐ๋ณ ์ธ์
์๋์ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์์์ ์์ ์ธ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉ์๋๋ฅผ ํธ์ถํ ์ ์๋ค.
method(Class... classes)
ํ๋ผ๋ฏธํฐ ๊ฐ์ฒด
์ฌ๋ฌ ๊ฐ์ ํ๋ผ๋ฏธํฐ๊ฐ ํจ๊ป ์ฌ๋ฌ ๋ฉ์๋๋ก ์ ๋ฌ๋๋ค๋ฉด, ์ด๋ค์ ํ๋๋ก ๋ฌถ์ด์ ํ๋์ ๊ฐ์ฒด๋ก ๋ง๋ค ์ ์๋ค.
์๋ฅผ ๋ค์ด x,y,heigh,width ๋ฅผ ๋ฌถ์ด์ ํ๋ผ๋ฏธํฐ๋ก ๋ง๋ค ์ ์๋ค.
setOuterBounds(x, y, width, height)
setOuterBounds(bounds)
ํ๋ผ๋ฏธํฐ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๋๊ฐ ์งง์์ง๊ณ ์๋๋ฅผ ๋ช ํํ ์ ๋ฌํ ์ ์๋ค.
๋ํ ํด๋น ํ๋ผ๋ฏธํฐ๋ค์ด ๋ฐ์ ํ ์ฐ๊ด์ฑ์ ๊ฐ์ง๊ณ ์๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค ์ ์๋ค.
ํ์ง๋ง ๋ง์ฝ ๊ฐ์ฒด์ ์์ฑ์ผ๋ก ์ธํด ์ฑ๋ฅ ์ ํ๊ฐ ์ผ์ด๋๋ค๋ฉด ํ๋ผ๋ฏธํฐ ๊ฐ์ฒด๋ฅผ ์์ ๋ ์ชฝ์ผ๋ก ์์ ํ๋ฉด ๋๋ค.
์์
๋ณํํ์ง ์๋ ๋ฐ์ดํฐ๋ฅผ static final์ ํตํด ์ ์ธํ๊ณ ๊ทธ ๋ณ์๋ฅผ ์ฐธ์กฐํ๊ฒ๋ ํ๋ ๊ฒ์ด ์ข๋ค.
์ด๊ธฐํ
์ด๊ธฐํ๋ ๋ณ์๊ฐ ์ฌ์ฉ๋๊ธฐ ์ ์ ์๊ณ ์๋ ์ํ๋ก ๋ง๋๋ ์์ ์ด๋ค.
์ด๊ธฐํ๋ ๊ฐ๊ธ์ ์ ์ธ๊ณผ ํจ๊ป ํ๋ ๊ฒ์ด ์ข๋ค.
๋ง์ฝ ์ด๊ธฐํ์ ๋๋ ๋น์ฉ์ด ๋น์ธ๋ค๋ฉด ์์ฑ๊ณผ ์ด๊ธฐํ๋ฅผ ๋ถ๋ฆฌํ๋ ๊ฒ์ด ์ข๋ค..
์ด์ฑ์ ์ด๊ธฐํ(eager)
๋ชจ๋ ๋ณ์๊ฐ ์ด๊ธฐํ ์ดํ์ ์ฌ์ฉ๋๋ ๊ฒ์ ๋ณด์ฅํ ์ ์๋ค.
๋ณ์๊ฐ ์ ์ธ๋๊ฑฐ๋ ์์ฑ๋์๋ง์ ์ด๊ธฐํํ๋ค.
์ ์ธ๋ฌธ์์ ๋ณ์๋ฅผ ์ด๊ธฐํํ๋ฉด ์ ์ธ ํ์ ๊ณผ ์ค์ ํ์ ์ ์ฝ๊ฒ ํ์ธํ ์ ์๋ค.
List<Integer> number = new ArrayList<>();
์ ์ธ๋ฌธ์์ ํ๋๋ฅผ ์ด๊ธฐํํ ์ ์๋ค๋ฉด ์์ฑ์์์ ์ด๊ธฐํํ๋ผ
class Point {
int x,y;
Point(int x,int y){
this.x = x;
this.y = y;
}
}
๊ฒ์ผ๋ฅธ ์ด๊ธฐํ(lazy)
์ด๊ธฐํ ๋น์ฉ์ด ํฌ๊ฑฐ๋ ๋น์ฉ ๋ถ๋ด์ ๋ฆ์ถ๊ณ ์ถ๋ค๋ฉด ๋ฉ์๋๊ฐ ํธ์ถ๋ ๋ ๊ฐ์ฒด๋ฅผ ์ด๊ธฐํํ๋ฉด ๋๋ค.
'๊ฐ๋ฐ ์์ > ์ผํธ๋ฐฑ ๊ตฌํ ํจํด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ผํธ๋ฐฑ ๊ตฌํ ํจํด 9์ฅ - ์ปฌ๋ ์ (1) | 2023.10.09 |
---|---|
์ผํธ๋ฐฑ์ ๊ตฌํ ํจํด 7์ฅ - ํ์ (0) | 2023.10.02 |
์ผํธ๋ฐฑ์ ๊ตฌํ ํจํด 5์ฅ - ํด๋์ค(2) (0) | 2023.09.08 |
์ผํธ๋ฐฑ์ ๊ตฌํ ํจํด 5์ฅ - ํด๋์ค(1) (0) | 2023.09.08 |
์ผํธ๋ฐฑ์ ๊ตฌํ ํจํด 3์ฅ - ํ๋ก๊ทธ๋๋ฐ ์ด๋ก (0) | 2023.09.03 |