[ OOP ] OOP

이숭인·2021년 8월 18일
0

OOP

목록 보기
2/5

OOP - 객체지향


  • Object - Oriented Programming ( OOP )
  • 구조적 프로그래밍 방식의 개선된 형태
  • 큰 문제를 작게 쪼개는 것이 아닌 작은 문제들을 해결하는 객체를 만들어 조합해 큰 문제를 해결해 나가는 Bottom - up 방식

장점

  • 코드의 재사용성 증가
  • 유지보수용이 하다.
  • 코드의 가독성좋아 진다.

단점

  • 처리 시간 이 비교적 오래 걸린다.
  • 프로그램 설계 할때 비용이 든다.



객체지향의 특징


  • 캡슐화 (Encapsulation)
  • 정보은닉 (Information Hiding)
  • 추상화 (Abstarction)
  • 상속성 (Inheritance)
  • 다형성 (Polymorphism)



캡슐화 (Encapsulation)


  • 데이터데이터를 처리하는 함수 를 하나로 묶는 것

  • 캡슐화된 객체의 세부 내용외부에 은닉 되어, 어떤 변경이 발생할 때 오류의 파급효과가 적다.

  • 재사용용이 하다.

왜 변경이 발생했을때 오류의 파급효과가 적어?

  • 외부에서 캡슐화된 객체의 내부 정보에 직접적으로 접근할 수 없기 때문
  • 외부에서 접근할 수 없기 때문에 의도치 않은 변경이 일어나지 않는다.



정보은닉 (Information Hiding)


캡슐화 에서 가장 중요한 개념

  • 다른 객체에게 자신이 가지고 있는 프로퍼티메소드 정보를 숨기고 자신의 연산(getter, setter) 만을 통해서 접근을 허용 하는 것



추상화 (Abstarction)


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

  • 예) 추상 메소드, 인터페이스



상속성 (Inheritance)


상위 클래스모든 속성과 연산하위 클래스물려받는 것.

상속 이란 하위 클래스상위 클래스 를 물려받아 기능을 추가하여 확장하는 개념이다.

  • 상위 클래스 를 상속받아 상속성 을 이용하면, 상위 클래스모든 속성과 연산하위 클래스 에서 다시 정의하지 않아도 사용할 수 있다.



다형성 (Polymorphism)


다양한 형태로 나타날 수 있는 능력.

오버로딩오버라이딩다형성 이라고 할 수 있다.


오버로딩 (Overloading)

  • 하나의 클래스에서 메소드의 이름이 같지만, 파라미터 가 다른 것
  • 동일한 메소드매개변수타입, 개수 차이에 따라 다르게 동작
  • 서로 다르게 동작하는 메소드여러개 만들어야 할 경우 파라미터를 다르게 하여 표현 할 수 있다.

오버라이딩 (Overriding)

  • 상위 클래스 의 메소드를 하위 클래스 에서 재정의 하여 코드의 재사용성 을 높이는 것.

profile
iOS Developer

0개의 댓글