[TIL] 2022-01-14

nathan·2022년 1월 16일
0

TIL

목록 보기
10/34

객체지향 프로그래밍

클래스와 오브젝트 그리고 인스턴스

  • 클래스는 객체를 만들어 내기 위한 설계도이며, 멤버 변수와 메서드들의 집합이다.
  • 오브젝트는 클래스의 인스턴스라고 부르며, 모든 인스턴스를 대표 하는 포괄적 의미를 지닌다.
    • OOP의 관점에서 클래스의 타입으로 선언되었을 때, "객체"라고 부른다.
  • 인스턴스는 구현된 구체적인 실체이며, 실체화 된 인스턴스는 메모리에 할당된다.

상속과 다형성

  • 상속은 기존의 클래스로 새로운 클래스를 작성하는 것이다.(코드의 재사용)
    • 두 클래스를 부모와 자식으로 관계를 맺어준다고 생각하면 된다.
    • 자손은 조상의 모든 멤버를 상속받는다.
    • 자손의 멤버 개수는 조상보다 적을 수 없으며, 자손의 변경은 조상에 영향을 미치지 않는다.
  • 다형성은 여러가지 형태를 가질 수 있는 능력으로써, 조상 타입 참조 변수로 자손 타입의 객체를 다루는 것을 말한다. 이로 인해 타입이 불일치해도 사용이 가능해진다.

this()와 super()의 차이

  • this() : 생성자로써, 같은 클래스 내 생성자에서 다른 생성자를 호출할 때 사용한다.
    • 다른 생성자 호출 시 꼭 첫 줄에서만 사용을 해야하며, 코드의 중복을 피할 수 있다는 장점이 있다
  • super() : 조상의 생성자로, this()와 유사하다.
    • 조상의 생성자를 호출할 때 사용하며, 조상의 멤버는 조상의 생성자를 호출해서 초기화한다.

Java에서 객체 인스턴스 비교 방법

  • Java에서는 instanceof 연산자를 통하여 객체 인스턴스를 비교할 수 있다. 해당 연산자를 통해 객체가 특정 클래스에 속하는지 아닌지를 확인할 수 있다.

오늘을 마치며..

  • 처음으로 진정한 의미의 객체지향 프로그래밍을 해보았다.
  • 설계가 생각보다 디테일하게 들어가야 했고, 난 그렇지 못했다..
  • 그래서 다시 처음으로 되돌아가는 일이 많아 오히려 시간이 배로 들었다.
  • 다형성에 대해 개념을 알았지만, 실제로 적용할 때는 제대로 하지 못했는데, 이번 미션을 끝까지 완주해보면 좋을 것 같다는 생각이 들었다.
profile
나는 날마다 모든 면에서 점점 더 나아지고 있다.

0개의 댓글