
์กฐํฉ ๋ฉ์๋
์ถ์ํ ์์ค์ด ๋น์ทํ ๋ฉ์๋ ํธ์ถ๋ก ํ๋์ ๋ฉ์๋๋ฅผ ๊ตฌ์ฑํ๋ผ
๊ด๋ จ๋ ์ฝ๋๋ง ๋ชจ์๋๊ณ ๊ด๋ จ์ฑ์ด ๋จ์ด์ง๋ ์ฝ๋๋ ๋ถ๋ฆฌ!
๋ฉ์๋๋ฅผ ๊ตฌ์ฑํ ๋๋ ์ถ์ธก์ด ์๋ ์ฌ์ค์ ๊ทผ๊ฑฐํ๋ผ
-> ์ผ๋จ ๋์ํ๋ ์ฝ๋๋ฅผ ๋ง๋ค๊ณ ๊ตฌ์ฑ ๋ฐฉ์ ๊ฒฐ์
์๋ ์ ์ํ ์ด๋ฆ
๋ฉ์๋์ ์ด๋ฆ์ ํตํด์ ์๋๋ฅผ ์ ๋ฌํ๊ณ ๊ทธ ์ธ ์ ๋ณด๋ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์ ๋ฌํ๋ผ
Customer.linearSearch(String id) // x
Customer.find(String id) // o
๋ฉ์๋ ๊ฐ์์ฑ
๋ฉ์๋๋ฅผ ์ ๊ฒ ๋ ธ์ถ์ํค๋ฉด ์ ์ฐ์ฑ์์ ์ด๋์ ์ป์ ์ ์์
๊ฐ์์ฑ์ ์ ํํ ๋ ๊ณ ๋ คํด์ผํ ์ฌํญ ๋๊ฐ์ง
1. ๋ฏธ๋์ ์ ์ฐ์ฑ
2. ๊ฐ์ฒด ์ฌ์ฉ ๋น์ฉ
๋จผ์ ์ ํ์ ์ธ ๊ฐ์์ฑ์ ์ ํํ๊ณ ํ์์ ๋ฐ๋ผ ์ฐจ์ธฐ ํ์ฅ์ํค์ !
์ค๋ฒ๋ก๋
๋ฉ์๋ ์ค๋ฒ๋ก๋๋ ํ๋ผ๋ฏธํฐ ํ์ ๋ง ๋ค๋ฅผ ๋ฟ, ๊ฐ์ ์ฐ์ฐ์ ์ํํด์ผํ๋ค.
์๋๊ฐ ๋ค๋ฅด๋ค๋ฉด ์๋ก์ด ์ด๋ฆ์ ๊ฐ๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ !!
๋ฉ์๋ ๋ฐํ ํ์
๊ตฌ์ ํด๋์ค๊ฐ ๊ฐ์ ์ธํฐํ์ด์ค๋ฅผ ๊ณต์ ํ๋ค๋ฉด ์ ์ฌ์ ๊ณผ ์ฐจ์ด์ ์ ๋ช ํํ๊ฒ ๋ํ๋ผ ์ ์๋ค.
๋ฉ์๋ ์ฃผ์
์ฃผ์์ ์ ๋ณด๋ฅผ ์ค๋ณต์ผ๋ก ๋ํ๋ผ ์ ์๋ค.
๋ฐ๋ผ์ ์ฝ๋๋ง์ผ๋ก ๋ถ๋ช ํ์ง ์์ ์ ๋ณด๋ ์ฃผ์์ ์ฌ์ฉํ๋ผ
ํ์ง๋ง ์ฃผ์์ ์ฝ๋์์ ์ผ๊ด์ฑ์ ์ ์งํ๊ธฐ ์ํด ๋ ธ๋ ฅ์ด ๋ ๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ด๋ฐ ๋ ธ๋ ฅ์ ๊ฐ์ํ ๋งํผ ๊ฐ์น๊ฐ ์์ด์ผํ๋ค.
๋์ฐ๋ฏธ ๋ฉ์๋
๋น์ฅ ๊ด๋ จ๋๊ฐ ๋จ์ด์ง๋ ์ธ๋ถ ๊ตฌํ์ ์จ๊ธฐ๊ณ ๋ฉ์๋ ์ด๋ฆ์ ํตํด ํ๋ก๊ทธ๋๋จธ์ ์๋๋ฅผ ๋ํ๋์ผ๋ก์จ,
๋ณต์กํ๊ณ ๊ฑฐ๋ํ ์ฐ์ฐ ์ฝ๋๋ฅผ ์ฝ๊ธฐ ์ข๊ฒ ๋ง๋ค ์ ์๋ค.
๋๋ฒ๊ทธ ์ถ๋ ฅ ๋ฉ์๋
toString() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ์ฒด๋ฅผ ๋ฌธ์์ด๋ก ๋ํ๋ผ ์ ์๋ค.
ํ๋ก๊ทธ๋๋จธ์๊ฒ ์ ์ฉํ ๊ฐ์ฒด์ ์ ๋ณด๋ฅผ ์๋ ค์ฃผ๊ธฐ ์ํด ์ฌ์ฉํ์ !
๋ณํ
๋ณํ ๋ฉ์๋
์ ์ฌํ ํ์ ์ ๊ฐ์ฒด ๊ฐ ๋ณํ์ ํํฌํ๊ธฐ ์ํด, ๊ธฐ์กด ๊ฐ์ฒด์ ๋ฉ์๋๋ฅผ ์ถ๊ฐํด์ ๋ณํ์ ๋ํ๋ผ ์ ์๋ค.
class Polar {
Cartesian asCartesian() {
...
}
}
๋ณํ ์์ฑ์
์๋ณธ ๊ฐ์ฒด๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ์ทจํด์ ๋์ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค.
๊ตฌ์ ํด๋์ค๊ฐ ์๋ ํด๋์ค๋ฅผ ๋ฐํํด์ ๋ณํ์ ๊ตฌํํ๊ณ ์ถ๋ค๋ฉด , ๋ณํ ์์ฑ์๋ฅผ ์ข๋ ์ผ๋ฐ์ ์ธ ํ์ ์ ๋ฐํํ๋ ๊ณต์ฅ ๋ฉ์๋๋ก ํํํ ์ ์๋ค.
์์ฑ
์๋ฏธ์๋ ๊ฐ์ฒด ์์ฑ์ ์ํด์๋ ๋ช ํํ๊ณ ์ง์ ์ ์ธ ํํ๊ณผ ์ ์ฐ์ฑ ์ฌ์ด์์ ๊ท ํ์ ์ก์์ผํ๋ค.
์๊ฒฐ ์์ฑ์
๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ด ์ฌ๋ฌ๊ฐ์ง๋ผ๋ฉด , ๊ฐ ๊ฒฝ์ฐ๋ง๋ค ์ ๋๋ก ๋ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ ์์ฑ์๋ฅผ ์ ๊ณตํ๋ผ
niew Rectangle(0,0,50,200)
์ด์๊ฐ์ด 4๊ฐ์ ์ธ์๋ฅผ ์ทจํ๋ ์์ฑ์๊ฐ ์๋ค๋ฉด, 4๊ฐ์ ์ธ์๊ฐ ํ์ํ ๊ฒ์ด๋ผ๋ ์ฌ์ค์ ๋ฐ๋ก ์ ์ ์๋ค.
๊ณต์ฅ ๋ฉ์๋
๊ณต์ฅ๋ฉ์๋๋ ์ถ์ ํ์ ์ ๋ฐํํ ์ ์๊ณ ๋ฉ์๋ ๋ค์ด๋ฐ์ ํตํด ์๋๋ฅผ ๋ช ํํ๊ฒ ํ ์ ์๋ค.
ํ์ง๋ง ๋ณต์ก์ฑ์ด ์ฆ๊ฐํ๋ฏ๋ก ์ด๋์ด ์์ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉํด์ผํ๋ค !
Rectangle.create(0,0,50,200);
๋ด๋ถ ๊ณต์ฅ
getX() {
if (x== null){
x = computeX();
return x;
}
}
์ปฌ๋ ์ ์ ๊ทผ์ ๋ฉ์๋
์ฌ์ฉ์๊ฐ ์ปฌ๋ ์ ์ ์ง์ ์กฐ์ํ๊ฒ ๋๋ฉด ์ํํ๋ค !
์์ ํ ์ ์๋ ์ปฌ๋ ์ ํํ๋ก ๋ฐ๊ฟ์ ๋ฐํํ์ !
Iterator getBooks() {
return books.iterator();
}
๋ถ๋ฆฐ ์ค์ ๋ฉ์๋
๋ถ๋ฆฐ ์ํ๋ฅผ ์ค์ ํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
void setValid(boolean newState) {
...
}
์ง์ ๋ฉ์๋
๊ฐ์ฒด๊ฐ ๋ค๋ฅธ ๊ฐ์ฒด์ ๊ฒฐ์ ์ ๋์์ผ ํ ๊ฒฝ์ฐ์๋ be๋์ฌ๋ have๋์ฌ๋ฅผ ์ด์ฉํ ์ง์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ผ
๋๋ฑ์ฑ ๋ฉ์๋
๊ฐ์ฒด์ ๋์ผ์ฑ์ด ์๋ ๋๋ฑ์ฑ์ ๋น๊ตํด์ผ ํ๋ ๊ฒฝ์ฐ equals์ hashcode๋ฅผ ๊ตฌํํ๋ผ
https://cb036133.tistory.com/127
equals & hash code ์ ์ด๋ฅผ ๊ฐ์ด ์ฌ์ ์ ํ๋ ์ด์
ํ๋ก๊ทธ๋๋จธ์ค ๋ฐฑ์๋ ๋ฐ๋ธ์ฝ์ค์์ ์งํํ Tech Log ํ๋ ๋ชฉ์ ์ผ๋ก ์ ์๋์์ต๋๋ค. 1. String ํด๋์ค์ equals & hashcode ์ํํธ์จ์ด ์ธ๊ณ์์๋ ๋ฌธ์์ด๋ ์ด์ํ ๋ฐฉ์์ผ๋ก ๊ด๋ฆฌํ๋ค. ๋ฐ๋ก ๋๋ฑ์ฑ์ ๋ณด
cb036133.tistory.com
์ฌ๊ธฐ ์์ฃผ ์ ๋ฆฌ๊ฐ ์ ๋ผ์๋ค !
์ทจ๋ ๋ฉ์๋
๊ฐ์ฒด ์ํ์ ๋ํ ์ ๊ทผ์ ํ์ฉํ๊ธฐ ์ํ ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ํ๋ฅผ ๋ฐํํ๋ ๋ฉ์๋๋ฅผ ๋ฐํํ๋ ๊ฒ์ด๋ค.
int getX() {
return x;
}
์ค์ ๋ฉ์๋
ํ๋ ๊ฐ์ ์ค์ ํ๋ ๋ฉ์๋๊ฐ ํ์ํ๋ค๋ฉด, ๋ค์๊ณผ ๊ฐ์ด set ์ ๋์ด๋ฅผ ๋ถ์ธ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
int setX(int newX) {
x = newX;
}
์์ ํ ๋ณต์ฌ
๊ฐ์ฒด๋ฅผ ๋ฐํํ๊ฑฐ๋ ์ ์ฅํ๊ธฐ ์ ์ ๋ณต์ฌ๋ณธ์ ๋ง๋๋ ๋ฐฉ์์ผ๋ก ์ด๋ฐ ๋ฌธ์ ๋ฅผ ํผํ ์ ์๋ค.
List<Books> getBooks() {
List<Books> results =.new ArrayList<Book>();
result.addAll(books);
return result;
}
List<Books> setBooks(List<Book> newBooks) {
books = new ArrayList<Books>();
books.addAll(newBooks);
}