728x90
반응형
절차지향 프로그래밍
개요
- 절차지향 프로그래밍이란 프로그램 전체가 유기적으로, 일련의 순서에 따라서 처리되도록 하는 프로그래밍 기법
- C, Basic 등이 속함
특징
- 처리속도가 빠르다
- 코드가 길수록 재사용성과 유지보수성이 떨어짐
객체지향 프로그래밍
개요
- 실제 세계를 객체라는 단위로 모델링하여 개발하는 프로그래밍 기법
- 객체(Object)는 속성(Attribute)과 메소드(Method)가 결합된 형태
- 객체를 통해 개체(Entity)를 표현함
- JAVA, C++, C#, python 등이 속함
특징
- 확장 및 유지 보수 용이
- 모듈의 재사용 가능
구성요소
- 객체 = 상태 + 동작
= 속성 + 프로시저
= 필드 + 메소드 - 클래스
- 속성
- 메소드&메시지
객체지향의 4요소
- 캡슐화 : Encapsulation
- 데이터와 함수를 하나로 묶는 것을 의미
- 캡슐화로 인해 재사용에 용이
- 코드의 손상과 오용을 막고 안전하게 보호 가능
- 객체 간 결합도 낮아짐
- 정보은닉
- 상속성 : Inheritance
- 클래스의 속성과 행위를 하위 클래스에 물려주거나 , 상위 클래스에서 물려받는 것
- 클래스 간의 전체 구조 파악하기 쉬움
- 재사용성 증대, 확장 및 유지보수 용이
- 다형성 : Polymorphism
- 하나의 객체가 여러 형태를 가질 수 있는 것
- 오버라이딩(Overriding), 오버로딩(Overloading)
- 재사용, 유지보수에 용이
- 추상화
- 객체에서 공통된 속성과 행위를 추출하는 것
- 기능적인 측면을 정의
설계원칙
- 단일 책임의 원칙 (SRP : The Single Responsibility Principle)
- 하나의 클래스에는 한 가지 종류의 기능을 두어야 한다는 원칙 - 개방/폐쇄의 원칙 (OCP : The Open-Closed Principle)
- 확장에 대해서는 개방되어야 하지만 변경에 대해서는 폐쇄되어야 한다는 원칙
- 기존 클래스의 변경 최소화 - 인터페이스 분리의 원칙 (ISP : Interface Segregation Principle)
- 클라이언트는 자신이 사용하지 않는 메소드와 의존 관계를 갖지 않도록 해야 한다는 원칙 - 리스코프 치환의 원칙 (LSP : Liskov Substitution Principle)
- 서브타입은 언제나 기반타입으로 대체할 수 있어야 한다는 원칙 - 의존 관계 역전의 원칙 (DIP : Dependency Inversion Principle)
- 상위 레벨 모듈이 하위 레벨 모듈의 구현에 의존해서는 안 되며 하위 레벨 모듈이 상위 레벨 모듈에서 정의한 추상 타입에 의존해야 한다는 원칙
반응형
'JAVA' 카테고리의 다른 글
[Java] 객체직렬화 (0) | 2021.08.25 |
---|---|
[Java] 입출력 스트림 I/O Stream (0) | 2021.08.24 |
[JAVA] cmd 이용한 자바파일 컴파일 및 실행 방법 (0) | 2021.07.15 |
[JAVA] 응용 별찍기_홀수 다이아몬드 (0) | 2021.07.13 |