본문 바로가기
카테고리 없음

Inheritance Pattern

by 시계의온도 2020. 5. 23.

*배우는과정이므로 잘못된 내용이 있을 수 있습니다. 

** 잘못된 내용은 코멘트 주시면 바로 수정하겠습니다. 

 

 

프로그래밍 언어에는 3가지 타입이 있다. 

1. Machine Languages : 기계어. 010101로 이루어져 있는 기계가 사용하는 언어다. 

2. Assembly Languages: 어셈블리어. 

3. High-Level Languages: javascript, python등. 

 

High-Level에 가까워질수록 사람의 언어와 가까워진다. 컴파일 과정을 통해서 기계어로 변경된다. 

 

 

고급언어는 절차지향적 언어와, 객체지향적 언어가 있다.

1. Procedural Language : C, Cobol ...

    스텝바이스텝. 한번에 하나씩 처리하면서 진행한다. 구조를 잘 짜야한다. 

2. Object- Oriented Language : Java, C++, C#,Python,Javascript ... 

    Object( Property, Method ) 를 한개 만들어 놓고, 계속 또 써먹는다. 어느위치에서나 호출할 수 있다. 

직관적인 설명의 그림이다. 가장 기본이 되는 Object를 만들어 놓고, 새롭게 선언하면 Audi, Nissan, Volve 인스턴스가 만들어진다.

 

ES6코드

class Car{
	constructor(name){
		this.name = name // 값을 미지정시 파라미터가 필요하다. 
    	this.speed = 10  // 값을 지정시 파라미터 불필요. 
    }
}

let volvo = new Car("volvo") // Car{name:"volve"} 

즉 Car라는 Class(= Object)를 통해서, 아우디,닛산,볼보를 만들어낼 수 있는것이다. 여기에서는 속성값으로 이름만 주었기 때문에 이름만 다른 인스턴스가 생성된다. 인스턴스란, 클래스를 통한 복제본을 의미하며 Object의 형태 { }를 가진다. 다시 정리하자면, Car클래스를 통해 이름이 아우디,닛산,볼보인 인스턴스를 생성한 것이다. 

 

또다른 예시이며 좀 더 복잡하다. 위에서는 속성만 주었지만, 아래 예시에서는 Method까지 부여하고 있다. Method란, 클래스 안에서의 '행동'이다. 

 

 

 

클래스,인스턴스,객체에 대한 보다 상세한 개념은 하단 블로그에 잘 설명되어 있다. 

https://gmlwjd9405.github.io/2018/09/17/class-object-instance.html

 

OOP는 4가지 특성이 있다. 

(OOP : object oriented programming)

 

1. Encapsulation

2. Abstraction

3. Inheritance 

4. Polymorphism

var Human = function(name){
	this.name = name
}

Human.prototype.sleep = function(){};

var steve = new Human('steve')

#레퍼런스

https://javatutorial.net/java-oop

댓글