クラスとオブジェクト1つ(クラスの定義方法とオブジェクトのインスタンス化方法)

1.オブジェクトの予備理解

1.1オブジェクト指向とは

image.png
Javaは純粋なオブジェクト指向言語(オブジェクト指向プログラム、OOPを継承)です。オブジェクト指向の世界では、すべてがオブジェクトです。オブジェクト指向は一種の問題解決のアイデアであり、主にオブジェクト間の相互作用に依存して1つのことを完了しますオブジェクト指向の考え方を使用してプログラムを関与させることは、人々の物事の認識とより一致しており、大規模なプログラムの設計、拡張、および保守に非常に適しています。

1.2オブジェクト指向およびプロセス指向

携帯電話の購入を例にとる
image.png
と、オブジェクト指向で携帯電話を購入する場合、携帯電話の購入プロセスや特定の携帯電話の購入方法に注意を払う必要はありません。とそれを取得する方法。あなたの携帯電話をつかむだけで、これらのプロセスはオブジェクト間の相互作用を通じて行われます
⚠️:プロセス指向とオブジェクト指向は言語ではありませんが、問題を解決する方法であり、良いことも悪いこともありません

2.クラスの定義と使用

オブジェクト指向プログラミングはオブジェクトに焦点を当てています

2.1クラスの簡単な知識

**クラスはエンティティ(オブジェクト)を説明するために使用されます。**主にエンティティ(オブジェクト)のどの属性(外観、機能)とどの機能(に使用される)を説明します。説明が完了すると、コンピューターを識別できます。 。たとえば、私が好きな女の子のタイプは、性別が女性で、身長が0より大きい、そして彼女が食べることができるというものです。これはタイプなので、ヒープ上にある神の視点から、このクラスを介して特定のオブジェクトをインスタンス化できます。実生活では、このクラスに基づいてオブジェクトを見つけて作成します。
では、Java言語で、上記の洗濯機クラスを定義するにはどうすればよいでしょうか。

2.2クラス定義フォーマット

image.png
classキーワードは、Javaでクラスを定義するときに使用されます

//创建类
class ClassName{
    
    
    field;//字段(属性)或者成员变量
    method;//行为或者成员方法
}

classはクラスを定義するキーワード、ClassNameはクラスの名前、{}のコンテンツはクラスの本体です

クラスに含まれるコンテンツは、クラスのメンバーになります。
クラスに含まれるコンテンツは、クラスのメンバーになります。属性は主にクラスを記述するために使用され、クラスメンバー属性またはクラスメンバー変数と呼ばれます。このメソッドは主に、クラスが持つ機能を記述し、クラスのメンバーメソッドになります

class MyGirlFriend{
    
    
    public String name;
    public String sex;//性别
    public int age;
    public int height;
    public String favouriteFood;
    public int hairLength;
    
    public void study(){
    
    
        System.out.println(this.name+"正在学习")}
}

洗濯機のクラスは、Java言語を使用してコンピューター定義で完了し、.classはjavacのコンパイル後に形成されます。これは、JVMに基づいてコンピューターで認識できます。
⚠️注:

  • クラス名は大きなキャメルケースで定義する必要があることに注意してください
  • メンバーの前の書き方が公開に統一されているのですが、なぜそうなるのかは後で詳しく説明します。
  • **ここで記述されたメソッドにはstaticキーワードがありません。**後で詳しく説明します

⚠️注:

  1. 通常、ファイルには1つのクラスのみが定義されます
  2. mainメソッドが配置されているクラスは、通常、publicで変更する必要があります(:Eclipseは、デフォルトでpublicの変更されたクラスでmainメソッドを検索します)
  3. publicによって変更されたクラスは、ファイルと同じ名前である必要があります
  4. public-decoratedクラスの名前を簡単に変更しないでください。

3.クラスのインスタンス化

3.1インスタンス化とは何ですか?

クラスの定義は、int doubleと同様に、コンピューターで新しい型を定義することと同じですが、intとdoubleはJavaに付属する組み込み型であり、クラスはMyGirlFriendなどのユーザー定義の新しい型です。これらのカスタム型を持つクラス(新しく定義された型)では、これらのクラスを使用してインスタンス(またはオブジェクト)を定義できます。
image.png
ここでは、日付クラスを実装します

/**
 * @Author 12629
 * @Date 2022/3/25 19:43
 * @Description: 实现一个日期类
 */
public class MyDate {
    
    

    public int year;
    public int month;
    public int day;

    /**
     * 设置日期:
     */
    public void setDate(int year,int month,int day) {
    
    
        this.year = year;
        this.month = month ;
        this.day = day;
    }

    public void printDate() {
    
    
        System.out.println("年:"+this.year+"月:"+this.month+"日:"+this.day);
    }

    public static void main(String[] args) {
    
    

        // this.printDate();

        MyDate myDate = new MyDate();

        myDate.setDate(2022,3,25);

        myDate.printDate();

        MyDate myDate2 = new MyDate();

        myDate2.setDate(2022,3,28);
        myDate2.printDate();

    }
}

⚠️注:

  • 新しいキーワードは、オブジェクトのインスタンスを作成するために使用されます
  • 。を使用して、オブジェクトのプロパティとメソッドにアクセスします
  • 同じクラスの複数のインスタンスを作成できます

3.2キーノート

  1. クラスは、エンティティを記述し、クラスが持つメンバーを定義するモデルのようなものです。
  2. クラスはカスタムタイプです
  3. クラスは複数のオブジェクトをインスタンス化できます。インスタンス化されたオブジェクトは実際の物理空間を占有し、クラスメンバー変数を格納します。

image.png

  1. 例:オブジェクトをインスタンス化するクラスは、実際には建築計画を使用して家を建てるようなものであり、クラスは計画のようなものです。
  2. メンバー変数に初期値が割り当てられていない場合、各メンバー変数は対応する0値、参照型はnullに対応し、bolleanはfalseに対応し、charはスペースである'\u0000'に対応します。

要約する

image.png
image.png
お役に立てば幸いです、
読んでくれてありがとう〜

おすすめ

転載: blog.csdn.net/qq_63511424/article/details/123796962