Javaでの変数のスコープ[コーディング例付き]
公開: 2021-02-05目次
序章
プログラマーは、変数がアクセス可能または表示される領域についてコンパイラーに通知するJavaの変数のスコープを定義します。 Javaの変数のスコープは、本質的に静的です。 これは、コンパイル時にのみ宣言する必要があることを意味します。 この記事では、Java変数のスコープとそのタイプについて学習します。
Javaの変数のスコープは何ですか?
プログラミング言語で使用されるすべての変数はスコープを保持します。 スコープは、変数がアクセス可能または使用されるプログラム内のセグメントについてコンパイラーに通知します。 プログラマーは、Java変数の場合、変数を字句的または静的にスコープできます。
静的スコープ変数は、プログラマーが実行時ではなくコンパイル時にJavaの変数のスコープを決定する必要があることを意味します。 また、すべてのクラスがJavaパッケージの一部であることに注意してください。 これは、Javaの変数のスコープの2つの異なるカテゴリに要約されます。
1.クラススコープを持つメンバー変数:メンバー変数はクラスのメンバーであるため、クラス内で宣言されますが、メソッドや関数内では宣言されません。 したがって、クラススコープやクラスレベルスコープなどの可変スコープに対応できます。 プログラマーは、アクセス修飾子とともに、クラスの中括弧( {} )内でそのような変数を宣言します。 プログラマーは、Javaクラス内のどこでもそのような変数を使用できますが、Javaクラスの外部では使用できません。
例:
パブリッククラスEgOfClassScope{

プライベート整数amt=10;
public void egMethod(){
amt + = 10;
}
public void anotherExampleMethod(){
整数AmtIncr=amt + 6;
}
}
'amt'変数は、クラスのすべてのメソッド内でアクセス可能であることがわかります。 privateの代わりにpublicaccess修飾子を使用すると、パッケージ内のどこからでも変数にアクセスできるようになります。
修飾子 パッケージサブクラスワールド
公衆 はい はい はい
保護 はい はい 番号
デフォルト(いいえ
修飾子) はいいいえいいえ
プライベート いいえいいえいいえ
2.ローカルスコープまたはメソッドスコープ:プログラマーは、範囲が狭いローカルスコープでローカル変数を宣言できます(メソッド内で想定します)。 プログラマーは、同じクラスであっても、Javaメソッドの外部からそのような変数にアクセスすることはできません。 アクセシビリティには制限があり、Javaメソッドのスコープが終了すると可視性が終了します。
例1:
パブリッククラスEgOfMethodScope{
public void FirstMethod(){
整数給与=6000;
}
public void SecondMethod(){
//これにより、コンパイル時エラーが発生します:領域を変数に解決できません
給与=給与+2000;
}
}
これはメソッドスコープの例です。 ここでは、FirstMethod(){…。}内に変数「salary」を作成しました。 したがって、そのスコープはFirstMethod()の最後で終了します。 したがって、SecondMethod()でこの変数を使用すると、変数'salary'が範囲外であるため、エラーが発生します。
例2:
クラスEgOfMethodScope2
{{
private int g;
public void setG(int g)
{{
this.g = g;
}
}
ここでは、「this」キーワードを使用して、ローカルスコープとクラス変数のスコープを区別します。 プログラマーはこのキーワードを使用して、現在のオブジェクトを参照変数としてポイントします。 ここで、プログラマーは変数をパラメーターとしてメソッドに渡します。
メソッドの実行が終了すると、ローカル変数は存在しないことに注意してください。 Javaメソッド内で使用されるローカルスコープの他の形式がありますが、その中の特定の部分にあります。

- ループスコープ:ループ内で変数を宣言する場合があります。 このような変数にはループスコープがあり、ループ内からのみアクセスできます。
例:
パブリッククラスEgOfLoopScope{
List <String> listOfEmp = Arrays.asList( "Karlos"、 "Gaurav"、 "Sue"、 "Dee");
public void iterateEmpName(){
文字列all=“”;
for(文字列名:listOfEmp)
{ //ループの範囲はここから始まります
all = all +””+名前;
} //ループスコープはここで終了します
//次のようなコンパイル時エラーが発生します:名前を変数に解決できません–次の行の変数にアクセスしようとすると
文字列lastEmpName=名前;
}
}
このメソッドiterateEmpName()では、変数'names'はループスコープを持ち(カウンター変数であるため)、'for'ステートメントの{および}内でアクセスできます。
- ブラケットスコープ:プログラマーは、プログラム内のどこにでも追加のスコープを定義できます。 プログラマーは、{および}括弧を使用してこの追加のスコープを定義できます。
例:
パブリッククラスEgOfBracketScope{
public void EgAddOp(){
整数tot=0;
{ //角かっこはここから始まります
整数番号=6;
tot = tot + no;
} //ブラケットスコープはここで終了します
//コンパイル時エラーが発生します:数値は変数として解決できません–次の行で使用されている場合
いいえ- ;

}
}
Javaの変数のスコープに関する重要なポイント
- 他のプログラミング言語(C、C ++、およびC#)と同様に、Javaで変数のスコープを定義するには、中括弧( {および} )のセットを使用する必要があります。
- メソッドスコープ外のクラス内で変数を定義すると、どのメソッドからでも変数にアクセスできます。
- ループの終了後に変数を使用するには、ループの本体の前またはすぐ上で変数を宣言する必要があります。
- ただし、コンストラクター、Javaメソッド、およびブロックがないと、実装またはアクセスできません。
- 静的変数のスコープは、クラス内にのみ存在します。
- スコープは、変数にアクセスできるプログラム内の領域を定義します。
世界のトップ大学からオンラインでソフトウェア開発コースを学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。
結論
この記事では、プログラマーがJavaスコープを使用してさまざまなプログラムを作成する方法を示します。 また、変数が表示されるプログラム内の領域についても説明します。 スコープの概念により、アクセシビリティと可視性の両方がプログラミングで重要な役割を果たします。 変数のスコープを1つ間違えると、プログラマーはコンパイル時エラーにつながる可能性があります。
Javaスキルを向上させたい場合は、これらのJavaプロジェクトを手に入れる必要があります。 Java、フルスタック開発について詳しく知りたい場合は、upGrad&IIIT-Bのフルスタックソフトウェア開発のエグゼクティブPGプログラムをチェックしてください。これは、働く専門家向けに設計されており、500時間以上の厳格なトレーニング、9以上のプロジェクトを提供します。と割り当て、IIIT-B卒業生のステータス、実践的な実践的なキャップストーンプロジェクト、トップ企業との仕事の支援。
Javaの可変スコープとは何ですか?
変数のスコープは、プログラム内で参照できる場所です。 変数スコープは、変数宣言で「scope」キーワードを使用して指定されます。 'any'スコープでアクセスできる変数は、プログラムのどこからでもアクセスできます。 特定のスコープでのみアクセスできる変数は、そのスコープでのみアクセスできます。 スコープは、関数、ブロック、メソッド、クラス、またはすべてのメソッド、ブロック、クラスの外部にすることができます。
Javaのアクセス修飾子のタイプは何ですか?
Javaには、パブリック、プロテクト、デフォルト(パッケージ)、プライベートの4種類のアクセス修飾子があります。 publicは変数、クラス、または関数をどこからでもアクセスできるようにし、protectedはそれが定義されているクラスとそのサブクラスにアクセスできるようにし、default(package)は同じパッケージ内のすべてのクラスにアクセスできるようにし、privateはそれだけにアクセスできるようにしますそれが定義されているクラス。
Javaの静的キーワードとは何ですか?
Javaクラスのstaticキーワードは、そのように宣言されたクラスがクラスのインスタンスではなく、それ自体がクラスであることを示します。 クラスの静的データメンバーは、すべてのインスタンスに共通です。 staticキーワードは、クラスの静的メソッドとフィールドにアクセスするために使用されます。 Javaでは、staticキーワードは、クラスの静的メソッドとフィールドにアクセスするために使用されます。 クラスの静的メソッドとフィールドにアクセスするには、クラスの名前、ドット(。)、および静的メソッドまたはフィールド名を使用する必要があります。