티스토리 뷰
|
public 클래스의 데이터 필드를 공개하게 되면, 그 내부 표현을 변경할 수 없게 된다.
변경하면 이미 작성된 클라이언트 코드를 깨뜨리게 되기 때문이다.
public class Position {
public int x;
public int y;
}
//client 코드
Position ps = new Position();
ps.x = 10;
ps.y = 10;
//어떠한 요구사항에 의해서 x -> xx, y -> yy로 변경
public class Position {
public int xx;
public int yy;
}
//이 경우에 위에 작성된 클라이언트 코드는 깨지게 된다.
//하지만 Getter, Setter 를 이용해 구현한 경우 다음과 같이 클래스 내부에서 클라이언트 코드가 깨지지 않도록 수정할 수 있다
public int getX() {
return xx;
}
따라서 private으로 선언하고 Getter, Setter 메서드를 선언해주도록 하자.
'JAVA > Effective Java' 카테고리의 다른 글
규칙16 상속하는 대신 구상하라 (0) | 2018.12.19 |
---|---|
규칙15 변경 가능성을 최소화하라 (0) | 2018.12.19 |
규칙13 클래스와 멤버의 접근 권한은 최소화 해라 (0) | 2018.12.19 |
규칙12 Comparable 구현을 고려하라 (0) | 2018.12.19 |
규칙11 clone을 재정의할 때는 신중하라 (0) | 2018.12.19 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- HashMap
- AbstractMethodError
- Lazy
- msyql-connector-java
- N+1
- Flux
- reative
- mariada-connector
- notify()
- mariadb-connector-j
- spring cloud gateway
- Seperate Chaining
- RoutePredication
- referencedColumnName
- router
- notifyAll()
- GlobalFilter
- reactor
- DyanomoDB
- ResultSet
- RouteDefinition
- aurora
- wait()
- circurit breaker
- getBoolean
- MariaDB
- dynamodb
- rate limit
- ConcurrentHashMap
- custom config data convertion
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함