ZJU-javaアドバンスノートの第1週と第2週(クラスとオブジェクト、オブジェクトの相互作用)

  1. オブジェクト変数はオブジェクトの管理者であり、所有者ではありません
VendingMachine vm = new VendingMachine();
  1. これは現在のオブジェクトを参照します

  2. メンバー関数は、このクラスの他のメンバー関数を直接呼び出すことができます(ドット演算子なし)

    void insertMoney(int amount) {
    
    
        balance = balance + amount;
        showBalance();
}
  1. メンバー関数で定義されるのはローカル変数であり、クラスで定義され、メンバー関数の外側はメンバー
    変数です。ローカル変数のスコープと存続期間は関数の内部です
    。メンバー変数のスコープはクラスのすべてのメンバー関数あり、存続期間はオブジェクトです。一生

  2. ローカル変数
    は、クラスのメンバー変数に初期化(初期値を割り当てる)する必要があります。Javaは初期値を与えることを保証します
    。メンバー変数の定義と初期化
    ①直接割り当て、②呼び出し関数と③定義済みメンバー変数、および④構築による関数

  3. クラスと同じ名前のコンストラクター(クラスの各オブジェクトが作成されるときに自動的に呼び出される関数)、
    注:
    戻り値

    、有無にかかわらず、複数の(オーバーロードされた)パラメーターにすることはできません。

  4. クラスのメンバー変数は、他のクラスのオブジェクトにすることができます

  5. プライベートとは、クラス内でのみアクセスできることを意味します。つまり、メンバー変数を使用できる場所は2つだけです
    。1つは他のメンバー変数の定義と初期化ですもう1つは
    メンバー関数内です。
    ただし、この制限はクラスに対するものであり、オブジェクトに対するものではありません
    。異なるオブジェクトは

    他のオブジェクト(オブジェクト)のプライベートメンバー相互にアクセスできます。例(注:これはFractionクラスのメンバー関数です)

Fraction multiply(Fraction r){
    
    
        return new Fraction(zi*r.zi,mu*r.mu);
}

注:新しいフラクションは、フラクションrのメンバー変数zimuを使用できます。

  1. public static void main(String[] args){} 同じパッケージの下の複数のクラスに表示できます

  2. 非常に正当な理由がない限り、メンバー変数はプライベートである必要があり、この方法でのみ、外部からの使用から保護することができます。

  3. アクセス属性がない場合、つまりパブリックでもプライベートでもない場合は、フレンドリです。つまり、同じパッケージ内の他のクラスがアクセスできます。

  4. コンパイルユニット(ユニット)は.javaファイルです。
    コンパイルユニットに複数のクラスがある場合、最大で1つのパブリッククラス

  5. 同じクラス名の他のパッケージとの競合を防ぐために、display。*をインポートすることはお勧めしません。

  6. クラスは説明であり、オブジェクトはエンティティです。クラスで記述されているメンバー変数は、このクラスのすべてのオブジェクトにあります。
    また、メンバーがstaticキーワードによって変更された場合、そのメンバーはすべてのオブジェクトに属するのではなく、クラス全体に属しますそれらはクラス変数とクラス関数です。

これらのクラス変数とクラス関数には、各オブジェクトからアクセスできますが、クラスの名前からアクセスすることもできますクラス関数はどのオブジェクトにも属していないため、それらを呼び出すオブジェクトとの関係を確立する方法がないため、非静的メンバー変数およびメンバー関数にアクセスできません。(静的関数内で非静的変数にアクセスすることはできません)

つまり、静的変数は一意です。同じクラスのすべてのオブジェクトによって共有されます。

静的変数は、クラスがプログラムに入るときにのみ初期化されます(クラスのロード)

おすすめ

転載: blog.csdn.net/weixin_44997802/article/details/108453980