Object-Oriented Programming

똘이주인·2021년 5월 12일
0

OOP (Object-Oriented Programming)

데이터를 객체로 취급하여 프로그램에 반영한 것
객체와 객체의 상호작용을 통해 동작하는 것으로 기존의 순차적으로 동작하는 프로그램과는 다르다

객체 지향 프로그래밍(OOP)의 장점

  1. 코드의 재사용성이 높다.
  2. 코드의 변경이 용이
  3. 직관적인 코드 분석
  4. 개발 속도 향상
  5. 상속을 통한 장점 극대화

OOP의 기본 구성 요소

마당에 동물들을 배치하고 싶다.
동물의 종류는 토끼, 강아지, 고양이가 있다.
각 동물들은 시간이 흐르고 나이를 먹는다.

  • 클래스(Class)같은 종류의 집단에 속하는 속성과 행위를 정의한 것. 다른 클래스와 독립적으로 디자인해야 한다. 위의 예제에서 동물(Animal) 의 특성과 행위들을 정의한 객체가 클래스가 될 것이다.
  • 객체(Object)클래스의 인스턴스(Instance). 상위 클래스의 속성을 가지고 있으면서 개별적인 특성과 행위(메소드 : Method) 또한 가지고 있다. 위의 예제에서는 토끼, 강아지, 고양이 등이 각각의 객체가 된다.
  • 메서드(Method)클래스로부터 생성된 객체를 사용하는 방법. 객체의 속성을 조작하는 데 사용된다. 위의 예제에서 각각의 동물들이 나이를 먹는 것이 메서드(method)라고 볼 수 있다.

OOP의 특징

  1. 캡슐화(Encapsulation)

    캡슐화란 쉽게 말하면 캡슐처럼 감싸는 개념이다.

    객체의 변수, 메소드등 실제 구현 내용을 보이지 않게 감싸는 개념이다.

    따라서, 외부 객체가 함부로 내부 객체를 건드리지 못하게 하는 것이다.

    쉽게 예를 들자면 변수 앞에 private을 선언하는 것을 떠올리면 될 거 같다.

  2. 추상화 (Abstraction)

    추상화란 공통의 속성이나 기능을 묶어 이름을 붙이는 것이다.

    쉽게 예를 들자면 토끼, 강아지, 고양이라는 객체가 있을 때

    이 객체들을 하나로 묶을 때 객체들의 공통 특징인 동물으로 묶어 이름을 붙이는 것을 추상화라고 한다.

  3. 다형성 (Polymorphism)

    하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미한다.

    상위 클래스의 참조 변수가 하위 클래스의 객체를 참조하게 하는 것이다

    오버로딩, 오버라이딩, 업캐스팅, 다운캐스팅, 인터페이스, 추상메소드, 추상클래스 방법이 있다고 생각하면 된다.

  4. 상속성 (Inheritance)

    상위 클래스의 속성(변수)과 기능(메소드)을 (재사용하여(상속)) 하위 클래스가 전부 물려받는 것이다.

    물려받은 거 외에 속성과 기능을 추가할 수 있다.

0개의 댓글