본문 바로가기
Software Development

객체 지향 OOP(Object Oriented Programming)

by KkingKkang 2023. 3. 29.

등장 배경

  • 1960년대 말, '소프트웨어 위기론'등장
  • 모듈화된 소프트웨어 개발에 대한 요구 발생
  • 절차지향 프로그래밍 언어 : 실행되는 순서가 위에서부터 아래로 순차적으로 진행되는 형태를 가진 언어

객체 지향 특징

  • 높은 유지보수성
  • 객체와 객체 간 자유로운 데이터 이동이 가능해짐

객체 지향 설계 5원칙

  1. SRP (Single Responsibility Principle) 단일 책임 원칙 : 어떠한 클래스를 변경해야 하는 이유가 한가지 뿐이여야 한다.
  2. OCP (Open Closed Principle) 개방폐쇄원칙 : 자신의 확장에는 열려있고, 주변의 변화에 대해서는 닫혀 있어야 한다.
  3. LSP (Liskov Substitution Principle) 리스코프 치환 원칙 : 서브 타입은 언제나 자신의 상위 타입으로 교체할 수 있어야 한다.
  4. ISP (Interface Segregation Principle) 인터페이스 분리 원칙 : 클라이언트는 자신이 사용하지 않는 메서드에 의존 관계를 맺으면 안된다.
  5. DIP (Dependency Inversion Principle) 의존 역전 원칙 : 자신보다 변하기 쉬운 것이 의존하면 안된다.

 

상속(Inheritance)

  • 속성과 메서드가 약간 다른 객체를 필요로 한다면?
  • 클래스들 사이에 공통된 속성이나 기능들이 있을 경우, 상속을 통해 재사용성을 높일 수 있음
  • → 부모 클래스와 자식 클래스의 관계가 일반화,틀별화 관계에 있어야 함
  • '~ is a ~' 관계가 성립해야함!

다형성 (Polymorphism)

  • 하나의 인터페이스를 이용해 서로 다른 구현을 제공함
  • 메서드 오버로딩과 메서드 오버라이딩을 통해 지원됨
  • 메서드 오버로딩 : 한 클래스 안에 같은 이름의 메서드를 여러 개 정의하면서, 그 인자의 개수나 유형을 다르게 해놓은 형태

추상화(Abstraction)

  • 구체적인 사실들을 일반화시켜 기술하는 것
  • 현실 세계에 존재하는 다양한 객체들의 공통된 특성을 모아 일반화 해놓는것 → 클래스 정의에 중요한 역할

캡슐화(Encapsulation)

  • 변수와 메서드를 하나의 추상화된 클래스로 묶는 과정
  • 변수와 메서드를 하나로 묶어 독립적으로 동작하지 않도록 함

정보 은닉(Information Hiding)

  • 숨겨야하는 정보(private)
  • 공개하는 정보(public)

객체 지향 프로그램을 할 때는

  • 객체를 정의 하고
  • 각 객체의 속성 멤버 변수 역할 메서드로 구현하고
  • 각 객체간의 협력을 구현합니다.

클래스 코딩하기

  • 클래스는 대문자로 시작하는것이 좋음
  • java 파일 하나에 클래스는 여러 개가 있을 수 있지만, public 클래스는 하나이고, public 클래스와 .java 파일의 이름은 동일
  • camel notation 방식으로 명명(낙타 대문자 : ex)UpperCamelCase)
반응형

'Software Development' 카테고리의 다른 글

REST API 와 CRUD  (0) 2023.07.17

댓글