티스토리 뷰

OOP Basic concept 

  • 캡슐화

데이터(속성)의 기능(메소드)을 하나의 객체로 묶는것

데이터(속성)와 기능(메소드)을 함께 묶다보니, 자연스럽게 이과정에서 은닉화가 된다. => 외부에 메소드만을 노출  => 유지보수가 쉽다.

은닉화 : 내부데이터나 구현이 외부로 누출되지않는것을 의미.

 

  • 추상화

실제 노출되는것은 단순하게 만드는개념. 

즉 데이터는 절차지향으로 구현하며, 노출되는 메소드는 단순화

 인터페이스 :클래스 정의 시, 메소드와 속성만 정의한 것

 

  • 상속

부모클래스의 특징을 자식 클래스가 물려받는것

  • 다양화

같은이름을 가진 메소드라도 조금씩 다르게 작동하는것

 

Class 와 Instance

 

class : 하나의 모델이 되는 청사진을 의미한다.

instance : 그 청사진을 바탕으로 한 객체 

 

constructor란 instance가 초기화될때 실행하는 생성자 함수다.  

constructor 내부에는 속성과 메소드가 존재한다.

class Car{
	counstructor(brand,name,color){//  생성자의 인자를 받는 것의 유무는 개발자의 의도에 따라 달라진다.
   
	this.brand = brand
	this.name = name
	this.color = color
    
  } 
}

this. 여기서 this가 의미하는것은? 

우선 instance에 대하여 공부해보자.

 

instance 는 'new' 키워드를 통하여 만들어 낼 수 있다.

let avante = new Car ('hyundai','avante','black')
let mini = new Car ('bmw','mini','red')

 

위 constructor에 명시된 this => avante, mini 가 된다.

this는  인스턴스의 객체를 의미한다. 

 

 

 

속성과 메소드

 

메소드는 " 객체에 딸린 함수! " 생성자 함수화 함께 constructor안에 묶어서 정의한다.

자동차로 생각해보자면, 위 코드에서 속성을 지정한것과 같이 자동차의 속성은 브랜드, 이름, 색깔, 연료 상태 등등이 될수있다. 

그렇다면 메소드는? 속력설정, 운전 등이 메소드가 될 수 있다. 

 

class Car{
	counstructor(brand,name,color){
   
	this.brand = brand
	this.name = name
	this.color = color
    
  }  // 속성들
  
  refuel()  // 메소드1
  drive()  // 메소드2
  
}

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함