練習問題 30 本で 1 日特訓 Java 入門 研修コースに参加してみた

今回の研修参加レポートは 練習問題 30 本で 1 日特訓 Java 入門 です!
SEカレッジでは 3 時間で学ぶコースが多いのですが、1 日のコースも増えています。
このコースも 1 日コースで、 Java のサンプルコードを元にした練習問題を 30 本用意して、
これを一日中繰り返し、特訓するというものです。
プログラミング言語を学ぶときはサンプルコードをもとに 写経 を行いますが、書籍やテキストによってはこのサンプルが少なく、またプログラミング初心者では 改造のアイデアが湧かない ときが結構あります。
このコースでは 30 本のサンプルそれぞれに改造のお題があるので、とっっっっってもありがたいものでした!!! (はぁ、いま学んでる言語でも欲しい…)
では、コース内容をレポートします!!
もくじ
コース情報
想定している受講者 | パソコンの基本操作ができること |
---|---|
受講目標 | Java の基本構文とオブジェクト指向に関する構文をマスターする |
講師紹介
講師はお馴染みの 矢沢 久雄 さんです。

『プログラムはなぜ動くのか』(日経 BP 刊)が大ベストセラー
IT技術を楽しく・分かりやすく教える “自称ソフトウェア芸人”
プログラミング歴は 40 年 (!!) とのことでした。 40 年前、 1970 年代後半にあったプログラミング言語はどんなものがあったのでしょうか。
矢沢さんはプログラミングにおける色々なパラダイムシフトをご経験されているのですね。
皆さんの自己紹介
- プログラミング経験
- ほとんどはじめてという方が大半でした
- Java 経験
- ほとんどはじめてという方が大半でした
コース内容
今日の進め方を紹介していただいたのですが、とにかく学習の最初からプログラムを作れるようにはならないので、改造してやってみることを繰り返すうちに出来るようになるとのことでした。
プログラミングをマスターするコツ
また以前の Javaプログラミング入門(1) プログラミングの基礎を知る 研修コースに参加してみた でも触れたプログラミングをマスターするコツを教えていただきました。
- ソースコードを音読する(言語ですから)
- エラーを嫌がらない (解決する喜び)
- こうなるはずだ、と予測してから実行する (ヤタ! or え~っ!)
- エラーはエラーになる原因がある
- サンプルを自分のアイデアで改造する (自分の考えを表現する練習です)
実際に 「こうなるはずだ」というのは、このあとのサンプルを動かすときにも実演されていて、改造して実行するときはとてもドキドキするようになりました!
Hello World!!
でプログラミングのお作法を知る
では、実習に入る前に、 Hello World
のプログラムを通じて、実習環境の確認とプログラミングのお作法を解説いただきました。
public class HelloWorld {
public static void main(String[] args) {
System.out.println("hello, world");
}
}
まずは動作確認
- プログラミングを始める前に動作確認してみることが重要です
- そのためにプログラミング言語のサンプルには
Hello World
が用意されています - コンパイルすると
.class
ファイルが作成されます- Windows 用の .exe ではなく、 Java の場合、どこでも実行できるように .class を使います
- 動かすときに「 class を動かす」というイメージが重要です
改造するテクニック
- 文章を変えてみよう
- 文章を加えてみよう
また、エラーに慣れるよう ;
を外して、エラーを起こしてみました。
ソースコードを読むときの注意点
続いて、ソースコードを読む上で、注意点も挙げていただきました。
- 大文字小文字をどう使い分けるのか理解しましょう
- 基本はすべて小文字で書きます
- クラス名だけは先頭を大文字にします
String
も実はクラスSystem
も実はクラス- 複数の言葉をつなぐときは区切りの文字を大文字にします
nextDouble
- キャメル (らくだ) 形式といいます
- 定数はすべて大文字にします
- 変数は数値が変わるものだけど、決まっているのが定数
- 英語の意味は調べるようになりましょう
void
は空っぽとかそういう意味args
は arguments の略で引数という意味println
のln
は line の略
こういった約束がわかると、なんとなく読めるようになるので不思議です。
このあとの進め方
演習を始める前に、進め方を解説いただきましたが、知識や経験にあわせて次の課題にどんどん行けるのが良いですね。ドリルのようです。
練習問題とサンプルプコードの一覧
30 本用意されたサンプルコードは、大きく 4 つのパートに分かれていて、プログラミングの基本から Java の基本、オブジェクト指向と順を追って身につけられるようになっていました。
リンクを辿るとサンプルコードが見れるようになっていますので、独学で写経するだけでもオススメです。
(改造のお題を知りたい方はコースに参加してください!!)
Java の基本構文1 (配列などデータ型、演算子など)
- サンプル1 入力、演算、出力 // このあと紹介します
- サンプル2 データ型と算術演算子
- サンプル3 文字と文字列
- サンプル4 キャスト(型変換)
Java の基本構文2 (分岐、繰り返し、例外処理、メソッドの書き方など)
- サンプル5 if文による条件分岐と比較演算子
- サンプル6 switchによる条件分岐
- サンプル7 while文による繰り返し
- サンプル8 do~while文による繰り返し
- サンプル9 for文による繰り返しと1次元配列
- サンプル10 mainメソッドの引数と1次元配列
- サンプル11 for文による多重ループと2次元配列
- サンプル12 拡張for文による繰り返し
- サンプル13 メソッドの作成
- サンプル14 参照型
- サンプル15 例外処理
Java によるオブジェクト指向プログラミング1 (クラスの定義、インスタンスの生成、など)
Java によるオブジェクト指向プログラミング2 (継承、カプセル化、多態性、など)
- サンプル20 クラスの継承とメソッドのオーバーライド
- サンプル21 カプセル化とアクセサメソッド
- サンプル22 抽象クラスと多態性
- サンプル23 インターフェイスと多態性
- サンプル24 集約
- サンプル25 オブジェクトの比較とキャスト
- サンプル26 オブジェクトを引数に渡す、オブジェクトを戻り値として返す
- サンプル27 例外クラスの作成と例外のスロー
- サンプル28 ジェネリクスとボクシング
- サンプル29 列挙型(enum)
- サンプル30 ガベージコレクション
実際の練習問題 ~サンプルコード 1
では、取り組んだサンプルコードのうち、どのような練習問題をしたのか再現してみます。
// サンプル1 入力、演算、出力
import java.util.Scanner;
public class Sample1 {
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
double a, b, wa, sa, seki, sho;
// キーボードから2つの数値を入力する
System.out.print("1つ目の値を入力してください = ");
a = scn.nextDouble();
System.out.print("2つ目の値を入力してください = ");
b = scn.nextDouble();
// 2つの数値の四則演算を行う
wa = a + b;
sa = a - b;
seki = a * b;
sho = a / b;
// 演算結果を画面に表示する
System.out.println("加算結果 = " + wa);
System.out.println("減算結果 = " + sa);
System.out.println("乗算結果 = " + seki);
System.out.println("除算結果 = " + sho);
}
}
練習問題に必要な知識を解説
練習問題に取り組む前に、サンプルコードの解説だけでなく、コードを読むのに必要な Java の基礎知識の解説があります。
Java とは
サンプルコード 1 では Java の特長も紹介いただきました。
- 矢沢さんが 10 年くらい前に見た資料で、 Java には最初から用意されているクラスライブラリの数が 4000 種類ぐらいありました (いまはもっとあります)
- 4000 種類以上もあると大変なので、パッケージという単位で分けています
- 覚えられないので、とにかくググりましょう
- ex. “java キーボード入力” のように “java (したいこと)” で調べる習慣を身につけましょう
- Java の 公式ドキュメント も参考にするとよいでしょう
Java の基本的な書き方
- ライブラリの宣言
import
は輸入するという意味ではなく使うぞ、という意味で考えると良いです- 書き方は
パッケージ名.クラス名
で書きます String
とかSytem
とかはいらないの?- java.lang のクラスは宣言なしに使って良いんです。(わかりにくい。。)
- 変数の宣言
- データ型は
double
小数点 とint
( integer ) 整数 があります - 書き方は
データ型 変数名;
で書きます
- データ型は
- コメントを書いておくと読みやすくなります
- 演算子について
a = scn nextDouble
の=
は代入するという意味+
は 数値なら加算、文字列なら連結します
動作確認
このように必要な知識とソースコードを解説頂いた上で、次はコマンドラインで動作確認です。
C:\Users\User\Documents\practice_java> javac (file_name).java
C:\Users\User\Documents\practice_java> java (file_name)
練習問題に取り組む
その上で、サンプルコードの改造内容と、どのような結果が得られるとよいのか、練習問題を紹介いただきました。
さらに例えばの改造例として、「出力結果を小数点以下 1 位だけにする」のようなものも紹介していただきました。
実際に改造してみると、ソースコードに書いている内容がわかり、また実行結果まで例示されているので、非常に試しやすいものでした。
プログラミングに慣れるには、とても良い方法だと実感できました!!
まとめ
1 日通して、 Java の 30 本のサンプルコードを題材とした練習問題に取り組み、文字通り Java プログラミングの特訓をしました。
プログラミングをマスターする手順として、
- サンプルコードを書く (コースでは割愛)
- 実行してみる
- 改造する
これが近道であることを体験できました!! 特に改造はわかってないことが分かって、めっちゃいいぞ。
コースに参加するだけでなく、帰ってからも改造に取り組めるので、プログラムを書きたい方にはとてもオススメのコースです!!

SEプラスにしかないコンテンツや、研修サービスの運営情報を発信しています。