16章はスレッドです。

例題はまあなんとか分かったかなという感じですが、自らこういう機能を実現したいからマルチスレッドで作ろうと思いつき手が動くようになるまではまだかなり勉強が必要そうです。

この本の著者はマルチスレッドの本も出していますが、そちらに行く前に一旦JavaFXの本でGUIアプリを書けるようになる方が学習する順序としては良いかなと思っているところです。

スレッドとは直接関係のない話ですが、例題をやっている中で、複数のクラスで共通のちょっとした部品的なメソッドを使いたい場合、C言語ではそういう関数を1つ書けばすみますが、Javaはクラスの外にメソッドを書けないので、複数のクラスに同じメソッドを書くか、1つのクラス(例えばClassA)にstaticメソッドとして記述して他のクラスからはClassA.メソッド名で使うしかないのがちょっと違和感がありました。内容的にClassAに書くのが当然だと思えるメソッドなら違和感はないのですが、どのクラスに定義してもよさそうなメソッドでもこのような書き方をせざるを得ない辺りに違和感を覚えるのです。

重大な問題だとは思いませんけど気にはなります。

少々怪しいところがありますが一旦この本は終わりです。
19章はコレクションです。

このレベルのものが標準で用意されているのは便利ですね。Cだと自分で書くか誰か作って公開してないか探すことになるので。もっともちょうど良い勉強ネタでもあるので、コレクションがあるから使えというのが必ずしも良いことではないような気もしますが。

それとこの本は少々古いとは言え、既にコレクションの中にこれはもう使わない方が良いとされるものもあったりして不安になります。

残るは16章スレッドです。早く終わらせたいです。
18章は、ファイル操作と入出力、クラスの調べ方です。

Javaでは文字は16ビットと決まっているので文字を処理するなら文字ストリーム、データならバイトストリームを使う。

ファイルを読む際にFileReaderのインスタンスをパラメータとして取るBufferedReaderのインスタンスを使い、ファイルを書く際にはFileWriterのインスタンスをパラメータとして取るBufferedWriterのインスタンスをさらにパラメータとして取るPrintWriterのインスタンスを使うというようにネストした記述になる辺り等、内容的にはごちゃごちゃしてはいますがクラスの使い方を覚えればできる感じです。

Fileクラスのインスタンスのインスタンスメソッドで読み書きするのではなく、FileReaderやFileWriterクラスのインスタンスのインスタンスメソッドで読み書きするところはオブジェクト指向というよりC言語のような手続き指向っぽい感じがしてやや違和感がありました。

この本も残るは19章コレクションと16章スレッドだけとなりました。もう一息なのでがんばります。