Javaの変数の型
Java言語では、すべての変数は使用前に宣言する必要があります。 変数宣言の基本的なフォーマットは以下の通り:
type identifier [ = value][, identifier [= value] ...] ;
形式説明:Javaデータ型のタイプ。 識別子は変数名です。 あなたは、同じタイプの複数の変数を宣言するためにコンマを使用することができます。
ここでは変数宣言の例をいくつか示します。 いくつかの初期化プロセスが含まれていることに注意してください。
int a, b, c; // 声明三个int型整数:a、 b、c int d = 3, e, f = 5; // 声明三个整数并赋予初值 byte z = 22; // 声明并初始化 z String s = "w3big"; // 声明并初始化字符串 s double pi = 3.14159; // 声明了双精度浮点型变量 pi char x = 'x'; // 声明变量 x 的值是字符 'x'。
Java言語は、変数の型があるサポートしています。
- ローカル変数
- メンバ変数
- クラス変数
Javaのローカル変数
- メソッド、コンストラクタまたはステートメントのブロック内で宣言されたローカル変数。
- ローカル変数メソッド、コンストラクタ、またはステートメントのブロックを作成するために実行される、それらが実行された場合、変数は破棄されます。
- アクセス修飾子は、ローカル変数に使用することはできません。
- のみ、そのメソッド、コンストラクタ、またはステートメントブロック可視で宣言されたローカル変数。
- ローカル変数はスタックに割り当てられています。
- ローカル変数は使用する前に初期化する必要があり、ローカル変数が宣言されているので、デフォルト値はありません。
例1
以下の実施例で、年齢はローカル変数です。 pupAge()メソッドで定義され、その範囲は、この方法に限定されるだろう。
package com.w3big.test; public class Test{ public void pupAge(){ int age = 0; age = age + 7; System.out.println("小狗的年龄是: " + age); } public static void main(String args[]){ Test test = new Test(); test.pupAge(); } }
次のような結果をコンパイルした上記の例は次のとおりです。
小狗的年龄是: 7
例2
age変数以下の例では、コンパイル時にエラーになるよう、初期化されていません。
public class Test{ public void pupAge(){ int age; age = age + 7; System.out.println("小狗的年龄是 : " + age); } public static void main(String args[]){ Test test = new Test(); test.pupAge(); } }
次のような結果をコンパイルした上記の例は次のとおりです。
Test.java:4:variable number might not have been initialized age = age + 7; ^ 1 error
インスタンス変数
- インスタンス変数は、クラス内で宣言が、ブロック外の施工方法とステートメントの方法で、
- オブジェクトがインスタンス化されると、各インスタンス変数の値は、以下のように決定されます。
- オブジェクトが作成されるときに、オブジェクトが破壊破壊された場合の例では変数が、作成されます。
- 外部インスタンス変数は、これらの手段を介して情報を取得できるように、インスタンス変数の値は、少なくともメソッド、コンストラクタまたはステートメントのブロック参照でなければなりません。
- インスタンス変数は使用前または使用後に宣言することができます。
- アクセス修飾子は、インスタンス変数を変更することができます。
- インスタンス変数のクラスメソッド、コンストラクタ、またはステートメントブロックの場合はそれが表示されます。 通常の状況下では、プライベートインスタンス変数を行う必要があります。 アクセス修飾子を使用して、サブクラスにインスタンス変数を表示させることができます。
- インスタンス変数は、デフォルト値を有します。 数値変数のデフォルト値は0で、ブール変数のデフォルト値はfalseで、参照型の変数のデフォルト値はnullです。 変数の値は、宣言時に指定することができ、それはまた、コンストラクタで指定することができます。
- インスタンス変数は、直接変数名によってアクセスすることができます。 ObejectReference.VariableName:しかし、他のクラスの静的メソッドは、あなたが完全修飾名を使用する必要があります。
例:
import java.io.*; public class Employee{ // 这个成员变量对子类可见 public String name; // 私有变量,仅在该类可见 private double salary; //在构造器中对name赋值 public Employee (String empName){ name = empName; } //设定salary的值 public void setSalary(double empSal){ salary = empSal; } // 打印信息 public void printEmp(){ System.out.println("name : " + name ); System.out.println("salary :" + salary); } public static void main(String args[]){ Employee empOne = new Employee("Ransika"); empOne.setSalary(1000); empOne.printEmp(); } }
次のような結果をコンパイルした上記の例は次のとおりです。
name : Ransika salary :1000.0
クラス変数(静的変数)
- クラス変数は、静的キーワードを宣言するクラスの静的変数として知られているが、外側は工法とブロックのプロセスである必要があります。
- クラスは、オブジェクトの数を作成するかどうかは、クラスは、クラス変数のコピーを持っています。
- 静的変数に加えて、ほとんど使用されない定数として宣言されています。 定数は、変数、プライベート/パブリック最終的なものであり、静的な型として宣言されています。 初期化後の定数を変更することはできません。
- 静的変数は、静的メモリに保存されています。 多くの場合、それは一定の、めったに単独で使用しない静的変数の宣言として宣言しました。
- プログラムの作成を開始したときに、静的変数は、プログラムの終了時に破壊します。
- そして、インスタンス変数は、同様の可視性を持っています。 しかし、クラスのユーザに静的な型変数のほとんどはpublicとして宣言され、見ることができます。
- デフォルトおよびインスタンス変数似ています。 数値変数は、デフォルト値はデフォルトのブール値がfalseで、参照型のデフォルト値がnullの場合、0です。 変数の値はコンストラクタで指定する宣言時に指定することができます。 また、静的変数は、静的ステートメントのブロックで初期化することができます。
- 静的変数は以下のようになります 。アクセスのClassName.VariableName。
- 公共の静的な最終的なタイプ、クラス変数名は大文字を使用する必要がありますように、クラス変数が宣言されます。 静的変数は、パブリックおよび最終的なタイプ、一貫した命名し、そのインスタンス変数とローカル変数の命名されていない場合。
例:
import java.io.*; public class Employee { //salary是静态的私有变量 private static double salary; // DEPARTMENT是一个常量 public static final String DEPARTMENT = "开发人员"; public static void main(String args[]){ salary = 10000; System.out.println(DEPARTMENT+"平均工资:"+salary); } }
次のような結果をコンパイルした上記の例は次のとおりです。
开发人员平均工资:10000.0
注:この変数の他のタイプにアクセスする場合は、それがアクセスすることができます:Employee.DEPARTMENTを。
我々はJavaの変数の型を学ぶこの章では、次のセクションで我々は、Javaの修飾子の使用を紹介します。