ホームページ >Java >&#&チュートリアル >JAVAのクラスとオブジェクト(インスタンス変数とクラス変数の違い)(インスタンスメソッドとクラスメソッドの違い)の説明

JAVAのクラスとオブジェクト(インスタンス変数とクラス変数の違い)(インスタンスメソッドとクラスメソッドの違い)の説明

高洛峰
高洛峰オリジナル
2018-05-25 09:30:005008ブラウズ

この記事ではJAVAクラスとオブジェクトを紹介します(インスタンス変数とクラス変数の違い)(インスタンスメソッドとクラスメソッドの違い) 説明

インスタンス変数

  • インスタンス変数はクラス内で宣言されます, ただし、メソッドの外側では、

    オブジェクトがインスタンス化されるときに、各インスタンス変数の値が決定され、オブジェクトの作成時に破棄されます。
  • インスタンス変数の値は、少なくとも 1 つのメソッド、コンストラクター、またはステートメント ブロックによって参照される必要があります
  • 。これにより、外部がこれらのメソッドを通じてインスタンス変数情報を取得できるようになります。クラスメソッド、コンストラクター、またはステートメントブロックが表示されます。一般に、インスタンス変数はプライベートにする必要があります。アクセス修飾子を使用すると、インスタンス変数をサブクラスから見えるようにできます
  • インスタンス変数にはデフォルト値があります。数値変数のデフォルト値は 0、ブール変数のデフォルト値は false、参照型変数のデフォルト値は
  • null

    です。変数の値は、宣言時またはコンストラクターで指定できます。

  • インスタンス変数には、
  • 変数名

    を介して直接アクセスできます。ただし、

    static
  • メソッドや他のクラスでは、完全修飾名 ObjectReference.VariableName を使用する必要があります。
  • クラス変数(静的変数)

  • クラス変数は静的変数とも呼ばれ、クラス内でstaticキーワードを使用して宣言されますが、メソッドコンストラクターとステートメントブロックの外側になければなりません。

  • クラスが作成するオブジェクトの数に関係なく、クラスにはクラス変数のコピーが 1 つしかありません。

    静的変数は、
  • 定数

    として宣言される場合を除いて、ほとんど使用されません。定数は、パブリック/プライベート、final、および静的型として宣言された変数を参照します。初期化後に定数を変更することはできません。

  • 静的変数は静的記憶領域に格納されます。変数は定数として宣言されることがよくありますが、static のみを使用して宣言されることはほとんどありません。

  • 静的変数はプログラムの開始時に作成され、プログラムの終了時に破棄されます。 インスタンス変数と同様の可視性を持ちます。ただし、クラスのユーザーに見えるようにするために、ほとんどの静的変数はパブリック型として宣言されます。

  • デフォルト値はインスタンス変数と同様です。数値変数のデフォルト値は 0、ブール変数のデフォルト値は false、参照型のデフォルト値は null です。変数の値は、変数の宣言時またはコンストラクターで指定できます。さらに、静的変数は静的ステートメント ブロックで初期化することもできます。

  • 静的変数には、

  • Class
  • Name.VariableName

    を通じてアクセスできます。

  • クラス変数が public static Final 型として宣言されている場合、クラス変数名には大文字を使用する必要があります。静的変数が public 型または Final 型でない場合、その命名方法はインスタンス変数およびローカル変数の命名方法と一致します。

  • class TiXing{
        float up,height;
        static float down;
        
        TiXing(float x,float y,float z){
            up=x;
            height=y;
            down=z;
        }
    }
    
    public class ep3_9{
        public static void main(String args[]){
            TiXing one=new TiXing(1,2,3);
            System.out.println("one's down is:"+one.down);
            TiXing two=new TiXing(4,5,6);
            System.out.println("one's down is:"+one.down);
            System.out.println("two's down is:"+two.down);
        
            System.out.println("TiXing's down is:"+TiXing.down);
        }
    }

    インスタンスメソッドとクラスメソッドは、インスタンス変数とクラス変数にアクセスします
  • インスタンスメソッドは、現在のオブジェクトのインスタンス変数を操作でき、クラス変数も操作できます。インスタンス メソッドはインスタンス オブジェクトによって呼び出されます。

这篇文章介绍JAVA类与对象(实例变量与类变量的区别)(实例方法和类方法的区别 )说明クラスメソッドはインスタンス変数にはアクセスできません。アクセスできるのはクラス変数のみです。クラスメソッドはクラス名またはインスタンスオブジェクトによって呼び出されます。 This または

スーパー

キーワード

class TiXing{
     private float up,height;
     private static float down;
    
    TiXing(float x,float y,float z){
        up=x;
        height=y;
        down=z;
    }
    public void display(){
        System.out.println("up is:"+up+"height is:"+height+"down is:"+down);
    }
    public static void change(float number){
        down=number;
        //System.out.println("height:"+height);//出错
    }
}

public class ep3_9{
    public static void main(String args[]){
        TiXing one=new TiXing(1,2,3);
        one.display();
        TiXing two=new TiXing(4,5,6);
        one.display();
        two.display();
    
        //TiXing.display();//出错
        one.change(101);
        one.display();
        two.change(102);
        two.display();    
    }
}

はクラス メソッドには使用できません

以上がJAVAのクラスとオブジェクト(インスタンス変数とクラス変数の違い)(インスタンスメソッドとクラスメソッドの違い)の説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。