Java クラスとオブジェクトの予備的な概要

オブジェクト指向は重要なプログラミングの概念です。本質的には、現実世界のオブジェクトをモデル化することです。明確な論理概念がなければ、このフレームワーク上で具体的な実装作業を実行できません。したがって、この記事では、この予備的な知識の整理に焦点を当てます。 。

1. オブジェクト

オブジェクトとは、世の中に存在するあらゆるものを意味し、人、コップ、アリ、携帯電話など、あらゆる具体的なものをオブジェクトと呼ぶことができます。

たとえば、ある人物を説明したい場合、通常、その人の身長は 180 cm、年齢は 19 歳、出身地は南京、髪は青いなど、特定の記述方法を使用して具体的に説明します。他の特性を表すことができるこれらの特定の点を、コンピューターではこれらの特性を属性と呼びます。しかし、彼は歌って、踊って、ラップして、バスケットボールをすることができます。これらの静的な特性と動的な動作を通じて、このオブジェクトをより具体的に理解することができます。
ここに画像の説明を挿入
特定の問題に直面した場合、オブジェクト指向の思考を使用して問題を解決することもできます。
手順は次のとおりです
(1) 問題内の特定のオブジェクトを抽象化します
(2) このオブジェクトの属性を特定して説明します
(3) このオブジェクトの一連の動的動作を特定します
(4) 既知の情報に基づいて問題を分析します

ここにもカプセル化の考え方が反映されており、人を記述するには、この人の属性や行動を記述する必要があり、人を記述するにはこれらの行動や属性をカプセル化する必要があります。クラスはオブジェクトのプロパティと動作をカプセル化することを目的とするキャリアであり、オブジェクトはクラスから抽象化された具体的なインスタンスであることがわかります。3

2.クラス

物事をカテゴリーとして記述することはできませんが、物事の大きなカテゴリーを総称する場合には、カテゴリーという概念を使って記述することができます。同じ特性や行動を共有する鳥、げっ歯類、クラスなどのもののクラスをクラスと呼びます。クラスは世界の物事の抽象名であり、オブジェクトはこの物事に対応する実体です。
Java では、属性は変数で表され、動作はメソッドで表されます。

class book{
    
    
    double price;
    String name;
    int year;//属性

    public String getName() {
    
    
        return name;
    }
}

この例では、単純な書籍クラスが書籍の特性、書籍の特定の価格、名前、発行年の属性を抽象化しており、メソッドは書籍インスタンス オブジェクトの名前の取得に対応しています。

メンバー変数
Java の属性はメンバー変数とも呼ばれます。この例では、メンバー変数は名前、年、価格です。メンバ変数と通常の変数に大きな違いはなく、初期値を代入してもしなくても構いませんが、初期値を代入しない場合はコンパイラによってデフォルト値が与えられます。
メンバー メソッド
この例では、getName() は
メンバー メソッドの構文を次のように定義します。

权限修饰符 返回值类型 方法名(参数类型 参数名)
{
    
    
....//方法体
return 返回值;
}

メンバー メソッドには、オブジェクトまたは基本変数であるパラメーターを含めることもできます。また、メソッドには、値を返す必要があるまたは返す必要がないさまざまなオプションを持たせることもできます。値を返す必要がある場合は、メソッド本体で return キーワードを使用できます。使用後、メソッドは実行を終了します。

パーミッション修飾子
Java のパーミッション修飾子には主に private、public、protected があり、クラスやクラスのメンバ変数、メンバメソッドへのアクセスを制御します。

privaによって変更されたメンバー変数は、このクラスでのみ使用でき、サブクラスでは表示されず、他のパッケージのクラスでも表示されません。クラスのアクセス許可がプライベートである場合、このクラスはそのクラス内のすべてのデータを非表示にし、ユーザーはそのデータに直接アクセスできません。
publicによって変更されたメンバーは、このクラスだけでなく、サブクラスや他のパッケージのクラスでも使用できます。変更されたメンバー変数、このクラスのサブクラス、またはこのパッケージ内の他のクラスがこのクラスのメンバー変数およびメンバー メソッドにアクセスできるように
保護します。
ここに画像の説明を挿入

3. オブジェクト指向の3大特徴

オブジェクト指向プログラミングには以下の 3 つの特徴があります
: 1. カプセル化
カプセル化とは、クラスをキャリアとしてオブジェクトの属性や動作をカプセル化することを指し、顧客はクラスの詳細を理解する必要がありません。例えば全自動洗濯機を使う場合、洗濯や乾燥などのボタンを押すだけで洗濯機が動きますが、ユーザーとしては具体的な完成プロセスを理解する必要がありません。 。
2. 継承
クラスとクラスの間にはつながりがあり、このつながりをアソシエーションと呼びます。「商品カテゴリーはスーパーマーケットカテゴリーと関連しており、ファストフードカテゴリーはトイレタリーカテゴリーと関連しています。もちろん、関連性と関連性の間には違いがあります。相続はより古典的な関係です。」
いくつかの問題を解決しているときに、いくつかのクラスを維持できるかどうかを考えることがあります。たとえば、オートバイの使用法を研究したいと考えています。オートバイは自動車のカテゴリに属します。カテゴリ内の属性とメソッドを変更できます。再利用されますが、オートバイには二輪である、ヘルメットを着用する必要があるなどの独自の特性もあります。この時点で、以前のオートバイ クラスの属性とメソッドを追加する必要があります。燃料補給としてメソッドを記述する必要がないため、効率が大幅に向上し、時間を節約できます。プログラムの単純さが改善され、エラーの可能性が減少します。
継承のポイントは、四角形、正方形、長方形、四辺形などの研究対象に共通する特徴を見つけることですが、その共通点は「4つの辺がある」ということです。平行四辺形の線は四角形の延長であり、四角形の性質と動作をうまく利用しています。
3. ポリモーフィズム
ポリモーフィズムも対面プログラミングでは重要な機能です。ポリモーフィズムには 2 つの意味があります。一つ目の意味は、操作名のさまざまな形式です。例えば、同じ操作「吠える」でも、同じ操作でも形式が異なる場合があります。実行する猫の場合は「ニャー」、犬の場合は「鳴く」 「ワン」を発します。オペレーション名のポリモーフィック機能は、さまざまなメッセージをオペレーションに渡すことができるため、オブジェクトは対応するメッセージに従ってさまざまな動作を生成できます。

おすすめ

転載: blog.csdn.net/qq_45742383/article/details/114370119