공부한 내용정리/Java
객체지향의 특징과 5가지원칙
JinHee Han
2020. 10. 6. 01:37
OOP(객체지향 프로그래밍)의 3가지 특징
캡슐화
-
데이터와 데이터를 처리하는 메소드의 형태를 하나의 단위로 묶는 것
-
캡슐화로 인해 클래스의 외부에서 클래스 멤버변수에게 직접 접근하여 값을 변경할수 없음
-
외부에서 접근할 수 있도록 정의된 getter, setter을 통해서만 접근이 가능하다.
- 캡슐화의 결과로 정보은닉이 가능해진다. (프로그램 변경시에 발생하는 오류를 줄일 수 있다.)
상속
-
상위 클래스의 멤버 메소드들을 하위 클래스가 사용할수 있는 특징
-
부모 클래스의 생성자, 초기화 블럭은 상속되지 않는다.
-
모든 클래스는 Object 클래스의 후손 클래스다.
- 반복되는 코드를 줄여서 개발시간을 줄일 수 있고 확장성이 용이해진다.
다형성
-
한번의 명령으로 여러 객체가 명령에 맞는 각각의 역할을 수행할수 있는 특징
-
하나의 객체가 여러가지 타입을 가질수 있는 특징
업 캐스팅 : 서브 클래스(자식 클래스)의 객체가 수퍼 클래스(부모 클래스) 타입으로 형변환 되는 것
다운 캐스팅 : 업 캐스팅 되었던 수퍼 클래스(부모 클래스) 가 다시 자식 클래스의 타입으로 돌아오는 것
+ 추상화
-
객체에서 사용될 공통적인 메소드나 멤버를 추출하는 작업
객체지향의 5원칙(SOLID : 솔리드)
- SRP(단일 책임의 원칙: Single Responsibility Principle)
- OCP(개방폐쇄의 원칙: Open Close Principle)
- LSP(리스코브 치환의 원칙)
- ISP(인터페이스 분리의 원칙: Interface Segregation Principle)
- DIP(의존성 역전의 원칙: Dependency Inversion Principle)