OOP정리

김현진·2020년 5월 8일
0

OOP(Object oriented programming: 객체지향프로그래밍)이란
정의 찾아보기 위해서 많은 구글링을 시도 했지만, 'OOP는 ~ 이다'라는 정의는 없었다.(한마디로 정의하기는 어려운거 같다. 컴퓨터는 무엇인가처럼)

서로 연관되어 있는 프로그램을 모아두는 프로그램의 방식, 또는 방법론(어떤식으로 프로그램을 짤 건지)
왜 만들어졌을까?
프로그래밍을 더 쉽고 더 잘하기위해서 만들어 진 개념인거 같다.
간단히 설명하자면 프로그래밍을 간결하고 쉽게하고 공통적인 기능이 있다면
하나로 묶어서 사용하는프로그랭의 방법

OOP에서 특징에 대해서 알아보자.

  1. 캡슐화(Encapsulation)
    캡슐화도 찾아보니 캡슐화도 여러가지 특징을 가지고 있다는걸 알았고, 하지만 중요한특성에 대해서만 가져와서 정리를 해볼려고 한다.

캡슐화란 이름 그대로 뭔가 보호한다는 의미다. 객체를 생성할 때, 외부에서 프로퍼티에 접근할 수 있도록 설정하면서 동시에 특정 프로퍼티에는 접근할 수 없도록 하고 싶다면  캡슐화를 이용하면 된다.(뭔가 한국말이지만 어렵다;;)

만약 자식클래스 부모클래스가 있다고 가정을 한다면
자식 클래스는 부모 클래스의 모든 메서드를 상속받고,
상속받은 메서드중 일부를 수정하고 싶은 경우에만 해당 메서드를 정의하는 것을 우리는 캡슐화(encapsulation)이라고 부른다. 이 정의는 MDN공식문서에 있는 내용이다.

코드는 다음에 첨부해서 리뷰를 해보야겠다.(캡슐화라는 개념을 잡기 어렵다ㅠ)

  1. 상속(inheritance)
    이해하기 쉬운용어가 나왔다.(딱 용어만 봐도 알거 같다 드라마중에 상속자도 있다)
    자바스크립트에서는 부모 클래스의 인스턴스를 자식 클래스에 할당함으로써 상속이 이루어진다.

예를들어 A ,B 라는 Class를 만들었다고 가정을 해보자.
B의 기능은 A의 기능을 포함하고 있다고 한다면 코드를 복사해서 붙여넣어도 되지만, 상속기능을 쓴다면 좀 더 가독성 및 편리 할것이다. 여기서 본다면 A class는 부모클래스이고 B class는 자식클래스라고 볼 수 있다.
MDN에 있는 상속예시 코드이다.

function Person() {}

Person.prototype.walk = function(){
  alert ('I am walking!');
}; // Person은 걷는 기능을 가지고 있다.
Person.prototype.sayHello = function(){
  alert ('hello'); Person은 sayHello라는 기능을 가지고 있다
};

// define the Student class
function Student() {
  // Call the parent constructor
  Person.call(this); // 
}
Stdudent.prototype = new Person();
  // Student도 인사기능 및 걷기기능을 가져야 한다면 위에 코드를 그대로 치면 되겠지만
  // 상속기능을 쓴다면 코드를 길이 및 가독성이 좋아진다.

상속에 대해서는 좀 더 적고 싶지만 따로 분리를 해서 좀 더 세밀하게 다룰계획이다.

레슨을 듣고 추후에 내용을 더 적어야겠다.

profile
기록의 중요성

0개의 댓글