今回IDEであるeclipseを使って、プログラミング学習を行っているのだが、eclipseで「変数が未定義です」とエラーが出た時に、確認しておきたいことを整理した。
- 変数がそもそも宣言されていない
- 宣言はしているが、変数のスコープの適応外の場所で参照しようとする
- スペルミス
変数がそもそも宣言されていない・変数が初期化されていない。
変数がそもそも宣言されていないと、エラーになる。
使おうとしている変数がちゃんと宣言されているか、初期化しているかなどを確認する。
Javaの場合の変数の宣言と初期化は下記のようになる。
//変数の宣言
データ型名 変数名;
//変数の初期化
変数名 = 値;
//宣言と初期化を一緒に記述
データ型名 変数名 = 値;
プログラミング言語によっては、データ型を宣言しなくて良いものもある。
データ型宣言のメリットについては、下記に書いた。
動的型付け言語と静的型付け言語|データ型を宣言する・しないのメリットは?
データ型を宣言することで、コンパイル時にエラーが出てくれたり、演算処理のスピードが上がったり様々なメリットがある。
変数のスコープの適応外の場所で参照しようとする
変数のスコープ(宣言した変数が適応される場所)を無視して変数をおこうとすると、エラーが起きる。
Java言語でスコープで影響を与える要素としては、下記のブログが、全体像わかりやすく乗せていた。
- ローカル変数、インスタンスフィールド、static フィールド
https://nagise.hatenablog.jp/entry/20160425/1461589722
- 参照箇所がインスタンスメソッドか、staticメソッドか
- 継承階層
- アクセス修飾子 (public, protected, private, パッケージプライベート)
- 内部クラス(インナークラス)
- 匿名クラス・ラムダ式
- モジュール (Java9の新機能。参考: 「JavaOne 2015」レポート、注目浴びたProject Jigsaw | 日経 xTECH(クロステック))
上記の要素から、変数が、範囲外のところで置こうとするとエラーが出る。
なぜ変数のスコープをわざわざ作るのかという部分に関しては、下記に書いた。
なんでわざわざ変数のスコープなんて作るのか
スコープのメリットとしては、なるべく関係のない情報は無視して参照できないようにして、関係のある情報だけ参照できるようにすることでプログラムを整理することができる
アクセス修飾子についてはこちらでも書いた。
Staticや継承についてはこちら。
スペルミス
スペルミスはコードを書いていると頻繁に起きるものだが、最初の慣れないうちは、スペルミスという選択肢が頭になくなぜ間違っているのか発見できなかったりする。
大文字小文字の使い方なども気をつけていきたい。
全体像を把握する
下記にJavaやwebアプリケーションについての記事をまとめた。
-
-
Javaでwebアプリケーションを作る
ここでは、Javaでのwebアプリケーションの作成についてまとめていく。 そもそもwebアプリケーションとは? そもそもwebアプリケーションとは何か?ウェブサイトとの違いは? 下記にまとめた。 ...
続きを見る
コンピューターについての全体像も把握しておくと、プログラミングのさらなる理解に役立つ。
-
-
Screen-Shot-2021-06-11-at-11.45.16
続きを見る