객체지향

Single Ko·2023년 4월 3일
0

java

목록 보기
7/28

객체지향의 4가지 특징

1. 추상화(abstraction)

클래스 간의 공통점을 찾아내서 공통의 부분을 개념으로 만들어 두는 작업. -> 추상화 -> 구체화 ( 상속을 통해 추상화된 클래스를 구현하는 작업) ex) 자동차의 주행 기능과 연료를 공통 부분으로 묶어 두는 것.

2. 캡슐화(encapsulation)

객체의 데이터와 데이터를 다루는 방법을 결합시켜 묶는 것. 객체의 내부 구현을 외부로부터 숨기고, 객체와의 상호작용은 정해진 인터페이스를 통해서만 가능하게 하는 것. 객체의 내부 변경에도 외부에 영향을 미치지 않고 유연하고 안전한 프로그래밍이 가능.

3. 상속(inheritance)

한 클래스가 다른 클래스의 속성과 기능을 물려받는 것. 코드의 재사용성을 높이고 중복을 줄여준다. 부모 클래스의 개념을 들고 오고 거기에 없는 고유한 속성과 기능을 추가할 수 있다.

4. 다형성(polymorphism)

같은 이름의 메소드가 다른 동작을 하는 것. 상속과 연관되어 있으며 부모 클래스의 메소드를 자식 클래스에서 재정의(override)하여 사용하는 것이다. 동일한 메소드 호출에도 다른 결과를 얻을 수 있다.

SOLID 원칙.

=> 객체지향 프로그래밍과 설계의 다섯 가지 기본 원칙.

Single-responsibility principle (단일책임 원칙)

모든 클래스는 하나의 기능만 가지고, 그 기능에 집중해야 한다. (다양한 기능을 가진 것 보다 쪼개서 하나씩)

Open-closed principle (개방폐쇄 원칙)

소프트웨어 엔티티는 확장에는 개방되어야 하고, 수정에는 폐쇄되어야 한다는 원칙. (인터페이스를 통한 확장 등..)

Liskov substitution principle(리스코프 치환 원칙)

서브타입은 언제나 자신의 기반 타입으로 교체할 수 있어야 한다는 원칙. (엑셀이 갑자기 후진 기능으로 바뀌면 안됨)

Interface segregation principle(인터페이스 분리 원칙)

범용 인터페이스보단 특정 클라이언트를 위한 인터페이스 여러 개가 좋다.

Dependency Inversion principle(의존 역전 원칙)

상위 모듈은 하위모듈에 의존하면 안되고, 추상화에 의존해야되며, 구체화에 의존하면 안된다.

profile
공부 정리 블로그

0개의 댓글