こんにちは。ECF Techブログ
担当 Michiharu.Tです。
Javaプログラミング入門記事の第1章をお送りいたします。
第1章のテーマは「Javaの基本」です。
本連載の初回および章立ての一覧については下記のリンクから確認できます。
解説動画
2023/11/27 解説動画を掲載しました。
1-1 Javaの三大要素
Javaのプログラムが最低限動作するのに必要な三要素について確認します。その三要素というのが下図にあるように、クラス・メソッド、そして命令文になります。
このうちクラスとメソッドはブロックと呼ばれる部分からできています。ブロック定義は次のとおりです。
定義部分{ //・・・ }
定義部分を変えることで、クラスになったりメソッドになったりします。それぞれの定義方法を確認します。
クラスの定義方法は次のとおりです。
public class クラス名{ //・・・・ }
まずは書き方をそのまま覚えてしまいましょう。クラス名の部分は好きな名前を入れることができます。
次にメソッドの定義方法です。
public static void main(String[] args){ //・・・・ }
こちらも書き方を一旦そのまま覚えてしまいましょう。メソッド定義はクラスブロックの中に記述する必要があります。最後に命令文です。
最後に命令文の書き方です。
命令文;
命令文には色々な書き方がありますので、まずは次のルールを確認しておいてください。
- 最後にセミコロン
;
をつけます。 - メソッドの中に記述します。
- メソッドの中に複数記述できます。
- クラスを書く
- メソッドを書く
- 命令文を書く
と理解しておけばOKです。
1-2 プログラムを書いてみよう
三大要素が分かったところで、早速プログラムを書いてみたいと思います。
-
メモ帳などのエディタソフトを開きます。本記事ではサクラエディタを使用しています。
-
下のプログラムを入力します。
public class Hello{ public static void main(String[] args){ System.out.println("Hello"); } }
次の点に注意しましょう。
- 大文字小文字を正確に記述します。
- 空白はすべて半角の空白を使います。
プログラムが完成したら、適当なフォルダの中にHello.javaというファイル名で保存します。本記事ではデスクトップに作成したjavaというフォルダ内にファイルを保存します。
これで最初のプログラムが完成しました。
1-3 Javaプログラムが動くまで
最初のプログラムができたところで、Javaのプログラムが動くまでの作業手順を確認しておきましょう。
最初の手順はテキストエディタでプログラムを書き、ファイルに保存することです。このファイルをソースファイル(source file) または単にソースと言います。
ソースファイルができたら、次にコンパイル(compile) という作業を行います。コンパイルは「翻訳」という意味の英語です。Javaで書かれたプログラムをコンピュータが理解できる言葉に変換する作業です。コンパイルはコンパイラというプログラムが行ないます。コンパイルによってコンピュータが理解できる言葉に変換されたファイルはクラスファイル(class file) と言います。
最後にクラスファイルをコンピュータに実行させれば、作成したプログラムを動かすことができます。
1-3-1 ソースファイルの作成
では実際にJavaのプログラムを動作させます。ソースファイルは1-2ですでに作成済みです。ここではソースファイルを作成する際のルールについて確認します。ルールは次の2つです。
- ソースファイルのファイル名はクラス名と同じにすること
- ソースファイルの拡張子は
.java
とすること
1-2で作成したファイルはクラス定義部分が次のようになっていますので、ファイル名はHello.java
となります。
public class Hello{ ~~~~ }
1-3-2 コンパイル
次にコンパイルです。コンパイルは、0章でもご紹介したjavacというプログラムを使用して行います。
始めにソースファイル(Hello.java)があるフォルダをカレントフォルダとして、コマンドプロンプトを開きます。下のリンクにある「起動方法2」の方法で、ソースファイルのあるフォルダをカレントフォルダとして開くようにしましょう。
コマンドプロンプトが開いたら、コンパイルを指示する命令を記述します。書き方は次のとおりです。
javac ファイル名
今回はカレントフォルダにあるHello.java というファイルをコンパイルしますので、
javac Hello.java
と書いてEnterキーを押します。プログラムに問題が無ければ、再度コマンドの入力状態に戻ります(下図)。
これでコンパイルは完了です。コンパイルが完了すると、ソースファイルと同じフォルダにHello.classというファイルができていることが確認できます。これがクラスファイルです。
1-3-3 実行
最後に実行です。実行する際はjavaというプログラムを使用します。
実行するためのコマンドは次のとおりです。
java クラス名
Hello.javaをコンパイルして作成されたクラスファイルを実行したい場合は
java Hello
と入力し、Enterキーを押します。
下図のようにHelloと表示されれば、プログラムの実行ができています。
本実習を実際にチャレンジして上手く動かなかった方は次のコンパイルエラーの内容を読んで、再チャレンジしてみてください。
1-4 コンパイルエラー
エラーについて学びます。エラー(error) はプログラムの誤りのことです。このうちコンパイルをした際に発生するエラーを特にコンパイルエラーと呼んでいます。コンパイルエラーはプログラムの文法に誤りがある場合に発生します。例えば下のプログラムでは、最後に;
が抜けていることがわかります。
public class Main{ public static void main(String[] args){ System.out.println("Hello") } }
上のプログラムをコンパイルしてみると、下のようにコンパイルが失敗し、エラーメッセージが表示されます。
これはMain.javaというファイルの3行目で、エラーが発生していることを表しています。エラーメッセージは';'がありません
となっていますので、;
をつけて再度コンパイルすることになります。
エラーメッセージを見るコツとして、まずは下の2つを実践してみましょう。
- どのファイルの何行目で起きているかを確認する。
- 複数のエラーが出たときは、最初に出たエラーを解消するように頑張る。
1-5 プログラム学習の基本スタイル
1-4まででプログラムの実行に必要な下の一連の作業を終えることができました。
- プログラムを書く
- コンパイルする
- 実行する
この後のプログラム学習も基本的にこの流れは変わりません。プログラム作成の流れを下図に示します。
ちなみに上図はフローチャートと言います。処理の流れを示す際に用いられる図です。
1-6以降は、下のようにMainという名前のクラスを定義したMain.javaを作成し、メソッド内を変更する形で様々なプログラムをご紹介します。
public class Main{ public static void main{ この部分に色々プログラムを書く } }
したがってコンパイル時は
javac Main.java
実行時は
java Main
となります。
1-6 System.out.println
最も代表的な画面表示の命令文であるSystem.out.println文を使えるようにしておきましょう。
文法は次のとおりです。
System.out.println(値);
値
の部分には文字列や数値などさまざまなものが記述できます。この書き方は値部分を表示した後に自動的に改行が入ります。改行をしたくない場合は下のようにln
を書かないようにします。
System.out.print(値);
System.out.println文を使ったプログラム例を示します。
プログラム例
public class Main{ public static void main(String[] args){ System.out.println("こんにちは。"); System.out.print("私の名前は、"); System.out.println("山田太郎です。"); } }
実行結果
こんにちは。 私の名前は、山田太郎です。
解説
3つの文が記述されています。下の2点がポイントです。
- 命令文は
;
で区切ることでいくつも書くことができます。 - 命令文は上から順番に実行されます。
また、
System.out.print("私の名前は、");
だけln
がついていないので「私の名前は、」の表示後は改行されません。
1-7 コメント
プログラムを読みやすくするためのコメントを紹介します。
プログラムの中にはコメントを入れることができます。コメントを簡単に言うと、プログラム中に記述できるメモ書きです。プログラムに説明を付け加えたりすることで、プログラムが読みやすくなります。
書き方は次の2種類があります。
1行コメント
//コメント
こちらは//
で始まり、その後ろがコメントになる書き方です。ただし、その行に限ります。
複数行コメント
/* 複数行コメント 複数行コメント */
こちらは/*
で始まり*/
で終わる書き方です。/*
と*/
の間であれば、複数行にまたがってコメントを記述することが可能です。
コメントが入ったプログラム例を示します。
プログラム例
//自己紹介をするプログラムです public class Main{ public static void main(String[] args){ /* こんにちは。と表示したあとに改行します。 改行をするのでSystem.out.printlnを使います。 */ System.out.println("こんにちは。"); System.out.print("私の名前は、"); System.out.println("山田太郎です。"); } }
実行結果
こんにちは。 私の名前は、山田太郎です。
解説
1-6のプログラムにコメントを追加しました。//自己紹介をするプログラムです
と/* こんにちは。~~ 使います。*/
の部分はコメントです。
1-8 インデント
1章の最後はインデントについて説明します。
プログラムが見やすくなるように、ブロックごとに表記を右にずらす手法をインデント(indent) と呼んでいます。別名「字下げ」とも言います。下図は字下げされたプログラムの例です。
図に記載のあるとおり、インデントをキーボードから挿入する場合はTabキー を使います。一回Tabキーを押すごとに一定文字数文の空白が入ります。半角4文字分の空白が入るケースが一般的です。
図を見るとクラスにあたる1行目5行目が左側で揃っています。次にメソッドに当たる2行目と4行目が左側で揃っています。さらに命令文はメソッドの中であることがわかるように、さらに一段右にずれています。
このようにブロック内側の内容は、そのブロック開始行より右にずらします。