Movatterモバイル変換


[0]ホーム

URL:


酒と泪とRubyとRailsと

変数


🚕変数のスコープについて

同じスコープ内で同名の変数を定義することはできません。
ブロックでスコープを限定すれば、その外では同名の変数を定義できます。

publicstaticvoidmain(String.. args){
{// ブロックで囲むとスコープが定義される
int i =0;
System.out.println(i);//スコープ内ならコンパイルは通る
}
int i =1;// スコープ外で同名の変数を定義するのはOK
}

逆に、最初に変数を宣言した場合はスコープが重複する(シャドーイング)ためコンパルエラーとなります。

publicstaticvoidmain(String... args){
int i =0;
{
int i =0;// 上のiが有効なため、コンパイルエラー
}
}

フィールド変数の場合は重複してもエラーにはなりません。ローカル変数が優先されます。

classMain{
int i =0;// フィールド変数
voiddoSomething(){
int i =1;// ローカル変数
System.out.println(i);// ローカル変数が優先され、1を表示
System.out.println(this.i);// フィールド変数を使う場合はthisをつける。0が表示
}
}

👽参考リンク

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍

概要はじめに基本概念初心者向け入門資料整数(int, log)文字(char)文字列(String)コレクションと配列マップ(Map)セット(Set)日付(Date)列挙(Enum)バイト(byte)正偽型(boolean)プリミティブ型と参照型Optional型文法修飾子クラスメソッド例外処理初期化ブロック変数インタフェースについてリフレクションswitch文Comparable I/Fアノテーションイテレータ(iterator)Stream API/LambdaSpring Framework概要Hello WorldDI(依存性の注入)アスペクト指向プログラミングデータバインディングと型変換Controllerアノテーションフォーム利用プロパティ(設定値)管理バリデーションライブラリThymeleaf(テンプレート)Lombok(ボイラープレート)Jackson(JSONライブラリ)MyBatis(OR Mapper)JUnit(ユニットテスト)HibernateデザインパターンファクトリパターンシングルトンパターンテンプレートメソッドパターンTipsJavaのBest PracticeJavaのコーディング規約IntelliJ IDEAノウハウJSPについてJava Tips

[8]ページ先頭

©2009-2025 Movatter.jp