객체지향 프로그래밍 ?

객체지향 프로그래밍 OOP 란 프로그램을 어떻게 설계하는지에 대한 방법론 중 하나이다.

단순히 데이터와 처리 방법으로 나누는 것이 아니라 수많은 객체라는 단위로 나누고 상호작용으로 서술하는 방식이다.

 

객체지향 프로그래밍 특성 4가지

1.추상화

  • 인터페이스로 클래스들의 공통적인 특성(변수, 메소드)들을 묶어 표현하는 것 

2. 다형성

  • 어떤 변수,메소드가 상황에 따라 다른 결과를 내는 것

* 오버로딩(Overloading) : 하나의 클래스에서 메소드의 이름이 같지만, 파라메터가 다른 것* 오버라이딩(Overriding) : 부모 클래스의 메소드를 자식 클래스의 용도에 맞게 재정의하여 코드의 재사용성을 높임

3. 캡슐화

  • 실제로 구현 부분을 외부에 드러나지 않도록 하는 것
  • 변수와 메소드를 하나로 묶음
  • 데이터를 외부에서 직접 접근하지 않고 함수를 통해서만 접근
  • ex) public, private, protected
    public : 클래스 외부에서 접근 가능
    private : 클래스 내부에서만 접근 가능
    protected : 상속받은 자식 클래스에서만 접근 가능

 

4.상속성

  • 자식 클래스가 부모 클래스의 특성과 기능을 물려받는 것
  • 기능의 일부분을 변경하는 경우 자식 클래스에서 상속받아 수정 및 사용함
  • 상속은 캡슐화를 유지, 클래스의 재사용이 용이하도록 해 준다.

객체지향의 5원칙 ( SOLID )

< CLean Code >의 저자, 로버트 마틴이 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 마이클 패더스가 SOLID라는 약어로 소개한 것!

S (SRP : Single Responsibility Principle)

한 클래스는 하나의 책임만 가져야 한다.

O (OCP : Open/Closed Principle)

확장에는 열려(Open) 있으나, 변경에는 닫혀(Closed)있어야 한다.

L (LSP : Liskov’s Substitution Principle)

프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.

I (ISP : Interface Segregation Principle)

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

D (DIP : ependency Inversion Principle)

추상화에 의존한다. 구체화에 의존하면 안된다.

 

출처 : velog.io/@ygh7687/OOP%EC%9D%98-5%EC%9B%90%EC%B9%99%EA%B3%BC-4%EA%B0%80%EC%A7%80-%ED%8A%B9%EC%84%B1

 

📚OOP의 5원칙과 4가지 특성

Object-Oriented Programming 의 줄임말객체 지향 프로그래밍 방식입력을 받아 명시된 순서대로만 처리하고 결과를 내는 방식절차적 프로그래밍 방식의 개선된 형태프로그램을 함수단위로 나누고 함수

velog.io

 

+ Recent posts