어떤 클래스를 작성할 것인가를 고민하기 전에 항상 어떤 객체가 필요한가를 고민한다.
무엇을 객체로 만들 건지 추려보고 그 객체를 생성할 수 있는 클래스를 생각 해본다.
객체 지향 프로그래밍의 핵심 목적은 어떤 변화가 발생했을 때 부수적으로 변경해야 되는 코드들의 범위를 합리적인 수준으로 관리하는 게 가장 중요한 목표이다.
캡슐화라는 것은 객체의 데이터뿐만이 아니라 객체의 내부 동작까지도 객체 내부로 감추고 최소한의 메서드만 제공하는 것 -> 객체 간 의존성이 줄어든다.
상속은 기존의 클래스를 재활용하고 코드의 중복을 없애기 위해 사용한다
포함(composite)은 상속처럼 클래스를 재사용할 수 있는 방법으로, 클래스의 멤버로 다른 클래스 타입의 참조변수를 선언하는 것
super : 상위 클래스의 인스턴스를 가리키는 것
super() : 상위 클래스의 생성자를 호출 하는 것
static이 없으면 인스턴스 메서드.
핵심이 뭔지는 알겠는데 막상 코드를 보고 만들어 보려고 하면 쉽지가 않다.
먼저 예제를 고쳐보고 따라 만들어보는 걸로.. 용어들도 안 헷갈리게 계속 봐줘야 할 거 같다 (깜지라도 써야 하나?)
잠을 많이 못자니 컨디션이 좋지도 않고 🥱 바깥 세상 어떻게 돌아가는지도 모르겠고 🧐
영화 올드보이가 생각나는 하루