プロになるJava ―仕事で必要なプログラミングの知識がゼロから身につく最高の指南書

サポートページ

この記事を読むのに必要な時間:およそ 0.5 分

補足情報

練習問題の解答について

(2022年7月15日更新)

本書に掲載している「練習問題」の解答を下記にて掲載します。

お詫びと訂正(正誤表)

本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2023年7月31日最終更新)

P.31:「最初のプログラムを書いてみよう」の前に下記を追加

Touch Barを搭載していないキーボードを使っている場合は,fnキーを押さずにファンクションキーを使えるよう,「キーボード」→「キーボード」→「F1,F2などのキーを標準のファンクションキーとして使用」にチェックを入れることを検討してください(図2.42)。これにチェックが入っていない場合,ファンクションキーを押す操作を行う場合はfnキーを押すことを覚えておいてください。

▼図2.42 fnキーを押さなくてもファンクションキーを使えるようにする設定 

図2.42.png

(以下2022年12月13日更新)

P.32:「プロジェクト形式の選択」

最新版のIntelliJ IDEAでは新規プロジェクトのダイアログのデザインが少し異なっています。

紙面のスクリーンショットを参考にすると,「Maven Archtype」を選んでしまいがちですが,下記のように一番上の「新規プロジェクト」を選択してください。

FW3mGW_acAAuo7f.jpeg
P.458:■application. propertiesファイルに設定を追加
spring.datasource.initialization-mode=always
spring.sql.init.mode=always

※spring.datasource.initialization-modeは最新版では廃止されました。

訂正情報

※電子版では修正済み

(2023年7月31日最終更新)

P.18:コラム8行目
再び用途を問わず無償で
再びデスクトップ用途では無償で
P.59:本文6行目
取る引数、戻り値の種類
取る引数

「、戻り値の種類」は不要です。

P.136:「7.2.3 else if」
下部のソースコードの上にキャプションを追加
src/main/java/projava/IfSample.java
P.168:練習

この練習問題は削除します。

P.205:「基本のStream処理」本文3行目
32億以上の
約21億以上の
P.313:1行目のソースコード
System.out.println("こんにちは%sさん".formatted(p.getName()));
System.out.println("こんにちは%sさん".formatted(p.getName()));
System.out.println(p);
P.313:本文1行目
実行すると、インタフェースのときと同じく次のように表示されます。
実行すると、次のように表示されます。

「インタフェースのときと同じく」は不要です。

P.313:実行結果
こんにちはkisさん
こんにちはhosoyaさん
こんにちはkisさん
projava.InheritSample$Student@3c153a1
こんにちはhosoyaさん
projava.InheritSample$Teacher@b62fe6d
P.315:ソースコード
System.out.println("こんにちは%sさん".formatted(p.getName()));
System.out.println("こんにちは%sさん".formatted(p.getName()));
System.out.println(p);
P.318:「15.1.4 メソッドのオーバーライド」本文1〜2行目
projava.InheritSample$Student@27d6c5e0 のような表示
projava.InheritSample$Student@3c153a1 のような表示
P.367:最終行のソースコード
assertEquals(6, new Calc().add(2, 4), "2 + 4 = 8");
assertEquals(6, new Calc().add(2, 4), "2 + 4 = 6");
P.368:図18.7 ● テストが失敗した状態
図18.7.png
P.421:図21.6 ● Spring Initializr
図21.6.png
P.421:表21.1 ● タスク管理アプリケーション用の設定 Spring Bootの行
2.6.3、または「SNAPSHOT」や「M1」などが付いていない最新バージョン
2.6.3

「、または「SNAPSHOT」や「M1」などが付いていない最新バージョン」は不要です。

P.421:表21.1 ● タスク管理アプリケーション用の設定 Dependenciesの行
Spring Web
ADD DEPENDENCIES…を押してSpring Webを追加
P.437:本文7〜8行目
メソッドと同様の理由でインスタンス変数として
メソッドと同様の理由でstatic変数ではなくインスタンス変数として
P.439:「21.4.3 タスクを一覧表示するエンドポイントの作成」本文 下から6行目
addTask メソッドと同様に
addItem メソッドと同様に
P.458:■ application.propertiesファイルに設定を追加 最終行
spring.datasource.initialization-mode=always
spring.sql.init.mode=always
※バージョン2.4.x以前では「spring.datasource.initialization-mode=always」
P.459:表22.1 ● application.propertiesファイルの設定項目 項目名「spring.datasource.initialization-mode」
spring.datasource.initialization-mode
spring.sql.init.mode
※バージョン2.4.x以前では「spring.datasource.initialization-mode」
P.459:本文最終行
spring.datasource.initialization-modeについては後ほど説明します。
spring.sql.init.modeについては後ほど説明します。
※バージョン2.4.x以前では「spring.datasource.initialization-mode」
P.470:「22.3.3 テーブル初期化用のスクリプトを用意する」本文3行目
spring.datasource.initialization-mode プロパティの値
spring.sql.init.mode プロパティの値
※バージョン2.4.x以前では「spring.datasource.initialization-mode」

(以下2022年12月13日更新)

P.v:本文6行目
設定によっては「\」が「¥」が
設定によっては「\」が「¥」

「が」が不要です。

P.4:本文下から4行目
Java Development Environment
Java Development Kit
P.21:本文3行目
(図20.20)
(図2.20)

「0」が不要です。

P.21:本文4行目
(図20.21)
(図2.21)

「0」が不要です。

P.28:最下部「MEMO」欄
この本では、以降の解説は日本語化を行った状態のIntelliJIDEAの画面で行っていますが、英語表記で困らない方、またはスキルアップのため英語に慣れたい方は是非英語のままで利用してみてください。
この本では、以降は日本語化を行った状態のIntelliJ IDEAの画面を掲載しています。英語表記で困らない方や、スキルアップのため英語に慣れたい方は是非英語のままで利用してみてください。
一周目を日本語で演習し、二周目は英語で演習することで英語に慣れていく方法もお勧めです。
P.32:本文下から6行目
Software Development Tool
Software Development Kit
P.88:「練習3.」
String.formatted("%tY年", today)を
String.format("%tY年", today)を
P.153:本文4行目
student ==> [kis, math, 80]
exam ==> [kis, math, 80]
P.177:本文10行目
System.out.print("o".repeat(i));
System.out.print("O".repeat(i));
P.188:src/main/java/projava/ForEachListSample.java 2行目
package projava;

public class ForEachListSample {
package projava;

import java.util.List;

public class ForEachListSample {
P.236:実行結果
ファイルがみつかりません:testa.txt
ファイルがみつかりません:test.txta
P.272:図13.1キャプション
状態遷移図
実数判定の状態遷移図
P.309:「14.3.3 コメント」前のパラグラフ
このときIntelliJ IDEAのリファクタリング機能が使えます。リファクタリング機能については、第19章「IntelliJ IDEAを使いこなす」で説明します。クラスが多くなってきたらパッケージに分類します。何度か経験すると、最初からある程度の目安がつくでしょう。
クラスが多くなってきたらパッケージに分類します。何度か経験すると、最初からある程度の目安がつくでしょう。IntelliJ IDEAでは[Ctrl] + [Alt] + [Shift] + [T]([Ctrl] + [T])を押すと、このような構成の変更を行う「リファクタリング」機能を呼びだすことができます。
P.320:図15.7キャプション
インスタンス化できない
インスタンス化できないことを示すエラー
P.325:src/main/java/projava/DiffSampleInherit.java P.325の17行目,19行目
        var image = new BufferedImage(600, 400, BufferedImage.TYPE_INT_RGB);
        var graphics = image.createGraphics();
        graphics.drawLine(10, 10, 400, 300);
        var image = new BufferedImage(250, 200, BufferedImage.TYPE_INT_RGB);
        var graphics = image.createGraphics();
        graphics.drawLine(10, 10, 220, 180);
P.325:src/main/java/projava/DiffSampleInherit.java P325の23行目、25行目
        var image = new BufferedImage(600, 400, BufferedImage.TYPE_INT_RGB);
        var graphics = image.createGraphics();
        graphics.drawRect(10, 10, 400, 300);
        var image = new BufferedImage(250, 200, BufferedImage.TYPE_INT_RGB);
        var graphics = image.createGraphics();
        graphics.drawRect(10, 10, 220, 180);
P.326:グレー背景箇所の1行目,3行目
var image = new BufferedImage(600, 400, BufferedImage.TYPE_INT_RGB);
var graphics = image.createGraphics();
graphics.drawLine(10, 10, 400, 300); // ここだけ違う
var image = new BufferedImage(250, 200, BufferedImage.TYPE_INT_RGB);
var graphics = image.createGraphics();
graphics.drawLine(10, 10, 220, 180); // ここだけ違う
P.326:■src/main/java/projava/DiffSampleInherit.java(1つめ)
var image = new BufferedImage(600, 400, BufferedImage.TYPE_INT_RGB);
var image = new BufferedImage(250, 200, BufferedImage.TYPE_INT_RGB);
P.326:■src/main/java/projava/DiffSampleInherit.java(2つめ)
g.drawLine(10, 10, 400, 300);
g.drawLine(10, 10, 220, 180);
P.327:■src/main/java/projava/DiffSampleInherit.ja(1つめ)
BufferedImage lineImage() {
static BufferedImage lineImage() {
P.327:■src/main/java/projava/DiffSampleInherit.ja(2つめ)
g.drawRect(10, 10, 400, 300);
g.drawRect(10, 10, 220, 180);
P.327:■src/main/java/projava/DiffSampleInherit.ja(2つめ)
BufferedImage rectImage() {
static BufferedImage rectImage() {
P.327:■src/main/java/projava/DiffSampleInherit.ja(3つめ)
BufferedImage lineImage() {
static BufferedImage lineImage() {
P.327:■src/main/java/projava/DiffSampleInherit.ja(3つめ)
g.drawLine(10, 10, 400, 300);
g.drawLine(10, 10, 220, 180);
P.328:■src/main/java/projava/DiffSampleInherit.java(1つめ)
var image = new BufferedImage(600, 400, BufferedImage.TYPE_INT_RGB);
var image = new BufferedImage(250, 200, BufferedImage.TYPE_INT_RGB);
P.328:■src/main/java/projava/DiffSampleInherit.java(2つめ)
BufferedImage lineImage() {
static BufferedImage lineImage() {
P.328:■src/main/java/projava/DiffSampleInherit.java(2つめ)
g.drawLine(10, 10, 400, 300);
g.drawLine(10, 10, 220, 180);
P.329:■src/main/java/projava/DiffSampleInherit.java(1つめ)
BufferedImage lineImage() {
static BufferedImage lineImage() {
P.331:■src/main/java/projava/DiffSampleInherit.java(2つめ)
BufferedImage createImage(Consumer drawer) {
static BufferedImage createImage(Consumer drawer) {
P.332:■src/main/java/projava/DiffSampleInherit.java
BufferedImage lineImage() {
    return createImage(g -> g.drawLine(10, 10, 400, 300));
 }
BufferedImage rectImage() {
    return createImage(g -> g.drawRect(10, 10, 400, 300));
 }
static BufferedImage lineImage() {
    return createImage(g -> g.drawLine(10, 10, 220, 180));
 }
static BufferedImage rectImage() {
    return createImage(g -> g.drawRect(10, 10, 220, 180));
 }
P.356:本文4行目
図17.5がjava.util.ListのJavadocです。
するとjava.util.ListクラスのJavadocのページにジャンプします(図17.5)。
P.371:本文2行目
バグを健在化させることができる
バグを顕在化させることができる
P.388:本文最終行
て使いこなせるようにしておきましょう。
て使いこなせるようにしておきましょう。最後に補完関連操作で紹介したIntelliJ IDEAのショートカットを表19.1に挙げておきます。
P.421:表21.1 設定項目「Spring Boot」の「設定値」
2.6.3、または「SNAPSHOT」や
デフォルト、または「SNAPSHOT」や
P.428:「プロジェクトを実行する」の下2行目
〜右側にある再生アイコンを
〜右側にある実行アイコンを
P.428:図21.17 キャプション
プロジェクトの再生アイコン
プロジェクトの実行アイコン
P.444:図21.31
time="x年x月x日";
time: “x年x月x日”
P.444:図21.31
Javaプログラム
Javaプログラムで用意したデータ