5.C++クラスの導入

2193 ワード

1.基本概念
□クラスとオブジェクトはオブジェクト向けの2つの基本概念である
  • 「類」は一つの事物を指し、抽象的な概念である.
  • 「オブジェクト」は、あるクラスに属するエンティティであり、具体的に存在するものである
  • を指す.
    2.クラスとオブジェクトの意味
    △クラスは抽象的に物事特有の属性と行為を記述するために用いられる.例えば、コンピュータクラスの各オブジェクトにはCPU、メモリ、ハードディスクがあり、コンピュータクラスの各オブジェクトは電源を入れてプログラムを実行することができます.例えば、トラの対象(つまりトラ)ごとに、体重、食事量、性情が異なります.
    3.クラスの三大特徴(オブジェクト向けプログラミング)
  • ①パッケージ
  • ②継承
  • ③マルチステート
  • 3.1類のパッケージ
    クラスは通常、次の2つの部分に分けられます.
  • クラスの内部実装の詳細;
  • クラスの外部使用方法;

  • 例えば、ユーザーが携帯電話を使うには、どのように使うかを知る必要がある.携帯電話開発者は、携帯電話内部の実現の詳細を考慮する必要がある.
    3.1.1アクセス制御
    クラスの各メンバー変数とメンバー関数が公開されるわけではありません.例えば、女の子は自分の体重を他人に知られたくないweightと年齢age男の子は自分の身長heightと給料salaryを他人に知られたくない.いくつかの属性は対外公開されている.例えば、名前、学歴、国籍などである.したがって、クラスでは、メンバー変数とメンバー関数にアクセスレベルを定義できます:private:プライベートメンバー、クラス内部でのみprotected:public:公開メンバーを使用できます.メンバー変数とメンバー関数をクラス内部と外部で使用できます.
    個人にとって重要なのはプライバシーであり、データにとって重要なのは安全である.
    class Girl{
    public:
        char *name;
        int age;
        int weight;
    };
    
    class Boy{
    private:
         int height;
         int salary;
    
    public:
        char *name;
        int SetHeight(int ht)
       {
            if( ht<=20 || ht>3500 )      //        ,                
              return -1;
    
            height = ht;
            return height;
       }
       ......
    };
    

    3.1.2メンバーの役割ドメイン
  • クラスメンバーの役割ドメインはクラスの内部にのみ存在します.
  • メンバー関数は、メンバー変数に直接アクセスし、メンバー関数を呼び出すことができる.クラスの外部はクラス変数からpublicメンバーにアクセスできますが、クラスメンバーの役割ドメインはアクセスレベルとは関係ありません.
  • #include 
    
    int i = 1;          //      
     
    struct Test
    {
    private:
        int i;         //        i
    
    public:
        int j;
      
        int getI()
        {
            i = 3;       
            return i;
        }
    };
    
    int main()
    {
        int i = 2;      //      i
    
        Test test;
        test.j = 4;
        printf("i = %d
    ", i); // i = 2; printf("::i = %d
    ", ::i); // ::i = 1; // printf("test.i = %d
    ", test.i);// Error , printf("test.j = %d
    ", test.j); //test.j = 4 printf("test.getI() = %d
    ", test.getI()); // test.getI()=3 , return 0; }

    クラスのパッケージメカニズム(public/private)は、使用方法と内部の詳細を分離する.
    3.2類の継承
    続きます...
    3.3類の多態
    続きます...