Object Oriented Programming

allofhyuk·2021년 2월 26일

[ 객체 지향 프로그래밍 ]

  • 관계성있는 객체들의 집합이라는 관점으로 접근하는 소프트웨어 디자인으로 볼 수 있다.
  • 객체 지향 프로그래밍은 기본 모델을 만들고, 기본 모델을 바탕으로 한 객체를 만들어내는 패턴.
function Person(name, age) {
  this.name = name;
  this.age = age;
}
let person1 = new Person('Jae', 20)
let person2 = new Person("Gwon","24");
let person3 = new Person("Hyuk","23");

// 생성자 함수로 이름과 나이 정보를 담은 새로운 객체를 생성
// 인스턴스 : 생성자를 통해 만들어진 객체 (person1)
// 하나의 생성자로 여러 인스턴스를 생성할 수 있다.

용어

  • class : 객체의 특성을 정의, 객체를 생성하기 위한 아이디어나 청사진.
  • instance : class의 사례 (class를 통해 만들어진 객체)
  • object : class의 인스턴스
  • property : 객체의 속성 (예 : 이름, 성별, 나이 ...)
  • method : 객체의 기능 (예 : walk, move, say something ...)
  • construnctor : 인스턴스화 될 때 실행되는 메서드

[ OOP basic concept ]

  • Encapsulation (캡슐화)
    • 데이터(property)와 기능(method)을 한 데 묶는 것
    • 은닉 (hiding) : 클래스 내부의 값들을 외부에서 참조하지 못하도록 은닉하되 동작은 노출시킴.
    • 코드를 간결하게 만들어주며 재사용성을 높인다.
  • Inheritance (상속)
    • 부모 클래스의 인스턴스를 자식 클래스에 할당함으로써 상속이 이루어진다.
    • 같은 특징을 가진 클래스를 상속받아 재사용하여 효율성을 높인다.
  • Abstraction (추상화)
    • 복잡한 내부구현에 반해 실제 노출되는 부분은 목적에 맞게 단순화 하는 것
    • 클래스 정의 시, 메소드와 속성만 정의한 것을 인터페이스라고 부르며 추상화의 본질이다.
    • 불필요한 것은 숨기고 핵심만 드러내는 것
  • Polymorphism (다형성)
    • 같은 메서드라도 서로 다른 동작방법을 가질 수 있다.
    • 만약 다형성이 없다면 if/else if 로 케이스를 나누어 실행해야 하지만
      다형성이 있기 때문에 같은 메서드를 실행해도 다른 작업을 할 수 있게 구현 가능하다.

0개의 댓글