新わかりやすいJava オブジェクト指向徹底解説 第2版

書籍情報

発売日 : 2022年01月28日

著者/編集 : 川場隆

出版社 : 秀和システム

発行形態 : 単行本

書籍説明

内容紹介

モヤモヤがスッキリ晴れる、難しいオブジェクト指向がわかる。本当に理解したいから、じっくり丁寧に学ぶ。人気No.1の完全独習テキスト。学生の“わからない”を徹底的になくした授業で使えるJavaオブジェクト指向の決定版!ラムダ式、ストリーム、パターンマッチなど、最新プログラムがわかる。Java17(LTS)準拠。新機能も徹底解説。

目次

■第1章 クラスの作り方
1.1 オブジェクトとは
 1.オブジェクトって何?
 2.データの集まりをオブジェクトにする
 3.まずクラスを作る
 4.クラスの作り方
 5.基本機能として必要なもの
1.2 クラスを作る
 1.クラスを作る手順
 2.完成したクラスについて
1.3 まとめとテスト
 1.まとめ
 2.演習問題

■第2章 インスタンスの作り方と使い方
2.1 インスタンスを作る
 1.作成には new演算子とコンストラクタを使う
 2.作成したインスタンスはクラス型の変数に代入する
 3.インスタンスとは
2.2 ゲッターとセッターの使い方
 1.メンバ参照演算子
 2.ゲッターの使い方
 3.セッターの使い方
2.3 メソッドを追加する
 1.toStringメソッドの作成
 2.toStringメソッドを使ってみる
 3.メソッドを増やすには
 4.メソッドを書いてみよう
2.4 まとめとテスト
 1.まとめ
 2.演習問題

■第3章 クラスの仕組み
3.1 他のクラスからのアクセスを制限する
 1.privateとpublic
 2.privateでもpublicでもないケース
 3.カプセル化とは
3.2 メンバの仕組み
 1.スタティックメンバとは
 2.インスタンスメンバとは
 3.インスタンスメンバとスタティックメンバの混在
3.3 コンストラクタの仕組み
 1.オーバーロード
 2.コンストラクタをオーバーロードする
 3.thisによるコンストラクタの簡単化
 4.デフォルトコンストラクタ
3.4 まとめとテスト
 1.まとめ
 2.演習問題

■第4章 インスタンスと参照
4.1 参照とは
 1.参照とその役割
 2.参照を使う理由
4.2 参照を意識する
 1.変数から変数への代入
 2.イミュータブル(immutable)なクラス
4.3 完全にイミュータブルなクラス
4.4 参照型
 1.Java言語の型
 2.nullとは
4.5 まとめとテスト
 1.まとめ
 2.演習問題

■第5章 オブジェクト・モデリング
5.1 何かの機能を実現するクラス
 1.処理の概要
 2.クラスの定義(仕様)を考える
 3.クラスの最終的な仕様を検討する
 4.コーディング
 5.クラスのインスタンスを作って処理を実行する
 6.結論
5.2 record
 1.recordとは
 2.recordの定義と機能
 3.recordへの機能追加
 4.完全にイミュータブルなレコード
 5.簡易な使い方
5.3 まとめとテスト
 1.まとめ
 2.演習問題

■第6章 継承とは
6.1 クラス図
 1.クラス図の見方
 2.クラス図の書き方
6.2 継承
 1.継承してクラスを作る
 2.インスタンスの初期化
 3.継承の効果を確認する
6.3 継承の規則
 1.Is-a の関係
 2.継承できないクラス
 3.封印されたクラス(シールクラス)
 4.継承できないメンバ
6.4 まとめとテスト
 1.まとめ
 2.演習問題

■第7章 継承関係
7.1 継承ツリー
 1.継承ツリーとは
 2.Objectクラス
7.2 コンストラクタの連鎖
 1.コンストラクタの連鎖
 2.super( )の省略
7.3 複数のクラスを1つのファイルにする
7.4 protected修飾子
 1.protectedの機能
 2.protectedの注意点
 3.アクセス修飾子のまとめ
7.5 まとめとテスト
 1.まとめ
 2.演習問題

■第8章 参照の自動型変換
8.1 参照の自動型変換
 1.自動型変換
8.2 アップキャストとダウンキャスト
 1.視覚的な模式図
 2.アップキャストとダウンキャスト
8.3 instanceof演算子
8.4 switchによる型の判定
 1.switch文/switch式
 2.switchによるオブジェクト型の判定
 3.関係式による条件
8.5 まとめとテスト
 1.まとめ
 2.演習問題

■第9章 ポリモーフィズム(多態性)
9.1 オーバーロード
 1.サブクラスでのオーバーロード
 2.メソッドのシグネチャー
9.2 オーバーライド
 1.オーバーライドとは
 2.オーバーライドの例外
 3.@Overrideアノテーション
9.3 ポリモーフィズム(多態性)
 1.ポリモーフィズムとは
 2.ダイナミックバインディング
 3.汎用化の仕組み
9.4 まとめとテスト
 1.まとめ
 2.演習問題

■第10章 抽象クラス
10.1 抽象クラスとは
 1.抽象クラスの特徴
 2.抽象クラスの書き方
10.2 抽象クラスを継承する
 1.抽象メソッドの実装
 2.サブクラスも抽象クラスにする
10.3 抽象クラスのクラス図
10.4 まとめとテスト
 1.まとめ
 2.演習問題

■第11章 インタフェース
11.1 インタフェースとは
 1.インタフェースの定義
 2.クラスへの実装
 3.封印されたインタフェース
11.2 インタフェース型への型変換
 1.インタフェース型
 2.インタフェース型への型変換
11.3 インタフェースによるポリモーフィズム
 1.ポリモーフィズム
 2.インタフェースの使い方
11.4 インタフェースの継承
 1.インタフェース同士の継承
 2.インタフェースはサブクラスに継承される
11.5 まとめとテスト
 1.まとめ
 2.演習問題

■第12章 例外処理の基礎
12.1 例外処理の必要性
 1.例外とは
 2. if文による例外対策と限界
12.2 例外処理
 1.throw文で例外を投げる
 2.try文で例外処理をする
12.3 例外処理の手順と流れ
 1.例外処理のあるプログラム
 2.例外の伝播
12.4 例外の型
 1.例外クラス
 2.Errorクラス(システムエラー)
 3.チェック例外
 4.実行時例外(非チェック例外)
12.5 まとめとテスト
 1.まとめ
 2.演習問題

■第13章 例外処理の使い方
13.1 例外の投げ方
 1.例外の投げ方
 2.例外のコンストラクタとメソッド
13.2 カスタム例外
 1.カスタム例外クラスの作り方
 2.カスタム例外クラスの使い方
13.3 例外のかわし方と受け方
 1.例外をかわす
 2.複数のcatchブロック
 3.マルチキャッチ
 4. finallyブロック
13.4 オーバーライドと例外処理
13.5 まとめとテスト
 1.まとめ
 2.演習問題

■第14章 ファイルとディレクトリの操作
14.1 Pathインタフェースの使い方
 1.パスオブジェクトの作成
 2.絶対パスと相対パス
 3.Pathインタフェースのメソッド
 4.Pathインタフェースのその他のメソッド
14.2 Filesクラスの使い方
 1.ディレクトリの作成
 2.ファイルの作成
 3.ファイルのコピー
 4.ファイル名の変更と移動
 5.ファイル削除
 6.ディレクトリの削除
 7.Filesクラスのメソッドのまとめ
14.3 まとめとテスト
 1.まとめ
 2.演習問題

■第15章 ファイル入出力
15.1 I/Oストリームと標準クラス
 1.I/Oストリームとは
 2.バイナリストリームとテキストストリーム
 3.I/Oストリームのクラス
15.2 テキスト入力ストリーム
 1.BufferedReaderの使い方
 2.文字セットを指定して読み出す方法
15.3 リソース付きtry文
 1.例外処理
15.4 テキスト出力ストリーム
 1.PrintWriterの使い方
 2.BufferedWriterで追記する
 3.Scanner --- データを解析して入力する方法
15.5 オブジェクトの入出力
 1.ObjectOutputStreamとObjectInputStream
 2.オブジェクトとデータの入出力
 3.シリアライズとデシリアライズ
15.6 まとめとテスト
 1.まとめ
 2.演習問題

■第16章 コレクションフレームワークとリスト
16.1 コレクションフレームワーク
 1.コレクションフレームワークの構成
 2.各クラスの特徴
 3.格納するオブジェクトの要件
16.2 リストの使い方
 1.ArrayList
 2.一般的なオブジェクトのリスト
 3.ラッパークラス型のリスト
 4.LinkedList
16.3 リストのAPI
 1.ArrayListのコンストラクタ
 2.Listインタフェースのメソッド
 3.配列からリストを作る
 4.既存のリストから不変リストを作る
 5.リストを並び替える(sortメソッド)
16.4 まとめとテスト
 1.まとめ
 2.演習問題

■第17章 SetとMap
17.1 Setの使い方
 1.Set系クラスの特徴
 2.HashSetクラス
 3.LinkedHashSetクラス
 4.TreeSetクラス
17.2 Set系のAPI
17.3 Mapの使い方
 1.Map系クラスの特徴
 2.HashMapクラス
 3.すべてのエントリを取り出す
 4.LinkedHashMapとTreeMap
17.4 Map系のAPI
17.5 まとめとテスト
 1.まとめ
 2.演習問題

■第18章 総称型とインタフェースの応用
18.1 総称型
 1.基本的な総称型の作成
 2.総称型のインタフェース
 3.境界ワイルドカード型
 4.結論
18.2 インタフェース文法の拡張
 1.デフォルトメソッド
 2.スタティックメソッド
18.3 匿名クラス
 1.匿名クラス
18.4 ネストクラス
18.5 まとめとテスト
 1.まとめ
 2.演習問題

■第19章 ラムダ式
19.1 ラムダ式とは
 1.ラムダ式の書き方
 2.ラムダ式を使う
19.2 ラムダ式の詳細
 1.関数型インタフェース
 2.ラムダ式の文法
 3.標準の関数型インタフェース
19.3 メソッド参照とコンストラクタ参照
 1.クラスメソッド参照
 2.インスタンスメソッド参照
 3.コンストラクタ参照
19.4 まとめとテスト
 1.まとめ
 2.演習問題

■第20章 ストリーム処理入門
20.1 ストリーム処理の概要
 1.ストリーム処理とは
 2.簡単なストリーム処理
 3.いろいろなソースからのストリーム生成
20.2 中間操作の概要
 1.中間操作メソッドの概要
 2.例題で使用するPCレコードのリストについて
20.3 いろいろな中間操作
 1. 抽出(filter)
 2. 変換(map)
 3.重複の除去 (distinct)
 4.並び替え (sorted)
 5.処理のスキップと上限 (skip 、 limit)
 6.平坦化 (flatMap)
 7.1対多変換(mapMulti)
 8.切り捨てと切り取り(dropWhile、takeWhile)
 9.デバッグ処理(peek)
20.4 まとめとテスト
 1.まとめ
 2.演習問題

■第21章 ストリーム処理の応用
21.1 基本的な終端操作
 1.終端操作メソッドの概要
 2.条件にマッチするか調べる(~Match)
 3.存在するかどうか調べて結果を受け取る(find~)
 4.ひとつの値に畳み込む(reduce)
 5. 基本的な集計(count、sum、average、max、min)
 6.最大、最小のオブジェクトを得る(max、min)
21.2 collectによる終端操作
 1.分類(groupingBy、partitioningBy)
 2.変換(toList、toSet、toMap、toCollection、toUnmodifiableXXX)
 3.文字列連結(joining)
 4.計算(counting、summingXXX、averagingXXX、maxBy、minBy、summarizingXXX)
 5.tee型のパイプライン処理(teeing)
21.3 Optionalクラス
 1.Optional型の値の作成
 2.値の取り出し
 3.ストリーム処理
 4.プリミティブ型のOptional
21.4 まとめとテスト
 1.まとめ
 2.演習問題

■第22章 日付と時刻
22.1 Date and Time APIについて
22.2 日付の作り方と表示方法
 1.日付の作り方
 2.日付の編集
 3.和暦で表示する
22.3 日付の操作
 1.日付から値を取り出す
 2.日付の計算
 3.日付の比較
 4.期間の計算
 5.日付のストリーム
 6.カレンダーの計算
22.4 その他のクラス
 1.LocalTimeとLocalDateTime
 2.時間についての期間
22.5 まとめとテスト
 1.まとめ
 2.演習問題

■第23章 文字列と正規表現
23.1 文字列
 1.文字列の特徴
 2.テキストブロック
 3.Stringクラスの主なAPI
 4.Stringクラスのメソッドの使い方
 5.文字列の連結とStringBuilderクラス
23.2 正規表現
 1.正規表現とは
 2.正規表現の文法
 3.含む、含まない、を調べる
23.3 正規表現の利用
 1.文字列の置き換えと分割
 2.文字列の検査
 3.Scannerクラスの区切り文字
23.4 まとめとテスト
 1.まとめ
 2.演習問題

■第24章 列挙型
24.1 列挙型
 1.列挙型の必要性
 2.列挙型の作り方と特徴
24.2 列挙型の使い方
 1.列挙型の値を比較する
 2.switch文でcaseラベルとして使う
 3.列挙型のメソッド
24.3 独自の列挙型の作成
 1.列挙型を作成する
24.4 まとめとテスト
 1.まとめ
 2.演習問題

■第25章 マルチスレッド
25.1 マルチスレッドの処理
 1.マルチスレッドと非同期処理
 2.スレッドの作成と実行
25.2 スレッドプールの利用
 1.スレッドプールとは
 2.スレッドプールの使い方
25.3 CompletableFuture
 1.CompletableFutureとは
 2.supplyAsync()による非同期処理の起動
 3.thenAccept()による後処理の実行
 4.エラー対策
 5.非同期処理を連結する
 6.非同期処理を結合する
25.4 まとめ

■補足資料
 1.LocalTime、LocalDateTimeクラスの主なAPI
 2.日付、時間の編集表示のためのパターン文字
 3.printfの書式指定
 4.InputクラスのAPI(jp.kwebs.Input)
 5.モジュールシステム
 6.URL一覧
 7.用語集

著者情報

川場, 隆, 1953-
川場隆