Java Technology

変数が未定義ですとエラーが出た時に考えられること

2020-12-09

今回IDEであるeclipseを使って、プログラミング学習を行っているのだが、eclipseで「変数が未定義です」とエラーが出た時に、確認しておきたいことを整理した。

  1. 変数がそもそも宣言されていない
  2. 宣言はしているが、変数のスコープの適応外の場所で参照しようとする


変数がそもそも宣言されていない・変数が初期化されていない。

変数がそもそも宣言されていないと、エラーになる。

変数の宣言や、初期化は下記のようにできる。

//変数の宣言
データ型名 変数名;

//変数の初期化
変数名 = 値;

//宣言と初期化を一緒に記述
データ型名 変数名 = 値;


変数のスコープの適応外の場所で参照しようとする

変数のスコープ(宣言した変数が適応される場所)を無視して変数をおこうとすると、エラーが起きる。

Java言語でスコープで影響を与える要素としては、下記のブログが、全体像わかりやすく乗せていた。

- ローカル変数、インスタンスフィールド、static フィールド
- 参照箇所がインスタンスメソッドか、staticメソッドか
- 継承階層
- アクセス修飾子 (public, protected, private, パッケージプライベート)
- 内部クラス(インナークラス)
- 匿名クラス・ラムダ式
- モジュール (Java9の新機能。参考: 「JavaOne 2015」レポート、注目浴びたProject Jigsaw | 日経 xTECH(クロステック))

https://nagise.hatenablog.jp/entry/20160425/1461589722


上記の要素から、変数が、範囲外のところで置こうとするとエラーが出る。

他にも、変数の大文字小文字のスペルが違うとか、細かな理由もあるが、上記二点は初学者として、気をつけていきたい。

-Java, Technology