オブジェクト向けプログラミングと共通、保護、プライベート、静的


オブジェクト向けプログラミングとは?

  • オブジェクトベースのプログラミングモード

  • オブジェクト間のインタラクション

  • オブジェクトとは、あるオブジェクトに対する抽象であり、関連するプログラムと方法から構成される.

  • 生成性、高品質、高速などの利点があります.
  • 類(フナ型)→対象(フナ型)
    四つの対象向け原則
    カプセル化
    相互に関連付けられたプログラムと関数を1つのクラスに集合することをカプセル化と呼ぶ.
    カプセル化の概念に属し、情報隠蔽の意味があり、すなわちカプセル内部の論理や変数を隠蔽し、外部は機能のみを提供する(api).
    継承
    継承とはクラスを再使用することです.子から親を継承する場合は、親のpropertyまたはメソッドを継承できます.
    継承性があるため、コードをリサイクルできるため、生産性が高く、メンテナンスが容易です.
    抽象化
    抽象化は、エンティティから共通の部分または特性を集約することを意味します.
    例えば,地球に倣って地球本を作成する場合,地球上から特性(大陸の位置,緯度,経度)のみを抽出して作成する.
    オブジェクト向けの抽象的な例では、一部のサブクラスに存在する汎用メソッドがインタフェースとして定義されます.
    たけいせい
    多形性とは、同じ形状の関数が場合によって異なることを意味します.
    オーバーロード:関数名は同じですが、異なる関数パラメータを使用します.
    上書き:親のメソッドを子から同じ名前に変更することを推奨します.(上書き)
    クラス情報の非表示
    public(デフォルト)
    privateまたはprotectedを単独で記述しない場合は、基本的にpublicです.
    外部(クラスインスタンス)、サブクラス内部、クラス内部の任意の場所を参照できます.
    protected
    外部(クラスインスタンス)からはアクセスできませんが、クラス内部とサブクラスからアクセスできます.
    private
    自分のレベル内でしか使用できません.
    アクセス可能publicProtectedprivateクラス内部OOOサブクラス内部OOXクラスインスタンスOXX
    静的プロセスと静的メソッド
    クラス関数自体の方法とプロセス
    クラスで通常宣言されるプロパティとメソッドは、インスタンスからアクセスし、インスタンスを作成するたびに作成できます.
    しかし、staticのキーワードを前に付けると、静的propertyまたは静的メソッドになります.
    静的propertyメソッドと静的メソッドは、クラスにのみアクセスできるpropertyメソッドとメソッドです.つまり、インスタンスにアクセスできません.
    また、インスタンスを作成するたびにクラスが1つだけ作成され、インスタンスを作成するたびにクラスが1つ作成されるわけではありません.
    逆に、通常のプログラムや通常のメソッドはクラスからアクセスできません.
    private vs static
    privateとstaticはよく似ているように見えます.この二つにはどんな違いがありますか.
    目的性
    privateの目的は情報を隠すことであり,staticはクラスであり,使用方法とプログラムを目的とする.
    タイプスクリプトのみ?
    public、protected、privateは、タイプスクリプトでのみ使用できます.
    逆に、静態はJavaScriptでも利用できます.
    使用方法の違い
    もう1つの違いは、クラス内での使用方法が異なることです.
    // private
    class Animal1 {
      private age = 10;
    
      show() {
        console.log(Animal1.age); // 에러
        console.log(this.age);
      }
    }
    
    const animal1 = new Animal1();
    animal1.show();
    
    // static
    class Animal2 {
      static age = 10;
    
      show() {
        console.log(Animal2.age); 
        console.log(this.age); // 에러
      }
    }
    
    const animal2 = new Animal1();
    animal2.show();
    
    privateとして宣言されたpropertyは、クラス内でこの方法でアクセスできます.
    逆にstaticと宣言されたプログラムはクラス内部でもクラス自体でしかアクセスできません.