-
Section18 - 자료 구조 소개자료구조 & 알고리즘 & CS + 2022. 7. 18. 23:52728x90반응형
이전에 받은 유데미 강의 복습
다양한 자료구조가 있고, 각 상황에 맞는 최적의 알고리즘을 만들기 위해 그를 공부하는 것이다.
[ES2015 클래스 구문 개요]
클래스란?
사전에 정의된 속성 및 메소드들을 이용해 객체를 생성하기 위한 청사진
[자료 구조 : 클래스 키워드]
class Student{ constructor(firstName, lastName){ this.firstname = firstName; this.lastName = lastName; } }
새로운 오브젝트를 생성하기 위한 매소드는 constructor로 진행
클래스 키워드는 상수(const)를 만드는데, 그렇기 때문에 재정의 불가능
let firstStudent = new Student("Lee","min"); let secondStudent = new Student("Lee","min");
새로운 인스턴스 만드려면 new 키워드로 생성
[자료 구조 : instance 메소드 추가하기]
class Student{ constructor(firstName, lastName){ this.firstname = firstName; this.lastName = lastName; } fullName(){ return `Your full name is ${this.firstName} ${this.lastName}`; } } let firstStudent = new Student("lee","min"); firstStudent.fullName() // "lee min"
[자료 구조 : Class 메소드 추가하기]
class Student{ constructor(firstName, lastName){ this.firstname = firstName; this.lastName = lastName; } fullName(){ return `Your full name is ${this.firstName} ${this.lastName}`; } static enrollStudents(...students){ //maybe send an email here } } let firstStudent = new Student("lee","min"); Student.enrollStudents([firstStudent, secondStudent]);
static은 등록된 인스턴스와는 별개로 실행되는 클래스 자체의 메소드임
개별 인스턴스가 이 메소드를 호출하지 못하게 막는 관점도 있음
근데 사실상 static 잘 안씀
class DataStructure(){ constructor(){ //what default properties should it have? } someInstanceMethod(){ //what should each object created from this class be able to do? } }
[Recap]
1. 클래스들은 인스턴스로 알려진 객체를 생성하기 위한 청사진
2. 이런 클래스들은 "new" 키워드 들을 통해 생성
3. constructor 함수는 특별한 함수로 클래스가 인스턴스화 될때 실행됨
4. 인스턴스 매소드는 객체에 매서드 추가할때처럼 추가되고
5. 클래스 매소드 들은 스태틱 키워드를 사용할 수 있음
[최종 output]
class Student{ constructor(firstName, lastName, grade){ this.firstname = firstName; this.lastName = lastName; this.grade = year; this.tardies = 0; this.scores = []; } fullName(){ return `Your full name is ${this.firstName} ${this.lastName}`; } markLate(){ this.tardies +=1; if(this.tardies >= 3 ) { return "Expelled" } else { return `${tardies} late` } addScore(score){ this.scores.push(score); return this.scores } calculateAverage(){ let sum = this.scores.reduce(function(a,b){return a+b}); return sum/this.scores.length; }
반응형'자료구조 & 알고리즘 & CS +' 카테고리의 다른 글
Section22 - 이진 검색 트리 (0) 2022.07.26 Section21 - 스택 & 큐 (0) 2022.07.23 Section20 - 이중 연결 리스트 (0) 2022.07.21 Section19 - 단일 연결 리스트 (0) 2022.07.20