코드스테이츠 백엔드 11일차 회고록
배운점
1. 상속(Extends)
- 상위 클래스의 기능을 그대로 이어받아 재사용하는 것
- 코드의 재사용성을 높이고, 중복을 제거하여 생산성과 유지보수를 높힌다
- 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있다
- 상속 구조가 복잡해지면 오히려 보수하기 힘들어 질 수 있다
클래스 간의 관계는 ‘~은 ~이다’(상속관계) ‘~은 ~을 가지고 있다’(포함관계)로 확인 할 수 있다.
매소드 오버라이딩(Method Overriding)
- 상위 클래스로부터 상속받은 매소드와 동일한 이름의 매소드를 재정의하는 것
- 상위 클래스의 매소드를 하위 클래스에 맞게 변경하고자 할 때 사용된다
- 매소드의 선언부(메소드 이름, 매개 변수, 반환 타입)가 상위 클래스와 완전히 일치해야한다
- 접근 제어자의 범위가 상위 클래스의 매소드보다 같거나 넓어야 한다
- 예외는 상위 클래스의 매소드보다 많이 선언할 수 없다.
super와 super()
- super는 상위 클래스의 객체를 가르킨다
- super()는 상위 클래스의 생성자를 호출한다(this()와 사용방법 동일)
Object 클래스

- Object 클래스는 자바 클래스 상속계층도에서 최상위에 위치한 클래스이다
- extends를 하지 않으면 자동으로 Object 클래스를 상속한다
- 여러가지 유용한 매소드가 있다
2. 캡슐화
- 특정 객체 안에 속성과 기능을 캡슐로 만들어 데이터를 외부로부터 보호하는 것
- 데이터의 보호, 불필요한 노출을 방지하기 위해 캡슐화를 사용한다(정보은닉)
접근 제어자
| 접근 제어자 | 접근 제한 범위 |
|---|---|
| private | 동일 클래스에서만 접근 가능 |
| default | 동일 패키지 내에서만 접근 가능 |
| protected | 동일 패키지 + 다른 패키지의 하위 클래스에서 접근 가능 |
| public | 접근 제한 없음 |
- 접근 제어자는 단 하나만 선언 될 수 있다
- public > protected > default > private 순으로 정리된다
- 접근 제어자를 작성하지 않았을 경우 default 접근 제어자가 할당된다
getter와 setter 매소드
public void setter(int a) {
this.a = a;
}
public int getter() {
return this.a;
}
접근 지정자를 private로 설정해 놓으면 클래스 밖에서 변수나 매소드에 관여 할 수 없기 때문에 Getter와 Setter 매소드를 이용하여 접근 할 수 있도록 한다
느낀점
오늘은 상속과 캡슐화 방법에 대해 배웠다.
상속은 프로젝트 할 때 자주 사용해 본 적이 없어서
사실 이론으로만 알고 실습에서 사용 한 적은 별로 없었던 것 같다
그래도 큰 프로젝트를 하게 되면 사용하게 되지 않을까 생각한다.
캡슐화는 자주 사용했던 것 같다.
그중에 getter와 setter는 영혼의 단짝이라고 볼 수 있다.
getter와 setter를 자동으로 완성시켜 주는 기능도 있었던 걸로 기억한다.
객체지향 프로그래밍을 공부하면서 알고리즘 분야도 중요하지만
이런 개념과 틀을 세분화 시킬 수 있는 능력도 중요하다는 생각이든다.
빨리 프로젝트를 진행해보고 싶다,,,!!
댓글남기기