CodeZineに寄稿いただいている執筆コミュニティ「WINGSプロジェクト」代表の山田祥寛さんのJava本『独習Java 新版』が5月15日に刊行されました。Javaの基本が身につく初級者のための最新教科書です。
本書は、サーバーサイド技術からAndroidアプリ、組み込みアプリなど、幅広い用途で活用できるプログラミング言語Javaの解説書です。完全書き下ろしで、11年ぶりに新登場です。
手を動かしておぼえる(=書いて、実行して、結果を確認する)特長を生かし、Javaプログラミングに必要な知識・概念・機能を体系的かつ網羅的に習得できます。
基本的な言語仕様から、標準ライブラリ、コレクション、オブジェクト指向、ラムダ式/Stream API、スレッド、マルチスレッド処理、アノテーション、モジュールまで、サンプルプログラムを例示しながら詳細かつ丁寧に解説します。
一般読者からのコメント(yukiさん)
本書を手にした第一印象は、「とにかくすごいボリューム!」。600ページを超える本で、重量もさることながら、内容もビッシリ詰まっている。電車の中で通勤途中に読むのはちょっとつらいかも。PCデスクに向かって、コードを入力しながらガッツリ勉強していくタイプの本だ。
前半部の1~4章は、変数、演算子、制御構文などJavaの基本について。Javaというと、型にうるさくて頑固なおじさんみたいなイメージなのだが、Java10以降で、変数の宣言時にvarが使えるようになったらしい。これは便利。でも、いくつか制限があるようで、その辺もきちんと書いてあるのがありがたい。
「エキスパートに訊く」というコラムみたいな読み物がところどころにあって、読み進めていくうちに疑問に思ったことが、そこで紹介されていたりしているのが意外と役立つ。
5~6章は、標準ライブラリとコレクションを扱うリファレンス的な章。個人的には、正規表現のキャプチャグループやDate-Time API ⇔ Calendarの変換、特殊なコレクションの生成あたりがあまり知らないテーマだったので役立った。読み通すというよりも、困った時に引いて調べるのに重宝しそう。
7~9章は、オブジェクト指向プログラミングについて。ここが、本書のキモなのだろう。結構、難しい内容も扱っているが、図を多く使って説明されているので、丁寧に読めば概念を理解できる。ただ、9章あたりは自分にはハードルが高かった。章の途中や章末に練習問題があるのだが、結構間違えた。
10章は、ラムダ式/Stream APIを扱っている。ラムダ式は、今までいまいちよく分かっていなかったのだけど、ラムダ式を利用しない場合→メソッド参照を使った場合→ラムダ式を使った場合の説明で、仕組みが分かった。さらに、ラムダ式の簡単化(省略方法)についても、段階的に省略していくように説明されていて、分かりやすい。
11章は、高度なプログラミングということで、スレッド、モジュール、アノテーションなどのテーマが扱われている。個人的には、まだまだ情報の少ないモジュールが扱われているのがありがたい。
とにかく内容が充実していて、きちんと勉強したい人には、お勧めな1冊だと思う。サンプルも配布されているので、コード全体を確認することが出来て良い。
一般読者からのコメント(gengen33さん)
私は20年ほど前にホームページ作成を道楽で始めました。そして5年前にスマホでもみられるサイトを作成したくてHTML5を学びました。始めにHTMLとCSSの勉強をして、Webの画面効果を考えてJavaScriptの入門書を数冊購入してここで初めてJavaScript というプログラム言語を学び始めました。
ようやく最近になってもう少し発展させてAPIを利用したアルバムマップのようなWebアプリケーションを作れるようになったところなのです。
そんな訳で、付け焼き刃のようでプログラミング自体を基礎からしっかり学んだことはありません。ですからこれからJavaを学ぼうとするときに非常に高度なプログラミング言語に取り組む堅苦しさを感じておりました。
本書はそんなプログラム初心者でも、じっくりとまずは統合開発環境(IDE)を構築して Java の基本から制御構文、標準ライブラリ、オブジェクト指向構文と順に学習を進めることができます。
第1章はイントロでJavaの特徴を知り基本環境を整えることができます。本書で取り上げている Pleiades(プレアデス)という 統合開発環境 Eclipse(エクリプス)の日本語化されたパッケージを自分のパソコンにインストールすれば自動的にコンパイルから実行まで一気に行えます。インストールの手順もこのツールの実際の使い方も、見やすい図版入りで順を追って解説されていて、独自にネット上を検索してうまくいかずに苦労している初心者の方でも容易に学習を進めることができると思います。
コラム記事では、自分で作成したJavaアプリをコマンドラインからコンパイルし実行する方法もわかりやすく解説してありますので、自分の目と手で確認して学習を進め理解を深めることができます。
続く第2章から第4章はJavaの基本文法の解説があります。変数や型などの基本の基本のところから演算子そして条件分岐や繰り返し構文などの制御構文がJavaの特徴とともに詳しく解説されて、各章の終わりの理解度チェックで理解も深まります。
第5章と第6章では標準ライブラリの概要とその応用が詳しく解説されています。
第7章ではオブジェクト指向構文の基本を第8章と第9章でオブジェクト指向構文のカプセル化、継承、ポリモーフィズム、入れ子のクラス、例外処理等々の詳細を学びます。
私はここまでのところを繰り返し "写経" しながらJava中級者になり第10章以降の高度なプログラミングをこなし、Javaアプリを作れるようになりたいと思っております。
従いまして本書は、私のようなJava初心者はもちろんのことJavaの基本をしっかりと抑えている中級者の方にも是非ともお勧めしたいJava独習書です。
仕様
- 著者:山田祥寛
- 発行:株式会社 翔泳社
- 定価: 2,980円(+税)
- B5変版・ 624ページ・ 1色
- 発刊日: 2019年5月15日
目次
第1章 イントロダクション
- Javaとは?
- Javaアプリを開発/実行するための基本環境
- Javaプログラミングの基本
- この章の理解度チェック
第2章 Javaの基本
- 変数
- データ型
- リテラル
- 型変換
- 参照型
- この章の理解度チェック
第3章 演算子
- 算術演算子
- 代入演算子
- 関係演算子
- 論理演算子
- ビット演算子
- 演算子の優先順位と結合則
- この章の理解度チェック
第4章 制御構文
- 条件分岐
- 繰り返し処理
- ループの制御
- この章の理解度チェック
第5章 標準ライブラリ
- ラッパークラス
- 文字列の操作
- 正規表現
- 日付/時刻の操作
- ストリーム
- その他の機能
- この章の理解度チェック
第6章 コレクションフレームワーク
- コレクションフレームワークの基本
- リスト
- セット
- マップ
- スタック/キュー
- この章の理解度チェック
第7章 オブジェクト指向構文――基本
- クラスの定義
- フィールド
- メソッド
- 変数のスコープ
- コンストラクター
- クラスメソッド/クラスフィールド
- 引数/戻り値の様々な記法
- パッケージ
- この章の理解度チェック
第8章 オブジェクト指向構文――カプセル化/継承/ポリモーフィズム
- カプセル化
- 継承
- ポリモーフィズム
- この章の理解度チェック
第9章 オブジェクト指向構文――入れ子のクラス/ジェネリクス/例外処理など
- Objectクラス
- 例外処理
- 列挙型
- 入れ子のクラス
- ジェネリクス
- この章の理解度チェック
第10章 ラムダ式/Stream API
- メソッド参照/ラムダ式
- Stream API
- この章の理解度チェック
第11章 高度なプログラミング
- マルチスレッド処理
- アノテーション
- モジュール
- この章の理解度チェック
付録A 「練習問題」「この章の理解度チェック」解答
- 関連リンク
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です