Class and OOP(객체 지향 프로그래밍)

wonyoung·2024년 1월 30일

Javascript

목록 보기
4/36

OOP(Object-Oriented Programming, 객체 지향 프로그래밍)
클래스는 객체지향 프로그래밍에서 특정 객체(인스턴스)를 생성하기 위한 변수와 메소드(함수)를 정의하는 일종의 틀이다.

  1. 클래스(Class)와 객체(Object): 클래스는 객체의 특성과 행동을 정의하는 틀 또는 설계도이며, 객체는 클래스에 정의된 속성(데이터 필드)과 행동(메소드)을 가진 인스턴스입니다.

  2. 상속(Inheritance): 한 클래스가 다른 클래스의 속성과 메소드를 상속 받아 사용할 수 있게 해줍니다. 코드의 재사용을 높여주고, 계층적인 클래스 구조를 만드는 데 도움을 줍니다.

  3. 캡슐화(Encapsulation): 객체의 상세한 구현 내용을 숨기고, 필요한 부분만 외부에 공개하여 객체 간의 상호작용을 단순화합니다. 데이터 구조와 데이터를 다루는 방법을 하나로 묶어 관리합니다.

  4. 다형성(Polymorphism): 같은 이름의 메소드가 다른 클래스에서 다른 동작을 할 수 있도록 하며, 이를 통해 인터페이스의 통일성을 높이고 코드의 유연성을 제공합니다.

  5. 추상화(Abstraction): 복잡한 실세계의 문제를 단순화하여 모델링하는 과정으로, 필수적인 특성을 강조하고, 불필요한 세부 사항은 생략하여 시스템의 복잡성을 관리합니다.

==

정보를 일반화해서 정리하는 방법

Class keyword

class Model{
	name = '이원영';
    year = 1997;
}

const wonYoung = new Model();
console.log(wonYoung);

// 결과
Model{name : '이원영', year: 1997}

클래스로 인스턴스를 생성하면 클래스에 해당되는 객체가 생성된다.

constructor 생성자

class Model{
	name;
    year;
    
    constructor(name,year){
    	this.name = name; // this: 현재 인스턴스
        this.year = year;
    }
}

const wonYoung = new Model('이원영',1997);
console.log(wonYoung);

// 결과
Model{name : '이원영', year: 1997} 

constructor로 인스턴스 무한생성가능

클래스로 생성된 인스턴스는 객체처럼 사용할 수 있다.

class Model{
    constructor(name,year){
    	this.name = name; // this: 현재 인스턴스
        this.year = year;
    }
}

프로퍼티(property) 정의는 안해도된다.(옵셔널)

메소드(METHOD)

class Model{
    constructor(name,year){
    	this.name = name; // this: 현재 인스턴스
        this.year = year;
    }
    
    sayName(){
    console.log(`안녕하세요 저는 $(this.name)입니다.`)
    }
}
const wonYoung = new Model('이원영',1997);
console.log(wonYoung.sayName())

console.log(typeof Model); // function
console.log(typeof wonYoung); // object

강의 출처 https://youtu.be/ZOVG7_41kJE?si=6V3c-ctH40mxdch1

profile
😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀

0개의 댓글