オブジェクト指向言語Java

オブジェクト指向言語Java

オブジェクト指向言語の代名詞Javaの中級者用プログラミング解説本。Java FXのGUI含むJavaの広範な内容をまとめた

ジャンル
発行年月日
2016/11/02
判型
B5
ページ数
232ページ
ISBN
978-4-339-02865-2
オブジェクト指向言語Java
在庫あり

定価

3,190(本体2,900円+税)

カートに入れる

電子版を購入

購入案内

  • 内容紹介
  • まえがき
  • 目次
  • 著者紹介

本書は,C言語などの手続き型のプログラミング言語を学んだ読者を対象に,オブジェクト指向プログラミングとグラフィカルユーザインタフェースを備えたプログラムのつくり方を説明しています.本書は以下のように構成されています.
1章では,Java言語の基礎的な背景と,プログラムのコンパイル,実行の方法について説明しました.
2章では,変数や定数の型,演算子,配列,制御構造,変数のスコープなど基本的な事項について説明します.この章で述べている内容はC言語を知っている読者にはなじみのあるものと思います.ただし,C言語と微妙に異なる部分がありますので,一度目を通しておくことをお勧めします.
3章から5章まででJava言語において最も重要なクラスやインタフェースについて説明しています.3章ではクラスの基本的な事項について説明しています.4章では,すでに定義されているクラスに新しい機能を追加する方法について説明します.5 章では,インタフェースという,クラスの特殊な形について説明します.Javaではこのインタフェースにより多重継承という機能が実現されています.またラムダ式というJavaでは比較的新しい機能についても説明しています.
大規模なプログラムは,多数のクラスから構成されます.別の人がつくったクラスを利用する場合に,同じクラス名が別の機能のクラスで使われている場合があります.そのようなクラス名の衝突を避けるためにJavaではパッケージという仕組みを使います.また,プログラムでエラーが発生したとき,例外処理という手続きが必要になります.これらの機能について6章で説明します.
7章から9章までで,グラフィカルユーザインタフェース(GUI)を用いるプログラムのつくり方を説明します.GUIプログラムでは,ボタンやプルダウンメニューなど,あらかじめ用意されている部品を組み合わせて画面を作成します.Javaではこの部品集にいくつかの種類がありますが,本書では最新のJavaFXという部品集の使い方について説明しています.現在は,AWTやSwingなど歴史的に長く使われ,したがって情報も多く得られる部品集が広く使われていますが,今後はJavaFXを用いる機会が増えるものと予想します.
10章ではファイルの入出力について説明します.この章を学ぶことにより,ファイル中に書かれているデータを読み込んだり,またファイルにテキストやデータを書き込むことができるようになります.
Javaでプログラムの作成時によく使われるデータ構造や手続きがライブラリーに含まれています.11章ではそれらのライブラリーの使い方について説明します.大規模なデータの集まりをプログラム中で管理し,検索などの処理をライブラリーを用いて容易に行えます.最後に12章ではマルチスレッドプログラムについて説明します.このマルチスレッドを用いることにより,多数のユーザからの同時の問合せに応えるシステムや,分散協調型のシステムなどを構築できます.また,GUIプログラムでもマルチスレッドが使われています.
Javaのクラスライブラリーにはたくさんの有益なクラスが含まれています.それらのクラスについて,本書の中で個々に細かく説明することはできません.しかし,Javaではクラスライブラリーのマニュアルが整っています.そのマニュアルの利用の仕方を付録で説明しています.6章までの基礎知識があればマニュアルを調べることにより,各クラスがもつ便利な関数(メソッド)を知ることができます.
プログラミングは,本を読み,知識をつけるだけでは上達しません.多くのプログラムを書いてみることが重要です.各章末に演習問題を乗せてあります.是非これらの問題に挑戦してください.
(本書1章3節 本書の構成より抜粋)

このテキストは,プログラム言語Javaについて解説しています.Javaはオブジェクト指向という考え方をベースとしてつくられた言語です.オブジェクト指向言語では,プログラムの部品化を容易に行え,再利用しやすくなります.最近の多くのプログラミング言語は,Javaと同様にオブジェクト指向言語です.したがって,Javaを習得すればC#やVisual Basic.NET,C++など,他のオブジェクト指向言語を学ぶときに,理解が容易になります.

プログラミングは難しい作業ではありません.一度基本を覚えてしまえば,使用する言語が変わっても,容易に順応できるようになります.しかし,最初のプログラミング言語を覚えるときには若干の障壁を感じるかもしれません.その障壁を乗り越えるためには訓練が必要です.プログラミングを初めて学ぶ人にとっての訓練とは,このテキストのような教材に載っているプログラムを自分で実際にタイプし,コンパイルし,実行してみるという,一見単純作業の積み重ねが重要と考えます.自分でタイプすることにより,慣用句的な表現が記憶に残ります.また,プログラムのタイプミスが生じるかもしれません.その結果,コンパイル時にエラーが出力されます.もし,コンパイルエラーが生じたら新しいことを学ぶチャンスと考えてください.コンパイルエラーメッセージから原因を推測し,テキストのプログラムと見比べてみてください.エラーが発見できないときもあきらめず,友達と検討してください.最後には教員に聞き,必ず原因を理解してください.このような地道な訓練がプログラミング言語の基礎レベルの学修に非常に有益です.

Javaをはじめ,多くのプログラミング言語のテキストにはソースファイルがCDやDVDで付録として付けられています.すでにプログラミングの経験がある人が新しい言語を学ぶときには,それらは有効と思いますが,ビギナーのうちは必ず自分でタイプすることが重要です.

大規模なプログラミングにおいては,EclipseやNetBeansのような統合開発環境(IDE)を使います.それらにより,タイプが容易になったり,タイプミスの発見が早くなり,またデバッグも容易になります.しかし,初学者のうちは,これらは使わず是非テキストエディタとコマンドプロンプトでプログラミングをしてください.統合開発環境はプログラミングの基礎を習得した後で使えば効率化の面でたいへん有益です.しかし初学者のうちは,考えて,調べて,聞くという一見非効率な作業が,習得には有益と考えます.

インターネット上にはJavaに関する情報があふれています.コンパイルエラーの意味や理由がわからないときは,検索エンジンにコンパイルエラーメッセージをコピー,ペーストして尋ねることにより解決することもよくあります.プログラミング言語の習得に,インターネットも活用してみてください.

2016年9月 大澤 裕

1. とりあえずJavaを使ってみる
1.1 プログラミング言語Java
1.2 簡単なプログラム例
1.3 本書の構成
章末問題
演習

2. Javaの基礎
2.1 Javaプログラムの構成
2.2 基本データ型と変数名
2.3 演算子
 2.3.1 算術演算で用いられる演算子
 2.3.2 関係演算子と論理演算子
 2.3.3 ビット演算子
 2.3.4 文字列と文字列結合演算子
 2.3.5 その他の演算子と演算子の優先順位
2.4 配列
2.5 制御構造
 2.5.1 条件分岐
 2.5.2 while文とdo-while文
 2.5.3 for文
 2.5.4 break文とcontinue文
 2.5.5 コメント
2.6 変数や定数の宣言とスコープ
2.7 データ型の変換
2.8 列挙型
2.9 メソッド
2.10 簡単な入出力
章末問題

3. クラスとJavaプログラムの基本
3.1 Javaプログラムの基礎
3.2 クラスおよびオブジェクトとインスタンス
3.3 フィールドとメソッド
3.4 基本データ型とクラスオブジェクトとの違い
3.5 コンストラクタ
3.6 クラス変数
3.7 クラスメソッド
3.8 Stringクラス
3.9 ラッパークラス
章末問題
演習

4. クラスの拡張
4.1 クラス拡張の準備
4.2 クラスの拡張
4.3 クラス拡張における留意点
4.4 ポリモーフィズム
4.5 アクセス修飾
4.6 Objectクラス
4.7 内部クラス
4.8 アノテーション
章末問題
演習

5. 抽象クラスとインタフェース
5.1 抽象クラスが必要になる状況
5.2 抽象クラス
5.3 インタフェース
5.4 final修飾子による拡張の制限
5.5 総称型
5.6 総称型クラスの限定適用
5.7 匿名クラス
5.8 Lambda(ラムダ)式
章末問題
演習

6. パッケージと例外処理
6.1 パッケージ
6.2 パッケージの作成
6.3 jar
6.4 例外処理
6.5 例外クラスの定義法
章末問題

7. GUIプログラム
7.1 JavaFXによる簡単なプログラム
7.2 コントロールの配置
7.3 イベント処理の基本
7.4 レイアウトの方式
 7.4.1 HBox
 7.4.2 BorderPane
 7.4.3 GridPane
 7.4.4 FlowPane
 7.4.5 Paneを組み合わせたレイアウト
7.5 色やフォントの設定
章末問題
演習

8. さまざまなコントロール
8.1 チェックボックス
8.2 ラジオボタン
8.3 テキストフィールド
8.4 テキストエリア
8.5 コンボボックス
8.6 プルダウンメニュー
8.7 スライダ
8.8 FXML
章末問題
演習

9. 図形の描画
9.1 Shape
9.2 GraphicsContext2Dを用いた描画
9.3 マウスイベントの処理
9.4 キーボードイベントの処理
9.5 ウィンドウアプリケーションの実際
 9.5.1 プログラムの動作
 9.5.2 Polygonクラス
 9.5.3 プログラムの説明
9.6 画像の表示
章末問題
演習

10. ファイルの入出力
10.1 基本的な入出力
10.2 Scannerによる入力
10.3 PrintStreamを用いた出力
10.4 ファイルに関する属性を知る
10.5 バイトストリーム
10.6 ランダムアクセスファイル
10.7 ファイルチューザ
章末問題
演習

11. クラスライブラリー
11.1 Mathクラス
11.2 Arrays
11.3 時間と日付
11.4 コレクションクラス
11.5 コレクションクラスのインタフェース
11.6 コレクションクラスの例
 11.6.1 ArrayListクラス
 11.6.2 Stackクラス
 11.6.3 HashMapクラス
 11.6.4 PriorityQueueクラス
 11.6.5 TreeSet
 11.6.6 拡張for文とイテレータ
 11.6.7 その他のコレクションクラス
11.7 Stream
章末問題
演習

12. マルチスレッド
12.1 Threadクラスによるマルチスレッドの実現
12.2 Runnableインタフェースによるマルチスレッドの実現
12.3 スレッドへの割込み
12.4 スレッドの終了を待つ
12.5 スレッド間の同期
12.6 スレッド間通信
章末問題

付録 Javaのドキュメント

索引

小林 貴訓(コバヤシ ヨシノリ)

Htoo Htoo(トウ トウ)

大澤 裕(オオサワ ユタカ)

※ 立ち読みPDF内,GUIプログラム実行画面において,一部カラー表示されている箇所がありますが,実際の書籍ではグレースケールとなります。