2014년 7월 9일 수요일

[5 Week] 자바스크립트 객체

자바스크립트 객체


1. 클래스 기반의 객체 지향

  • 특징
    • 객체, 메서드, 속성
    • 클래스
    • 캡슐화
    • 집합
    • 상속성
    • 다형성
  1. 객체, 메서드, 속성
    • 세상의 모든것을 의미 == 객체
    • 객체가 가지는 특징 == 속성 , 행동 == 메소드
  2. 클래스
    • 객체를 만들어 내는 청사진 또는 프레임 또는 객체를 만들어 내는 레시피
      ex) 참새 객체와 독수리 객체 는 새라는 객체(Class)에 해당됩니다.
  3. 캡슐화
    • 관련 속성과 메서드를 하나의 객체로 묶어 포함할 수 있음 을 나타냅니다.
    • 정보은닉
      • 가스렌지 사용자가 버튼만 가지고 불을 다룰수 있게, 겉에 나와있는 메서드 또는 속성을 통해 객체를 변경하는 행위를 구현한 코드 입니다.
        즉. 안에 구현이 어떻게 되었는지, 어떻게 작동하는지 알 필요가 없습니다.
        자바스크립트에서는 모든 메섣, 속성은 public로 정의 됩니다.
  4. 집합
    • 몇 개의 객체를 합쳐서 하나의 객체로 만든 것을 의미합니다.
    • 분할/정복, 그리고 종합하는 과정을 지원 합니다.
  5. 상속성
    • 코드를 재사용하거나 기존 코드를 확장하는 좋은 방법
    • 부모 클래스에 있는 메소드나 속성이 자식 클래스에 있는 메소드와 속성으로 대체 할수 있습니다.
      자바스크립트에서는 프로토타입을 통한 상속을 지원합니다.
  6. 다형성
    • 동일한 이름의 메서드를 호출하더라도 실제 호출 대상이 되는 객체에 따라 서로 다른 메서드를 실행되는것을 의미합니다.
      Korean --> Person **--> 부모를 의미** 일때 둘다 talk라는 메소드를 가지고 있고, 두명의 talk라는 메소드에 대한 구현이 다릅니다. 
      이럴 경우
      하나의 인스턴스에서 talk라는 메소드를 실행 했을 때
      Korean , Person 중 하나의 talk가 나올수 있는 것을 다형성 이라고 합니다.
      
      다형성이란? 여러 객체가 동일한 메서드 호출에 반응하는 능력을 말합니다.

2. 객체 생성

  • 객체의 정의 및 생성
  • 자바스크립트 내장 생성자
  • 함수와 클래스의 차이점

3. Object 객체 정의 1 - new Object

  • new keyword를 통해 만든 Object는 생성자를 통해서 만들어진 객체라고 말할수 있습니다.
var mySon = new Object() // new 연산자 사용
mySon.Name = "봉성주";
mySon.Age = 9;
mySon.IncreaseAge = function(i){ this.Age + i ;};

객체를 생성한 후 멤버를 추가하는것은 자바스크립트 특징 입니다.

4. Object 객체 정의 2 - 객체 리터럴

  • 객체 리터럴을 사용해서 new와 Object 생성자를 이용하는 과정을 좀 더 간소화 할수 있습니다.
  • 코드가 간결해지고 가독성이 높아집니다.
    var mySon = {} ;
    mySon.Name = "봉성주";
    mySon.Age = 9;
    mySon.IncreaseAge = function(i){ this.Age + i ;};
    
    정의된 멤버는 모두 외부에서 접근할수 있는 공개 멤버 입니다.

5. 사용자 정의 객체 정의 3가지

  • 객체 정의
    public class Person{
    //멤버변수
      pulbic string name;
    // 생성자
      public Person(name,age) {
          this.name = name;
       }
    }
    Person mySon = new Person(...);
    
function Person(name){
      this.name = name;
}
객체를 생성할때와 함수를 생성할때 function을 사용합니다.
일반 함수와 생성자를 구분하고자 일반 함수는 소문자로, 생성자는 대문자로 시작합니다.
  • 멤버 정의
    this.name = name // this를 사용해서 멤버를 추가합니다.
    // 익명함수를 통해 멤버변수에 접근할수 있습니다.
    this.setName = function(newName){
       this.name = newName;
    };
    
  • 객체 생성
    // new 메소드를 사용해서 만드실수 있습니다.
    var mySon = new Person("봉");
    var mySon = new Person();// name == undefined
    var mySon = new Person;// name == undefined
    
    자바스크립트 생성자 = 객체 구조 정의 & 객체 초기화 를 의미합니다.
    this를 통해 정의된 멤버를 인스턴스 멤버라고 합니다.

댓글 없음:

댓글 쓰기