Javaプログラミング パーフェクトマスター

概 要

Javaプログラミングの基礎から応用までを幅広くしっかり解説したプログラミングガイドです。Java言語ではじめてプログラミングを学ぼうという人や、C言語などの他の言語を習得し次のステップとしてJavaの習得を目指すユーザーを対象に、プログラムで扱うデータの仕組みから、データの演算、プログラムの流れの制御、オブジェクト指向プログラミングへと段階をおいながら解説しています。特に、Javaの重要な要素であるオブジェクト指向については、基本編と応用編にわけて詳細に解説。Javaの資格試験であるOCJ-Pの出題範囲にも対応しており、各種プログラミング検定試験の学習書としても利用可能です。書籍掲載データのダウンロードサービス付き。

著者 金城俊哉
価格 本体3100円(税別)
ISBN 978-4-7980-3534-5
発売日 2012/10/24
判型 B5変
色数 4色
ページ数 980
CD/DVD
対象読者 中級
シリーズ パーフェクトマスター
表紙イメージ
購入 アマゾンで購入する
楽天で購入する

※リンク先によっては、販売ページが用意されていないことがあります。あらかじめご了承ください。

新しいウィンドウで開く 書籍購入のご案内

サポート

サポート情報は以下からご参照下さい。

サポート情報へのリンク

目次

Chapter 1 Javaの概要

1.1 ●プログラムの役割

1.1.1 コンピューターを動かすOSというプログラム

OSの役割

OSの構造

コンピューターの構造

1.1.2 アプリケーションというプログラム

OSとアプリケーションが存在する理由

1.1.3 システムコール

クラスライブラリーの恩恵

1.1.4 プログラミング言語の役割

コンピューターが2進数を使う理由

ネイティブコードとアセンブリ言語

1.1.5 高水準言語の登場

1.2 ●プログラミング言語Java

1.2.1 Javaの特徴

1.2.2 C/C++言語とJavaの違い

Javaのポインター

配列

ガベージコレクション

Q&A

Chapter 2 Eclipse徹底解説

2.1 ●Javaプログラミングに必要なソフトウェアの用意

2.1.1 Javaでプログラミングを行う手順

2.1.2 プログラミングに必要なソフトウェアのダウンロード

コラム ビルド

JDKのダウンロード

JDKのインストール

Eclipseのダウンロード

Eclipseのインストール

Eclipseの日本語化を行うプラグインのダウンロード

「Pleiades-Eclipseプラグイン日本語化プラグイン」のインストール

2.1.3 Eclipseの初期設定

Eclipsewを起動とワークスペース用フォルダーの設定

操作画面の設定

コラム ビューのサイズ変更

コラム ビューを合体させる

コラム 「Notepad++」を入手する

コラム ビューの表示位置を移動する

コラム ビューをタブ表示にする

行番号の表示

2.2 ●サンプルプログラムの作成

2.2.1 Javaプログラムの中身

2.2.2 プロジェクト、パッケージ、クラスの作成

「Javaパースペクティブ」を表示する

プロジェクトの作成

コラム コンパイラーのバージョンを確認する

コラム プロジェクト用のフォルダーを確認する

コラム プロジェクト名の付け方

パッケージの作成

クラスファイルの作成

2.2.3 プログラムコードの入力

2.2.4 プログラムの実行

Chapter 3 プログラムコードの書き方

3.1 ●プログラムの構造

3.1.1 Javaプログラムの構造

コラム "Hello World"

サンプルプログラムの構造

コラム オブジェクト

コードブロック

コラム パッケージの参照(インポート)

メソッド

コラム printIn()メソッド

コラム print()メソッド

コメント文

Q&A

Chapter 4 データ型と変数および定数

4.1 ●変数

4.1.1 変数の役割

4.1.2 変数の宣言

4.1.3 値の代入

4.1.4 変数の初期化

4.1.5 変数の値の変更

コラム 変数宣言時のエラー

コラム 名前を付ける際のルール

コラム メソッド名を「名声+動詞」にする

4.2 ●データ型

4.2.1 データ型の種類

整数型

浮動小数点型

文字型

論理型

文字列型

4.2.2 データ型の指定が必要な理由

コラム 相対アドレス

4.3 ●データ型の変換

4.3.1 自動型変換

4.3.2 強制型変換(キャスト)

コラム char型の自動型変換

コラム 型変換に関する注意点

Q&A

Chapter 5 演算子を使った演算

5.1 ●基本的な演算子

5.1.1 四則演算子

コラム カッコの使い方

5.1.2 演算結果の型の決定

5.1.3 インクリメント演算子とデクリメント演算子

5.1.4 文字列の連結

コラム 文字列連結と加算

5.2 ●代入演算子

5.2.1 代入演算子の種類と使い方

5.2.2 再代入時の初期化の必要性

5.2.3 多重代入

コラム 複合代入演算子にキャストは不要

5.3 ●ビット演算

5.3.1 2進数

5.3.2 16進数

コラム 16進数から10進数への変換

5.3.3 補数による負の数の表現

コラム 素数

5.3.4 ビット演算子

5.3.5 シフト演算子

左シフト演算

コラム 負の数の表示

右シフト演算

>>>による右シフト演算

Chapter 6 クラスライブラリーの利用

6.1 ●標準クラスの使い方

6.1.1 インスタンスメソッド

インスタンス化する理由

クラスをインスタンス化する

インスタンスメソッドを使う

6.1.2 staticメソッド

6.1.3 ファクトリーメソッド

6.1.4 型としてのクラス

6.2 ●数値の処理(Mathクラス)

6.2.1 どちらか大きい方の値を求める

2つの値のうち大きい方の値を求めるプログラムの作成

6.2.2 どちらか小さい方の値を求める

どちらか小さい方の値を求めるプログラムの作成

6.2.3 切り上げ/切り捨て/四捨五入する

切り上げ/切り捨て/四捨五入するプログラムの作成

6.2.4 累乗を計算する

累乗を計算するプログラムの作成

6.2.5 平方根と立方根を求める

平方根と立方根を求めるプログラムの作成

6.2.6 乱数を作る

乱数を作るプログラムの作成

6.3 ●入力処理

6.3.1 入力された文字列を読み込む

System.inフィールド(=入力ストリーム)

入力ストリームから文字列を取り出す

入力された文字列を画面に表示するプログラムの作成

コラム 区切り文字を使って入力する

6.3.2 入力された数値を読み込む

int型の値を取得する

int型以外の値の取得

6.4 ●数値のフォーマット

6.4.1 数値をフォーマット処理する

フォーマット用のインスタンスを生成するメソッド

数値のフォーマットを行うプログラムの作成

6.4.2 ロケールの指定

ロケールを設定する

ロケールを適用するプログラムを作成する

6.4.3 カスタムフォーマット

書式指定文字

カスタムフォーマットを適用するプログラムの作成

6.5 ●日時の処理

6.5.1 今日の日付を表示する

現在の日時を取得する

フォーマット用のインスタンスを生成する

取得した日時を表示する

日時を表示するときの書式を指定する

地域と言語を指定してフォーマットする

現在の日時を表示するプログラムの作成

6.5.2 日時を計算する

Calendarオブジェクトを生成する

日時を計算する

Calendarオブジェクトの日時を独自にセットする

日時の計算を行うプログラムを作成する

Q&A

Chapter 7 制御構造

7.1 ●条件分岐構造

7.1.1 条件を設定する演算子(関係演算子)

関係演算子を使って関係式を記述する

数値を比較する

文字を比較する

文字列を比較する

7.1.2 条件を設定する演算子(論理演算子)

論理演算子を使って関係式を記述する

短絡演算子を使って関係式を記述する

7.1.3 条件分岐構造の種類

7.1.4 if文

ifを利用したプログラムを作成する

7.1.5 if...else

if...elseを利用したプログラムを作成する

コラム 演算結果を条件にする

コラム ブロック

コラム { }の省略

7.1.6 if...else if...else

if...else if...elseステートメントの使い方

if...else if...elseを使用したプログラムを作成する

コラム 論理演算子を使用したプログラム

コラム 演算子の優先順位と結合規則

7.1.7 switch文

switch文を使用したプログラムを作成する

case句の複数定義

switch文の流れを制御する

7.2 ●配列と繰り返し構造

7.2.1 配列

配列を宣言する

様々な型の配列を宣言する

7.2.2 繰り返し構造の種類

繰り返し構造の種類

7.2.3 for文

for文の記述例

for文の利便性

コラム カウンター変数の仕組みと使い方

配列要素の表示

コラム String型配列の要素を参照する

コラム 文字列と連結して配列の値を表示する

2つの配列の要素同士を計算する

配列の要素を合計する

コラム 配列の要素を横に並べて表示する

コラム 複数のfor文を記述する

設定式の省略

拡張for文

コラム 拡張for文で文字列を連結する

7.2.4 while文

while文の記述例

条件式に代入文を設定する

while文の注意事項

コラム 任意の回数だけ加算を行うプログラム

コラム 条件式の簡易表記

7.2.5 do...while文

ループ処理を最低1回は行うプログラムの作成

do...while文におけるローカル変数の使い方

7.3 ●breakとcontinue

7.3.1 break文

break文の記述例

7.3.2 continue文

continueとbreakの違い

continue文の記述例

7.3.3 多重ループとラベル付きbreak文

多重ループとbreak文

ラベル付きbreak文

7.3.4 無限ループとラベル付きcontinue文

無限ループとcontinue文

ラベル付きcontinue文

コラム if文の中でラベル付きcontinue文を使ってみる

Q&A

Chapter 8 配列と多次元配列

8.1 ●配列

コラム 配列を初期化する際の既定値

8.1.1 配列の使い方

配列を使うメリット

配列を宣言する

配列の要素だけを指定する

配列の宣言や初期化のパターン

コラム 配列要素の初期値を確認する

8.1.2 配列要素への値の代入

配列に値を代入する

配列要素の値を代入するプログラムの作成

8.1.3 for文を利用した代入処理

キーボードから入力された値を配列へ代入する

平均点を求めるプログラムの作成

コラム バッファーオーバーフロー

コラム 文字列を配列に代入する

8.1.4 配列のコピー

配列の参照値のコピー

配列要素を完全にコピーする

8.1.5 配列の仕組み

プリミティブ型におけるメモリーの使い方

参照型におけるメモリーの使い方

コラム スタックとヒープ

コラム 配列のアドレスを見る

8.2 ●多次元配列

8.2.1 2次元配列

2次元配列を宣言して値を代入する

キーボードから入力された値を2次元配列へ代入する

8.2.2 2次元配列の宣言と初期化

すべての要素数を指定して初期化する

1つ目の配列要素数だけを指定して初期化する

初期化リストを使って配列を初期化する

コラム 配列宣言と初期化における注意

8.2.3 3次元配列

3次元配列の構造

3次元配列を宣言して初期化する

コラム 文字配列

Q&A

Chapter 9 メソッド

9.1 ●メソッドの作成と使い方

9.1.1 main()メソッド

9.1.2 メソッドの使い方と処理の流れ

メソッドの構造と定義方法

メソッドを定義する

メソッドの呼び出し

コラム メソッド名の付け方

コラム メソッドの記述位置

コラム 標準出力を扱うメソッド

9.1.3 クラスメソッドとインスタンスメソッド

クラスメソッド

インスタントメソッド

9.2 ●パラメーターを持つメソッドと戻り値を返すメソッド

9.2.1 パラメーターを持つメソッド

実行したい処理を記述する

実行する処理をメソッドにまとめる

メソッドにパラメーターを設定する

コラム 引数指定時のエラー

9.2.2 メソッド呼び出し時における引数の指定方法

9.2.3 配列を受け取るメソッド

引数に指定した配列をメソッドで操作する

9.2.4 オブジェクトを受け取るメソッド

9.3 ●戻り値を返すメソッド

9.3.1 値(戻り値)を返すメソッド

戻り値を返すメソッドの処理の流れを見る

9.3.2 配列を戻り値として返すメソッド

9.3.3 配列を受け取って戻り値を返すメソッド

9.3.4 配列を受け取って配列を返すメソッド

9.3.5 戻り値を返すメソッドの同士の処理

9.4 ●可変パラメーター

9.4.1 可変パラメーター

可変パラメーターを持つメソッドに配列を渡す

可変パラメーターを持つメソッドから戻り値を得る

9.4.2 可変パラメーターと固定パラメーターの組み合わせ

Chapter 10 標準入出力

10.1 ●標準入出力の概念

10.1.1 コンピューターに用意された入出力の機能

標準入力、標準出力、標準エラー出力

ストリームの概念

10.2 ●標準入力

10.2.1 標準入力への対応

標準入力ストリームを高水準のクラスでラッピングする

コラム バッファーの概念

標準入力ストリームから文字データを取り出す

10.2.2 キーボードからの入力データの取得

InputStreamクラスのメソッドで読み込む

InputStreamReaderクラスのメソッドで読み込む

BufferedReaderクラスのメソッドで読み込む

10.3 ●標準出力

10.3.1 標準出力への対応

標準出力ストリーム

画面への出力を行う

10.4 ●標準入出力を利用した対話型プログラムの作成

10.4.1 入力された文字列を表示する

10.4.2 入力された文字列を整数値に変換して処理を行う

入力された文字列からint型の整数値を取得する

メソッドを作成して処理をまとめる

コラム ラッパークラス

10.4.3 入力された文字列を浮動小数点数型に変換する

コラム 小数第3位までを表示する

Chapter 11 オブジェクト指向プログラミング(基本編)

11.1 ●クラス

11.1.1 クラスの機能

インスタンス化に見るオブジェクト指向の考え方

クラスは参照型に属するデータ型

クラス型変数の挙動

11.1.2 クラスを構成する要素

クラスの構造を見る

11.1.3 クラスを宣言する

コラム クラスの修飾子

11.2 ●フィールド

11.2.1 フィールドの宣言

フィールドを宣言する

11.2.2 オブジェクトの生成

オブジェクトのフィールドに値をセットする

フィールドとローカル変数の違いを検証する

11.2.3 フィールドへのアクセス

異なるクラスから参照する場合

同じクラスのメンバーを参照する場合

コラム オブジェクト生成時に設定される初期化値

11.3 ●コンストラクター

11.3.1 コンストラクターの役割

コラム コンストラクターと同名のメソッドを作ることができる

11.3.2 コンストラクターの定義方法と使い方

コンストラクターを定義する

コンストラクターの使い方

コンストラクターで初期化してメソッドを実行する

コンストラクターのパラメーターを配列にする

コラム 無名配列

11.3.3 コンストラクターのオーバーロード

コンストラクターのオーバーロードを使ってみる

コンストラクターのオーバーロードが適用されない例

11.3.4 デフォルトコンストラクター

デフォルトコンストラクターの注意点

コラム デフォルトコンストラクターのアクセス修飾子

11.3.5 thisキーワードによる参照情報の付加

暗黙的に付けられるthis

オブジェクトの参照を示すthis

11.3.6 this()によるコンストラクター呼び出し

this()で別のコンストラクターを呼び出す

this()呼び出し時の注意点

11.4 ●インスタンスメソッド

11.4.1 インスタンスメソッドの定義と使い方

インスタンスメソッドを定義する

インスタンスメソッドを使う

11.4.2 複数のメソッドを持つクラス

複数のメソッドを持つインスタンスを使う

メソッド呼び出しによるフィールドの値の推移

インスタンスとインスタンスメソッドの関係

11.4.3 戻り値を返すインスタンスメソッド

インスタンスから処理結果を取得する

11.4.4 メソッドのオーバーロード

メソッドをオーバーロードする(パラメーターの型の相違)

メソッドをオーバーロードする(パラメーターの数の相違)

メソッドのオーバーロードが使えない場合

11.5 ●パッケージ

11.5.1 パッケージの作成

パッケージを作成する

11.5.2 パッケージの参照

完全修飾名で別パッケージのクラスを呼び出す

参照したいパッケージのクラスをインポートする

参照したいパッケージ全体をインポートする

11.6 ●複数のクラス

11.6.1 単一のソースファイルにおける複数のクラスの定義

1つのソースファイルに複数のクラスを記述する

1つのソースファイルに複数のクラスを記述した場合の制約

11.6.2 同一のパッケージ内における複数のクラスの定義

既存のパッケージ内に新規のソースファイルを作成する

新規のソースファイルにクラスを記述する

11.6.3 パッケージの新規作成とクラス定義

パッケージを追加して新規のソースファイルを作成する

新規のソースファイルにクラスを記述する

11.6.4 publicの必要性

デフォルトアクセスによるコンパイルエラー

デフォルトアクセスのメンバー

コラム Eclipseのimport文の自動挿入機能

11.6.5 privateアクセス

private修飾子によるアクセス制限

11.6.6 アクセス属性の比較

11.6.7 main()メソッドとクラスの関係

main()メソッドはクラス内に記述する

オブジェクト指向とmainメソッドの関係

staticメソッド

11.7 ●クラスのカプセル化

コラム クラスの部品化

11.7.1 クラスをカプセル化する理由

カプセル化の目的

カプセル化の方法

11.7.2 フィールドのアクセス制限

privateでフィールドにアクセスできないようにする

11.7.3 フィールドへの間接的なアクセス

アクセサーメソッドを作成する

11.7.4 アクセサーメソッドを利用したカプセル化

カプセル化されたクラスのアクセサーメソッドを利用する

11.7.5 フィールドに対する不正な操作を防止する

セッターメソッドにチェック機能を追加する

コラム JavaBeans

11.8 ●メソッドと配列における参照変数の利用

11.8.1 参照変数をパラメーターに取るメソッド

参照変数をメソッドのパラメーターにする

参照をパラメーターに取るメソッドの仕組み

main()メソッドにおける処理

11.8.2 インスタンス同士の演算

11.8.3 参照の戻り値を返すメソッド

インスタンスのコピーの生成

コラム 2個のインスタンスの演算結果を持つインスタンスを生成する

コラム new演算子

11.8.4 クラス型の配列

クラス型の配列を使う

初期値をセットしてクラス型の配列を作成する

複数のフィールドを持つクラスを配列要素で扱う

コラム toString()メソッド

11.9 ●クラスの継承によるサブクラスの作成

11.9.1 クラスの継承

継承を使う理由

既存のクラスを継承してサブクラスを作成する

継承のポイント

11.9.2 サブクラスの継承

サブクラス継承のポイント

単一継承の原則

11.9.3 継承に含まれない要素

インスタンスに取り込まれない要素は継承されない

修飾子で制限された要素は継承されない

11.9.4 スーパークラスのカプセル化

フィールドのアクセス属性をデフォルトにする

フィールドのアクセス属性をprotectedにする

コラム protectedのポイント

フィールドのアクセス属性をprivateにする

11.9.5 継承におけるコンストラクターの扱い

すべてのサブクラスでコンストラクターを定義する

スーパークラスのコンストラクターの呼び出し

super();が付加されるパターン

パラメーターを持つスーパークラスのコンストラクター

パラメーター付きコンストラクター呼び出し時のエラー

11.9.6 Objectクラス

Objectクラスのコンストラクター

Objectクラスのメソッド

Chapter 12 オブジェクト指向プログラミング(応用編)

12.1 ●オーバーロードとオーバーライド

12.1.1 サブクラスにおけるメソッドのオーバーロード

継承関係にあるクラスのメソッドの呼び出し

継承時におけるオーバーロード時の条件

スーパークラスのメソッドの呼び出し

コラム サブクラスにおけるオーバーロードのパターン

12.1.2 オーバーライドによるメソッドの再定義

オーバーライドの条件

オーバーライドしたメソッドの呼び出し

オーバーライドを使ってメソッドを再定義する

アノテーションによる注釈の追加

コラム Javadoc

12.1.3 スーパークラスのメソッドの呼び出し

superによるスーパークラスのメソッド呼び出し

12.1.4 共変戻り値型

オーバーライドで共変戻り値を使う

共変戻り値が使えない場合

12.1.5 スーパークラス型の参照変数の利用

スーパークラス型の変数にサブクラス型を割り当てる

参照変数のクラス型で使用できるメンバーが決定する

12.1.6 インスタンスの型によるオーバーライドメソッドの有効化

サブクラスのオーバーライドメソッドを呼び出す

起動するオーバーライドメソッドの指定

12.1.7 スーパークラスと同名のフィールドの定義

スーパークラスの同名のフィールドへのアクセス

superによるスーパークラスのフィールドへのアクセス

12.1.8 スーパークラスのメソッドの再利用

サブクラスから継承元のメソッドを使う

12.2 ●ポリモーフィズム

12.2.1 ポリモーフィズムの概要

ポリモーフィズムのポイント

12.2.2 スーパークラス型の参照変数を利用したポリモーフィズム

スーパークラス型の参照変数を使うメリット

オーバーライドメソッドとオーバーロードメソッドを呼び分ける

12.3 ●抽象クラスとインターフェース

12.3.1 抽象クラス

抽象クラスを使う

オーバーライドによるメソッド定義の実装

抽象クラスを使用する際の条件

12.3.2 抽象クラス型の参照変数

抽象クラス型の参照変数からオーバーライドメソッドを呼び出す

12.3.3 インターフェース

単一継承の機能を補うインターフェース

12.3.4 インターフェースの作成

インターフェース用のソースファイルを作成する

コラム abstractを付けるとどんなクラスでも抽象クラスになる

コラム 既存のソースファイルでインターフェースを宣言する場合

12.3.5 インターフェースの実装

インターフェースをクラスに実装する

複数のインターフェースを実装する

12.3.6 実装と継承を同時に使う

実装と継承を同時に行うクラスの作成

12.3.7 extendsでインターフェースを拡張する

extendsによるインターフェース拡張のポイント

12.3.8 インターフェース型の参照変数

インターフェース型の参照変数からのメソッド呼び出し

12.3.9 インターフェースを宣言する場合の注意

インターフェースを宣言する際の注意事項

インターフェースを実装する際の注意事項

Q&A

Chapter 13 手続き型スタイルのプログラミング

13.1 ●JAVAによる手続き型プログラミング

13.1.1 オブジェクト指向からの「抜け道」

メソッドの使い方に見るオブジェクト指向と手続き指向

13.1.2 クラス変数とクラスメソッド

クラス変数は1個だけ存在する

クラスに関連付けられているクラスメソッド

13.2 ●静的メンバーの利用

13.2.1 クラス変数を使う

クラス変数が実体化される過程を確認する

コラム グローバル変数の作り方

13.2.2 クラスメソッドを使う

クラスメソッドから他のメソッドを呼び出す

13.2.3 static初期化子によるクラスの初期化

static初期化子を使う

コラム 静的メンバーを使う際の注意点

コラム インスタンス初期化子

13.2.4 クラスの初期化

staticな要素が初期化される過程を検証する

13.3 ●静的メンバーとインスタンスメンバーの違い

13.3.1 静的メンバーとインスタンスメンバー

静的メンバーを使用するシチュエーション

クラス変数とインスタンスフィールドの違いを確認する

13.3.2 静的メンバーの参照方法

メンバー名による参照

「クラス名.メンバー名」による参照

参照変数を使用した参照

コラム 定数の作り方

13.3.3 クラスメソッドからのインスタンスメンバーへのアクセス

クラスメソッドからインスタンスメンバーにアクセスする

Q&A

Chapter 14 例外処理

14.1 ●例外処理

14.1.1 例外とは

例外の種類

実行時例外を発生させる

実行時例外発生時のエラーメッセージの意味

14.1.2 try...catch...finally文

try...catch...finally文で例外を処理する

tryブロックの処理

catchブロックの処理

finallyブロックの処理

14.1.3 try...catchブロックで戻り値を返す

tryブロックとcatchブロックで異なる戻り値を返す

14.2 ●例外クラス

14.2.1 複数のcatch文を使用した例外処理

例外のスーパークラスを使って複数の例外をまとめて拾う

catchブロックは上から順に検査される

複数のcatch文を使用してすべての例外を拾うプログラム

14.2.2 利用頻度の多い例外クラス

非チェック例外(実行時例外)

チェック例外

14.2.3 すべての例外を拾う

catch文の最後の手段としてException例外を使う

14.3 ●例外をかわす

14.3.1 例外をかわす

例外をthrowsでかわす

例外をかわすメソッドを作る

例外が処理される過程を確認する

14.3.2 例外をかわしても必ず行う処理を指定する

catchのないtry...finallyによる処理

コラム かわされた例外を拾いそこなった場合

14.4 ●例外を投げる

14.4.1 例外を投げるメソッドの記述

チェック例外を投げる

チェック例外を投げるときのポイント

14.4.2 非チェック例外を投げる

14.4.3 独自の例外クラスの作成

コンストラクタ―を備えた例外クラスを作成する

作成した例外クラスのポイント

コラム オーバーロード時における例外の扱い1

コラム オーバーロード時における例外の扱い2

Chapter 15 クラス型の変換とキャスト

15.1 ●参照変数への代入時における型変換

15.1.1 暗黙的な型変換による参照の代入

スーパークラス型の参照変数で参照できる範囲

暗黙的な型変換を使って参照を代入する

作成したプログラムのポイント

15.1.2 ダウンキャストによる参照の代入

コラム アップキャストを行って明示的に型変換する

ダウンキャストを使って参照を代入する

作成したプログラムのポイント

コラム ダウンキャスト時に発生する実行時例外

コラム インスタンスの正体を探る

15.2 ●クラス型の引数と戻り値における型変換

15.2.1 クラス型の引数における型変換

メソッド呼び出し時の引数をサブクラス型にする

引数が暗黙的に型変換されるポイント

15.2.2 クラス型の戻り値における型変換

メソッドの戻り値をサブクラス型にする

引数が暗黙的に型変換されるポイント

Chapter 16 ファイル入出力

16.1 ●入出力の概要

16.1.1 ストリーム

入出力処理

バイトストリームと文字ストリーム

16.1.2 入出力クラス

文字ストリームを扱う入出力クラス

バイトストリームを扱う入出力クラス

16.2 ●ディレクトリの操作

16.2.1 ファイルパスの指定

ファイルパス

ファイルパスを扱うオブジェクトの作成

区切り文字を表わす定数

16.2.2 ディレクトリの操作

ディレクトリを作成する

複数のディレクトリをまとめて作成する

16.2.3 ディレクトリの一覧の取得

ファイルとディレクトリの一覧を表示する

ファイルとディレクトリのパスを取得する

16.2.4 ファイルとディレクトリの判別

ファイル名とディレクトリ名を取り出す

ファイルとディレクトリを判別して表示する

コラム 調べるディレクトリを手入力できるようにする

コラム ファイルやディレクトリが存在するかチェックする

16.3 ●ファイルの操作

16.3.1 ファイルの作成

ファイル作成の手順

ファイルを作成するプログラム

16.3.2 ファイルの削除

ファイルを削除する手順

ファイルを削除するプログラム

16.4 ●ファイルへの出力

16.4.1 ファイルへの出力

文字列のファイルへの出力

文字列をファイルへ出力するプログラム

16.4.2 バッファーリングを利用した出力

BufferedWriterの使い方

バッファーを利用して文字列を出力するプログラム

コラム if文による事前チェックを行わない場合

PrintWriterクラスで出力処理を行う

コラム Eclipseにおけるファイルの作成場所

16.4.3 コンソールからの入力をファイルへ出力する

16.5 ●ファイルからの入力

16.5.1 ファイルからの入力

ファイルから文字列を読み込む

ファイルから文字列を読み込むプログラム

16.5.2 バッファーリングを利用した入力

BufferedReaderの使い方

バッファーを利用して文字列を読み込むプログラム

16.6 ●シリアライズとデシリアライズ

コラム クラスやファイルのコピー

16.6.1 シリアライズ(直列化)とデシリアライズ(直列化復元)

シリアライズとは

16.6.2 オブジェクトのシリアライズ

シリアライズ可能なクラスの作成

シリアライズを行うクラスの作成

16.6.3 オブジェクトのデシリアライズ

デシリアライズを行うクラスの作成

オブジェクトグラフの保存

継承における直列化の処理

Chapter 17 文字列の処理

17.1 ●Stringsクラス

17.1.1 Stringクラスの概要

Stringオブジェクトの生成

Stringオブジェクトの共有

Stringオブジェクトの生成方法

Stringクラスのコンストラクター

Stringクラスのメソッド

文字列の長さを求める

文字列の一部を取得する

文字の位置を取得する

文字列を連結する

大文字⇔小文字の変換を行う

文字列の先頭または末尾の空白を取り除く

文字列を置き換える

17.2 ●StringBuilderクラス

17.2.1 StringBuilderクラスの概要

StringBuilderクラスのコンストラクター

StringBuilderクラスのメソッド

17.2.2 StringBuilderクラスのメソッドの利用

append()メソッドで文字列を追加する

文字列の検索、置き換え、挿入を行う

17.2.3 StringBuilderクラスにおける繰り返し処理

Stringクラスで文字列の追加を繰り返す

17.3 ●書式の設定

17.3.1 書式付き出力

書式を指定して出力する方法

書式を指定してみる

コラム 変数に対する書式指定を行う

17.4 ●日付の処理

17.4.1 Dateクラスによる日付の取得

日付の表示と比較

17.4.2 日付の書式設定

DataFormatで書式を設定する

SimpleDateFormatで書式を設定する

17.4.3 Calenderクラスによる日付の計算

Calenderクラスのファクトリーメソッド

Calenderクラスのフィールド

Calenderクラスのメソッド

日付の計算を行う

コラム キーボードから入力された日数を増減する

17.5 ●正規表現

17.5.1 正規表現を使うシチュエーション

17.5.2 パターンマッチの実行

パターンの作成

Matcherオブジェクトの生成

パターンマッチを実行するプログラムの作成

17.5.3 ターゲットの文字列を複数行にする

ターゲットの文字列を複数行にする

パターンマッチの動作モードをマルチラインにする

マルチラインモードで動作するプログラムを作成する

17.5.4 パターンの位置指定

行の先頭に出現した文字列だけをパターンマッチさせる

文字列の先頭に出現した文字列だけをパターンマッチさせる

行の末尾に出現した文字列だけをパターンマッチさせる

17.5.5 正規表現の基本動作を指定する

大文字と小文字を区別しないようにする

埋め込みフラグを使う

17.5.6 任意の文字の指定と繰り返し

任意の文字を指定する

直前の文字を1回以上繰り返す

直前の文字を0回以上繰り返す

直前の文字を0回か1回繰りす

繰り返しの回数を指定する

複数の文字の繰り返しを指定する

17.5.7 複数の候補を持つパターン

候補の出現回数を指定する

候補の文字列にメタ文字を組み合わせる

17.5.8 文字クラス

マッチする文字の範囲を指定する

文字クラスの否定

17.5.9 パターンマッチによる置換え

文字列の置換えを行うプログラムの作成

Stringsクラスのメソッドで置換えを行う

Chapter 18 コレクションとジェネリクス

18.1 ●コレクションフレームワーク

18.1.1 コレクションフレームワークの概要

コレクションのタイプ

コレクションフレームワークの構造

18.2 ●Listインターフェースを実装するクラス

18.2.1 ArayListクラス

ArrayListクラスのデータ構造

18.2.2 LinkedListクラス

18.2.3 Vectorクラス

コラム ArrayListの同期化

18.3 ●ArrayListクラスの利用

18.3.1 ArrayListのコンストラクター

18.3.2 ジェネリクス(総称型)によるArrayListの操作

ジェネリクスを使用しないでArrayListを操作する

ジェネリクスを使わないプログラムの問題点

ジェネリクスを使って型を関連付ける

ジェネリクスの仕組み

18.3.3 ArrayListのメソッド(Listインターフェースのメソッド)

18.3.4 リストの操作

リストの増減や検索を行うプログラム

処理の内容を見る

コラム キーボードで入力した単語をリストに格納する

18.3.5 ラッパークラスとオートボクシング

intの型の値をArrayListで扱うプログラム

double型の値をArrayListで扱うプログラム

オートボクシングによる自動ボックス化

18.3.6 イテレーター

While文でイテレータ―を使う

for文でイテレータ―を使う

18.4 ●LinkedListクラスの利用

18.4.1 LinkedListによるリストの操作

LinkedListクラスのオブジェクトを生成する

リストに要素を追加する

要素の取り出し

プログラムの作成

18.4.2 要素の置換え

リスト内の要素を置換えるプログラムの作成

18.4.3 待ち行列(キュー)としての利用

キューを利用したプログラムの作成

18.5 ●HashMapクラスの利用

18.5.1 Mapインターフェースの実装クラス

18.5.2 HashMapによるリストの操作

HashMapクラスのオブジェクトを生成する

マップに要素を追加する

要素の取り出し

マップを利用したプログラムの作成

Q&A

Chapter 19 マルチスレッドと並行処理

19.1 ●スレッドとは

19.1.1 マルチタスクとマルチプロセス、マルチスレッド

マルチスレッドとは

マルチプロセスとは

マルチタスクとは

コラム マルチプロセスのカラクリ

19.1.2 スレッドのライフサイクル

19.2 ●スレッドの生成

19.2.1 Threadクラスの継承によるスレッドの生成

Threadクラスを継承したプログラムの作成

スレッドが実行される状況

コラム Threadクラスの継承

19.2.2 Runnableインターフェースの実装によるスレッドの生成

Runnableインターフェースを利用したプログラムの作成

19.3 ●複数のスレッドによる処理

19.3.1 複数のスレッドの起動

3個のスレッドを起動して処理を行う

作成したプログラムのポイント

19.4 ●スレッドのコントロール

19.4.1 スレッドの休止

sleepメソッドによる処理の概要

19.4.2 特定のスレッドの終了を待ってから処理を実行する

2個のスレッドをの終了を待たせる

19.4.3 スレッドの同期化とロック

複数のスレッドで1つのフィールドを操作する

同期化されていない場合の問題点

同期化による排他制御

同期メソッド

19.4.4 スレッド間の通信

Threadクラスの作成

Wait、notifyAll()

スレッドの実行順序を制御するプログラム

Appendix 資料編

Appendix1 ●JAVASE APIドキュメント

Appendix2 ●特殊なクラス

列挙型

内部クラス

Appendix3 ●用語索引

PR

秀和システム