728x90
등장 배경
- 1960년대 말, '소프트웨어 위기론'등장
- 모듈화된 소프트웨어 개발에 대한 요구 발생
- 절차지향 프로그래밍 언어 : 실행되는 순서가 위에서부터 아래로 순차적으로 진행되는 형태를 가진 언어
객체 지향 특징
- 높은 유지보수성
- 객체와 객체 간 자유로운 데이터 이동이 가능해짐
객체 지향 설계 5원칙
- SRP (Single Responsibility Principle) 단일 책임 원칙 : 어떠한 클래스를 변경해야 하는 이유가 한가지 뿐이여야 한다.
- OCP (Open Closed Principle) 개방폐쇄원칙 : 자신의 확장에는 열려있고, 주변의 변화에 대해서는 닫혀 있어야 한다.
- LSP (Liskov Substitution Principle) 리스코프 치환 원칙 : 서브 타입은 언제나 자신의 상위 타입으로 교체할 수 있어야 한다.
- ISP (Interface Segregation Principle) 인터페이스 분리 원칙 : 클라이언트는 자신이 사용하지 않는 메서드에 의존 관계를 맺으면 안된다.
- DIP (Dependency Inversion Principle) 의존 역전 원칙 : 자신보다 변하기 쉬운 것이 의존하면 안된다.
상속(Inheritance)
- 속성과 메서드가 약간 다른 객체를 필요로 한다면?
- 클래스들 사이에 공통된 속성이나 기능들이 있을 경우, 상속을 통해 재사용성을 높일 수 있음
- → 부모 클래스와 자식 클래스의 관계가 일반화,틀별화 관계에 있어야 함
- '~ is a ~' 관계가 성립해야함!
다형성 (Polymorphism)
- 하나의 인터페이스를 이용해 서로 다른 구현을 제공함
- 메서드 오버로딩과 메서드 오버라이딩을 통해 지원됨
- 메서드 오버로딩 : 한 클래스 안에 같은 이름의 메서드를 여러 개 정의하면서, 그 인자의 개수나 유형을 다르게 해놓은 형태
추상화(Abstraction)
- 구체적인 사실들을 일반화시켜 기술하는 것
- 현실 세계에 존재하는 다양한 객체들의 공통된 특성을 모아 일반화 해놓는것 → 클래스 정의에 중요한 역할
캡슐화(Encapsulation)
- 변수와 메서드를 하나의 추상화된 클래스로 묶는 과정
- 변수와 메서드를 하나로 묶어 독립적으로 동작하지 않도록 함
정보 은닉(Information Hiding)
- 숨겨야하는 정보(private)
- 공개하는 정보(public)
객체 지향 프로그램을 할 때는
- 객체를 정의 하고
- 각 객체의 속성을 멤버 변수로 역할을 메서드로 구현하고
- 각 객체간의 협력을 구현합니다.
클래스 코딩하기
- 클래스는 대문자로 시작하는것이 좋음
- java 파일 하나에 클래스는 여러 개가 있을 수 있지만, public 클래스는 하나이고, public 클래스와 .java 파일의 이름은 동일함
- camel notation 방식으로 명명(낙타 대문자 : ex)UpperCamelCase)
728x90
'△ > Software Development' 카테고리의 다른 글
REST API 와 CRUD (0) | 2023.07.17 |
---|
댓글