TIL 35 객체지향

qkrrlcks00·2024년 10월 15일

클래스는 객체를 생성하기 위한 청사진이다. 클래스는 속성(데이터)과 메서드(행동)를 정의한다
객체는 클래스의 인스턴스입니다. 클래스에서 정의된 속성과 메서드를 가진 실체적 존재이다.
인스턴스는 특정 클래스에 대해 생성된 구체적인 객체를 말합니다. 즉, 인스턴스는 클래스의 실체화된 형태다.

요약하면 Class와 Object와 Instance의 차이점은
Class는 문법이고 Instance는 메모리에 할당된 객체/클래스이고 Object는 단위, 개념이다

객체지향의 4가지 특성
캡슐화 추상화 상속 다형성
캡슐화 : 하나에 클래스에 매소드와 변수를 넣고 관리하는것
이렇게 함으로써 데이터를 보호하고 객체의 사용을 간단하게 만들어준다.
추상화 : 핵심적이거나 공통되는 속성 및 기능을 간추리는 것을 의미한다.
상속 : 한 클래스가 다른 클래스의 속성과 메서드를 물려받는것이다.
이렇게 함으로써 코드의 재사용성을 높이고 공통된 기능을 가진클래스를 쉽게 생성할수 있다.
다형성 : 하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미한다.

캡슐화를 해야하고 캡슐화하려면 추상화를 해야하고
그 추상화된 클래스를 상속시킬수 있고 상속을 통해 다양한 클래스를 만들수 있다

절차지향은 코드 간의 순서
객체지향은 객체 간의 관계

단일책임원칙 : 클래스는 오직 하나의 책임만 가져야 하며, 그 책임이 변경되는 이유는 하나여야 한다.
개방폐쇠원칙 : 확장에 대해서는 열려있고 수정에 대해서는 닫혀 있어야한다
즉, 기능을 추가할 수는 있지만 기존 코드를 변경해서는 안 된다.
인터페이스 분리원칙 : 인터페이스를 분리해놓고 조립해서 사용해야한다.
의존성 역전 원칙 : 상속받은클래스(완성된클래스)에 접근하는게 아니고
그 클래스를 구성하는 인터페이스나 클래스에 접근해라
리스코프 치환 원칙 : 자식 클래스는 부모 클래스의 대체로 사용될 수 있어야 한다
부모 클래스의 메서드를 자식 클래스가 대체하거나 변경할 경우에도 기존의 기능을 유지해야 한다는 것이다

0개의 댓글