[D+99]航海9912日目


等級は何ですか。


オブジェクト向けプログラミングでは、クラスは変数と関数を定義して特定のオブジェクトを作成するフレームワークです.
オブジェクトを定義するためのステータスと関数の構成
オブジェクト単位でコードをグループ化し、簡単に再利用できます.

1)構成クラス

  • ジェネレータ関数:
  • ロール.クラスインスタンスを作成し、作成したインスタンスを初期化します(初期値が設定されていると仮定します).
  • 関数:何でもする
  • class Cat {
    	// 생성자 함수
      constructor(name) {
    		// 여기서 this는 이 클래스
    		this.name = name; 
    	}
    
    	// 함수
    	showName(){
    		console.log(this.name);
    	}
    }
    
    // 여기서 new는 키워드. 새로운 무언가를 만들기 위해서 생성자 함수와 함께 쓰임
    // new와 생성자 함수는 세트
    let cat = new Cat('perl');
    cat.showName();
    console.log(cat);

    2)クラスを継承しますか?


    作成したクラスを使用してサブクラスを作成します.
  • スーパーキーワード
  • メソッドとして使用できます.(コンストラクション関数で)
    パラメータは、
  • 親の構造関数を呼び出すことによって伝達される.
  • thisを使用できます.
  • のキーワードとして使用できます.
  • 親のフィールドまたは関数を参照できます.
  • class Cat {
    	// 생성자 함수
      constructor(name) {
    		// 여기서 this는 이 클래스
    		this.name = name; 
    	}
    
    	// 함수
    	showName(){
    		console.log(this.name);
    		return this.name;
    	}
    }
    
    // extends는 Cat 클래스를 상속 받아 온단 뜻
    class MyCat extends Cat {
    	// 생성자 함수
      constructor(name, age) {
    		// super를 메서드로 사용하기
    		super(name); 
    		this.age = age; 
    	}
    	
    	// 부모 클래스가 가진 것과 같은 이름의 함수를 만들 수 있음
    	// 오버라이딩 이라고 표현
    	showName(){
    		console.log(this.name);
    		// super를 키워드로 사용하기
    		return '내 고양이 이름은 '+super.showName()+'입니다.';
    	}
    	
    	showAge(){
    		console.log('내 고양이는 '+this.age+'살 입니다!');
    	}
    }
    
    let my_cat = new MyCat('perl', 4);
    my_cat.showName();
    my_cat.showAge();