Java変数タイプ

8264 ワード

Java変数タイプ
Java言語でサポートされる変数のタイプは次のとおりです.
  • クラス変数:メソッド以外の変数とは独立してstaticで修飾されます.
  • インスタンス変数:メソッド以外の変数とは独立していますが、static修飾はありません.
  • ローカル変数:クラスのメソッドの変数.
  • 1 public class Variable{
    2 static int allClicks=0;//   
    3 String str="hello world";//    
    4 public void method(){
    5 int I=0;//    
    6 }
    7 }

    Javaローカル変数
  • ローカル変数は、メソッド、構築メソッド、または文ブロックに宣言される.
  • ローカル変数は、メソッド、構築メソッド、または文ブロックが実行されたときに作成され、実行が完了すると、変数は破棄されます.
  • アクセス修飾子はローカル変数に使用できません.
  • ローカル変数は、宣言されたメソッド、構築メソッド、または文ブロックにのみ表示されます.
  • ローカル変数はスタックに割り当てられます.
  • ローカル変数にはデフォルト値がないため、ローカル変数は宣言された後、初期化されなければ使用できません.

  • インスタンス1
     1 public class Test{
     2 public void pupAge(){
     3 int age=0;//         ,         
     4 age=age+7;
     5 System.out.println("      :"+age);
     6 }
     7 public static void main(String[] args){
     8 Test test=new Test();//      
     9 test.pupAge();
    10 }
    11 }

    例2
     1 public class Test {
     2 
     3     int age;//    
     4 
     5     public void pupAge(int age) {
     6         this.age = age;
     7         System.out.println("pup's age is " + age);
     8     }
     9 
    10     public static void main(String[] args) {
    11         Test test = new Test();//    test
    12         test.pupAge(5);
    13     }
    14 }

     
    Javaインスタンス変数
  • インスタンス変数はクラスに宣言されますが、メソッド、構築メソッド、および文ブロックの外にあります.
  • オブジェクトがインスタンス化されると、各インスタンス変数の値が決定される.
  • インスタンス変数は、オブジェクトが作成されたときに作成され、オブジェクトが破棄されたときに破棄される.
  • インスタンス変数の値は、外部がこれらの方法でインスタンス変数情報を取得できるように、少なくとも1つの方法、構築方法、または文ブロックによって参照されるべきである.
  • インスタンス変数は、使用前または使用後に宣言することができる.
  • アクセス修飾子は、インスタンス変数を修飾することができる.
  • インスタンス変数は、クラス内のメソッド、構築メソッド、または文ブロックに対して表示されます.一般的には、インスタンス変数をプライベートprivateに設定する必要があります.アクセス修飾子を使用すると、インスタンス変数がサブクラス(subclass)に表示されます.
  • インスタンス変数にはデフォルト値があります.数値型変数のデフォルト値は0、ブール型変数のデフォルト値はfalse、参照型変数のデフォルト値はnullです.変数の値は宣言時に指定するか、構築方法で指定できます.
  • インスタンス変数は、変数名から直接アクセスできます.ただし、静的メソッドおよび他のクラスでは、完全修飾名:ObjectReference.VariableNameを使用する必要があります.
  • ≪インスタンス|Instance|emdw≫
    public class Employee {
    
        public String name;//         (subclass)  
        private double salary;//    ,    (superclass)  
        //     name  
    
        public Employee(String empName) {
            this.name = empName;
        }
    
        //  salary  
        public void setSalary(double empSal) {
            this.salary = empSal;
        }
    
        //    
        public void printEmp() {
            System.out.println("  :" + name);
            System.out.println("  :" + salary);
        }
    
        public static void main(String[] args) {
            Employee empOne = new Employee("RUNOOB");
            empOne.setSalary(1000);
            empOne.printEmp();
        }
    }
    

     
    Javaクラス変数(静的変数)
  • クラス変数は静的変数とも呼ばれ、クラスでstaticキーワードで宣言されますが、メソッドの外にある必要があります.
  • クラスが何個のオブジェクトを作成しても、クラスはクラス変数のコピーを1部しか持っていません.
  • 静的変数は定数として宣言される以外はあまり使用されません.定数とはpublic/private,finalおよびstaticタイプとして宣言される変数です.定数は初期化後は変更できません.
  • 静的変数は静的記憶領域に格納されます.定数として宣言されることが多く、static宣言変数を単独で使用することはめったにありません.
  • 静的変数は、最初のアクセス時に作成され、プログラムの終了時に破棄される.
  • は、インスタンス変数と同様の可視型を有する.しかし、クラスのユーザに可視化するために、ほとんどの静的変数はpublic型として宣言される.
  • のデフォルト値はインスタンス変数と似ています.デフォルト値があります.また、静的変数は静的文ブロックで初期化することもできます.
  • 静的変数は、ClassName.VariableNameからアクセスできます.
  • クラス変数がpublic static finalタイプとして宣言された場合、クラス変数名は一般的に大文字を使用することを推奨します.静的変数がpubliおよびfinalタイプでない場合、その命名方法はインスタンス変数およびローカル変数の命名方法と一致します.
  •  1 public class Employee01 {
     2 
     3     private static double salary;//salary        。
     4     public static final String DEPARTMENT = "    ";
     5 
     6     public static void main(String[] args) {
     7         salary = 1000;
     8         System.out.println(DEPARTMENT + "    " + salary);
     9     }
    10 }

    注:他のクラスが変数にアクセスしたい場合は、Employee.DEPARTMENTにアクセスできます.