ソースコードを理解する

ソースコードはJavaの規則に従って書くテキストです。ファイル・クラス・メソッド・文の階層を読み、編集した内容がコンパイラへ渡されるまでを理解します。

この単元で学ぶこと

  • クラスとメソッドと文の構造を判定する
  • 型宣言とファイルの対応を判断する
  • ソース中の式と表示結果を区別する

本文解説

テキストとして保存する ソースコードは人が読むプログラムの記述です。public class Main{public static void main(String[] args){System.out.print("Hi");}}をMain.javaに保存します。文字を編集した段階と、コンパイラが読んで変換した段階を区別します。

クラスの外枠 class Main{...}はMainというクラスを定義します。publicなトップレベルクラスとしてMainを宣言する場合は通常のjavac環境でMain.javaというファイル名と対応させます。Java自体が名前の大文字小文字を区別する点にも注意します。

メソッドの内側 public static void main(String[] args){...}の中に実行する文を書きます。System.out.print("Hi");という呼出し文をそのままクラス直下へ置く形は不正です。クラス直下にはフィールド・メソッド・初期化子等を宣言できますが、どの文でも直接置けるわけではありません。

中括弧の対応 最初の{がクラス、次の{がmainなら、対応する}でそれぞれを閉じます。メソッドの閉じ括弧を忘れたままファイルを終えるとコンパイルエラーです。字下げは対応を見やすくしますが、実際の構造は中括弧で決まります。

表示する文字と計算式 System.out.print("2+3");は文字列2+3を表示します。System.out.print(2+3);は式を評価して5を表示します。ソース上に似た記号が並んでも、引用符の有無でデータと式の役割が変わります。

複数のクラス 一つのソースにpublic class Mainとpublicでないclass Helperを定義できます。Helper.value()をmainから呼ぶ例では、コンパイラがそれぞれのクラスに対応するclassを作ります。一ファイルへpublicなトップレベルクラスを二つ書けば、通常のファイル名規則を同時には満たせません。

宣言の順序 クラスのメソッドをソース上でmainより後ろへ書いても、適切な宣言があれば呼べます。一方、ローカル変数は利用する前に宣言し、値を読み出す前に必要な代入を済ませます。クラスのメンバーとローカル変数の規則を一緒にしないようにします。

編集後に作り直す 最初にHiを出すclassを作った後、ソースの文字だけをByeへ直しても既存classの中身は更新されません。通常のjavac→javaという二段階では、再コンパイルして新しいclassを作ってから起動します。ソース直接起動という別形式と混同しないでください。

図解

Main.javaの階層
中括弧の対応を追うと、各文がどの宣言へ属するかが分かる。

重要ポイント

  • 通常のJavaソースは.javaへ保存する。
  • publicなトップレベルクラス名とファイル名を対応させる。
  • 通常の実行文はメソッド等の適切な位置へ書く。
  • ソースを書き換えただけでは既存classの内容は変わらない。

間違えやすい点

  • Main.classを通常のテキストソースとして編集しない。
  • 中括弧を外してクラス直下へprintを書かない。
  • 表示したい文字列と実行する式を混同しない。

用語解説

ソースファイル
プログラムを言語の構文で記述したテキストファイル。
クラス宣言
クラス名とメンバーをまとめて定義する構文。
メソッド本体
呼出し時に行う処理を記述するブロック。

関連教材

参考資料

教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。

確認問題の出題・採点や学習履歴の保存にはログインが必要です。