Java - 変数の型
変数は、プログラムが操作できる名前付きストレージを提供します。 Java の各変数には、変数のメモリのサイズとレイアウトを決定する特定の型があります。そのメモリ内に格納できる値の範囲。および変数に適用できる操作のセット。
すべての変数は、使用する前に宣言する必要があります。以下は、変数宣言の基本的な形式です-
data type variable [ = value][, variable [ = value] ...] ;
ここでデータ型 Java のデータ型の 1 つであり、変数 変数の名前です。指定した型の複数の変数を宣言するには、カンマ区切りのリストを使用できます。
以下は、Java での変数の宣言と初期化の有効な例です −
例
int a, b, c; // Declares three ints, a, b, and c. int a = 10, b = 10; // Example of initialization byte B = 22; // initializes a byte type variable B. double pi = 3.14159; // declares and assigns a value of PI. char a = 'a'; // the char variable a iis initialized with value 'a'
この章では、Java 言語で使用できるさまざまな変数の型について説明します。 Java には 3 種類の変数があります −
- ローカル変数
- インスタンス変数
- クラス/静的変数
ローカル変数
- <リ>
ローカル変数は、メソッド、コンストラクター、またはブロックで宣言されます。
<リ>ローカル変数は、メソッド、コンストラクター、またはブロックに入ると作成され、変数はメソッド、コンストラクター、またはブロックを出ると破棄されます。
<リ>ローカル変数にはアクセス修飾子を使用できません。
<リ>ローカル変数は、宣言されたメソッド、コンストラクター、またはブロック内でのみ表示されます。
<リ>ローカル変数はスタック レベルで内部的に実装されます。
<リ>ローカル変数にはデフォルト値がないため、最初に使用する前にローカル変数を宣言し、初期値を割り当てる必要があります。
例
ここで、年齢 ローカル変数です。これは pupAge() 内で定義されています メソッドであり、そのスコープはこのメソッドのみに限定されます。
ライブデモpublic class Test { public void pupAge() { int age = 0; age = age + 7; System.out.println("Puppy age is : " + age); } public static void main(String args[]) { Test test = new Test(); test.pupAge(); } }
これにより、次の結果が生成されます-
出力
Puppy age is: 7
例
次の例では age を使用しています 初期化しないと、コンパイル時にエラーが発生します。
ライブデモpublic class Test { public void pupAge() { int age; age = age + 7; System.out.println("Puppy age is : " + 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
インスタンス変数
- <リ>
インスタンス変数はクラス内で宣言されますが、メソッド、コンストラクター、または任意のブロックの外にあります。
<リ>ヒープ内のオブジェクトにスペースが割り当てられると、インスタンス変数値ごとにスロットが作成されます。
<リ>インスタンス変数は、オブジェクトがキーワード「new」を使用して作成されるときに作成され、オブジェクトが破棄されるときに破棄されます。
<リ>インスタンス変数は、複数のメソッド、コンストラクター、またはブロックによって参照される必要がある値、またはクラス全体に存在する必要があるオブジェクトの状態の重要な部分を保持します。
<リ>インスタンス変数は、使用前または使用後にクラス レベルで宣言できます。
<リ>インスタンス変数にはアクセス修飾子を指定できます。
<リ>インスタンス変数は、クラス内のすべてのメソッド、コンストラクター、およびブロックで表示されます。通常は、これらの変数を非公開 (アクセス レベル) にすることをお勧めします。ただし、アクセス修飾子を使用して、これらの変数にサブクラスの可視性を与えることができます。
<リ>インスタンス変数にはデフォルト値があります。数値のデフォルト値は 0、ブール値の場合は false、オブジェクト参照の場合は null です。宣言時またはコンストラクター内で値を割り当てることができます。
<リ>クラス内で変数名を呼び出すことにより、インスタンス変数に直接アクセスできます。ただし、静的メソッド内では (インスタンス変数にアクセシビリティが付与されている場合)、完全修飾名を使用して呼び出す必要があります。 ObjectReference.VariableName .
例
ライブデモimport java.io.*; public class Employee { // this instance variable is visible for any child class. public String name; // salary variable is visible in Employee class only. private double salary; // The name variable is assigned in the constructor. public Employee (String empName) { name = empName; } // The salary variable is assigned a value. public void setSalary(double empSal) { salary = empSal; } // This method prints the employee details. 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
クラス/静的変数
- <リ>
静的変数とも呼ばれるクラス変数は、クラス内で static キーワードを使用して宣言されますが、メソッド、コンストラクター、またはブロックの外部で宣言されます。
<リ>作成されたオブジェクトの数に関係なく、クラスごとに各クラス変数のコピーは 1 つだけです。
<リ>静的変数は、定数として宣言される以外はほとんど使用されません。定数は、public/private、final、および static として宣言される変数です。定変数は初期値から変更されません。
<リ>静的変数は静的メモリに格納されます。 final として宣言され、public または private 定数として使用される以外の静的変数を使用することはまれです。
<リ>静的変数は、プログラムの開始時に作成され、プログラムの停止時に破棄されます。
<リ>可視性はインスタンス変数に似ています。ただし、ほとんどの静的変数は、クラスのユーザーが使用できる必要があるため、パブリックとして宣言されています。
<リ>デフォルト値はインスタンス変数と同じです。数値の場合、デフォルト値は 0 です。ブール値の場合は false です。オブジェクト参照の場合は null です。値は、宣言中またはコンストラクター内で割り当てることができます。さらに、特別な静的初期化ブロックで値を割り当てることができます。
<リ>静的変数は、クラス名 ClassName.VariableName で呼び出すことでアクセスできます .
<リ>クラス変数を public static final として宣言する場合、変数名 (定数) はすべて大文字になります。静的変数が public および final でない場合、命名構文はインスタンスおよびローカル変数と同じです。
例
ライブデモimport java.io.*; public class Employee { // salary variable is a private static variable private static double salary; // DEPARTMENT is a constant public static final String DEPARTMENT = "Development "; public static void main(String args[]) { salary = 1000; System.out.println(DEPARTMENT + "average salary:" + salary); } }
これにより、次の結果が生成されます-
出力
Development average salary:1000
注意 − 変数が外部クラスからアクセスされる場合、定数は Employee.DEPARTMENT としてアクセスする必要があります
次は?
この章では、すでにアクセス修飾子 (パブリックとプライベート) を使用しています。次の章では、アクセス修飾子と非アクセス修飾子について詳しく説明します。
Java