中山清喬/国本大悟 : スッキリわかる Java 入門第3版

作成日 : 2023-02-09
最終更新日 :

概要

まえがきから引用する。

(前略) 「楽しく、しかし現場で本当に求められるスキルを」と考え実戦してきた以下の 3 つのコンセプトを、 親しみやすいイラストとゲーム題材でやわらかく包んで入門書に仕上げました。(後略)

感想

Java を再度勉強してみようと思い立って借りた本だ。 読んでいくうちに、私が将棋以外のゲーム、特にロールプレイングゲーム(RPG)などのコンピュータゲームに疎いことがわかった。 というのも、たとえばクラスの設計で、属性に HP が出てくる。あれ、HP でなんだっけ。 まさかヒューレット・パッカードでもないし、病院(ホスピタル、昔私がいた業界では〇〇病院をよく〇〇 HP などと書いた)、 まして馬力(HorsePower)でもないだろう。そういえば、ヒットポイントということばを聞いたことがあったが、 これだったろうか。

オブジェクト指向といえば、クラスである。本書でもゲームを題材にしているおかげで、いろいろなクラスが出てくる。 Hero クラスはまだわかるが、Matango クラスが出てきて困った。もちろん、これは「お化けキノコ」であることが前後を読めばわかるが、なぜ Matango という名前なのだろうか。 調べてみると、これは、マタンゴと呼ばれる毒キノコを扱った日本の特撮映画「マタンゴ」から来ていることがわかった。

この本では、最新の Java のバージョンを説明しました。(中略) Java は確固とした開発のロードマップを持っており、既存の機能と新たな能力で開発者と企業に刺激を与え続けています。 (中略)開発者として、あなたは新たな Java の機能と改善に今まで以上に短期間に取り組むことが求められます。

すべての開発者が新たな Java のバージョンがリリースされるごとに改善点と追加点を学ぶべきです。(後略)

わたしは Java の開発者ではなくてよかったと思った。

Amber プロジェクト

Amber プロジェクトは Java のいろいろな機能拡張をまとめて扱うプロジェクトである。その中の 4 つの機能が解説されている。 以下記しているのは、本書が刊行された以降の情報だ。

拡張 Enum 型

第 13 章の拡張 enum 型は JEP 301 で提案されたが、その後撤回された(withdrawn)。従って、 Java では使うことはできない。https://openjdk.org/jeps/301 を参照。

データクラスとその利用方法

第 14 章データクラス(レコード)は、JEP 359 で提案され、Java 14 でプレビュー言語機能となっている。 プレビュー言語機能に関しては、下記を参照のこと。
https://docs.oracle.com/javase/jp/19/language/preview-language-and-vm-features.html
その後 JEP 384 で第2のプレビュー言語機能となり、最終的に JEP 395 でレコードが正式に Java 16 で採用されている。

テキストブロック

テキストブロックは 2 度のプレビュー言語機能 (JEP 355, JEP 368) を経て、JEP 378 で正式に Java 15 で採用されている。

ラムダの改善ポイント

第 16 章のラムダの改善ポイントは JEP 302 であり、これは Candidate の状態である。

パターンマッチング

第 17 章のパターンマッチングは本書刊行の時点では JEP 305 がプレビュー言語機能の状態だった。 その後 JEP 375 で二度めのプレビュー言語機能となり、最終的に JEP 394 で Java 16 で正式採用された。

この章で使われているコード例はなかなかこわい。 dyingFish() という関数が定義されていて、この関数はオブジェクトを一つ引数にとる。ここで引数のオブジェクトは 次の (Ocean|Sea|River) のいずれかのクラスに定義されている。dyingFish 関数は、 引数が Ocean に所属していたらメソッド getBottles() を呼び出し、 Sea に所属していたらメソッド getDeadFish() を呼び出し、River に所属していたらメソッド getPlasticBags() を呼び出す。 getPlasticBags() は数を返すメソッドで、dyingFish 関数はこの数が 100 を越えていたら次のメッセージを出す。
"Say no to plastic bags. Fish are dying!"
別のコード例は少し文面が違う。
"Humans enjoy! Fish die!"
なかなか凄い。

書誌情報

書名 スッキリわかる Java 入門第3版
著者 中山清喬/国本大悟
発行日 2019 年 11 月 21 日 初版
発行元 インプレス
定価 2600 円(本体)
サイズ A5 版
ISBN 978-4-295-00780-7
備考 越谷市立図書館で借りて読む

まりんきょ学問所コンピュータの部屋コンピュータの本Java > 中山清喬/国本大悟 : スッキリわかる Java 入門第3版


MARUYAMA Satosi