Vaskaran Sarcar(著) , 清水 美樹(翻訳) , 大澤 文孝(監修)
※1点の税込金額となります。 複数の商品をご購入いただいた場合のお支払金額は、 単品の税込金額の合計額とは異なる場合がございますので、予めご了承ください。
【本書の内容】
プログラミング言語を体得する上で、抽象概念の理解は欠かせない。とはいえ、抽象概念の塊を解きほぐす作業は、構文を理解し自在に(あるいは課題を解くために)データを加工できるようになるまでの経験値のあげ方に、勝るとも劣らないくらい味気ない作業といえる。
とくに、写経を前提とした「構文理解講座」の場合、抽象概念に関しては構文を理解した後に、なんとなく「こういうことかなー」という体得の流れになる。本来ならば共通する抽象概念を把握し、その実現に向けて既存の構文を応用する、という流れがあって然るべきであるにもかかわらず。
そこで本書では、オブジェクト指向を中心課題に、抽象概念の頻出キーワードを実際のコードに落とし込み、概念の具現化を目的に編まれた。
「これでもか」というほど多数のサンプルを掲載し、問題と頭の体操的なクイズも各項目ごとに載せて、手を動かし考えることで徹底理解を目指す。
【本書のポイント】
・積み上げ学習式ではなく技術用語駆動
・用語が意味するところと実際のコードがダイレクトに繋がる
・気になる箇所だけ重点的に学習できる
・オブジェクト指向のコンセプトと実際が体感できる
【読者が得られること】
・小さいサンプルを手を動かしながら考える癖がつく
・「わかったつもり」が「なるほど、わかった」になる
・オブジェクト指向が身につく
・C#プログラミングが上達する
【対象読者】
・C#プログラマ
・情報工学系の学生
・お仕事でC#に触れている方
・“オブジェクト指向”がイマイチな方
本書はC#の中心となるオブジェクト指向プログラミングの概念を詳しく解説した書籍です。豊富なサンプルを掲載。手を動かしながら読み進めることでオブジェクト指向を体得できます。
オブジェクト指向プログラミングとは何か/なぜオブジェクト指向プログラミングが必要か/C#の中心的な構成要素で、オブジェクト指向プログラミングの基本的な考え方を、どのように網羅できるか/魅力的で効率的なC#アプリケーションを作るには?
高度なC#プログラミングに到達する道/高度で、かつ常に大切なC#の5つの考え方
プログラミングで最も魅力的なデザインパターンの考え方/現実世界とコンピュータの世界における、3つのデザインパターンの実践例
■第1部 オブジェクト指向プログラミングに踏み入る
第1章 オブジェクト指向プログラミングの考え方
1.1 クラスとオブジェクト
1.2 カプセル化
1.3 抽象化
1.4 継承
1.5 ポリモーフィズム
1.6 まとめ
第2章 基礎となる構成要素:クラスとオブジェクト
2.1 クラス
2.2 オブジェクト
2.3 クラス定義の例
2.4 オブジェクトの初期化
2.5 省略可能な引数
2.6 まとめ
第3章 継承とは何か
3.1 継承の種類
3.2 baseという特別なキーワード
3.3 まとめ
第4章 ポリモーフィズムに馴染む
4.1 メソッドのオーバーロード
4.2 提案:よいプログラムの書き方
4.3 演算子のオーバーロード
4.4 メソッドのオーバーライド
4.5 ポリモーフィズムを用いた実験
4.6 抽象クラス
4.7 まとめ
第5章 インターフェイス:OOPの芸術的側面
5.1 インターフェイスとは
5.2 タグ(タギングもしくはマーカー)インターフェイス
5.3 まとめ
第6章 プロパティとインデクサによるカプセル化
6.1 プロパティの概要
6.2 コード量を少なく
6.3 virtualなプロパティ
6.4 抽象プロパティ
6.5 インデクサ
6.6 インターフェイスのインデクサ
6.7 まとめ
第7章 クラス変数を理解する
7.1 クラス変数
7.2 静的メソッドについての議論
7.3 静的コンストラクタについて
7.4 まとめ
第8章 さまざまな比較をしながらC#を解析する
8.1 暗黙的な型変換と明示的な型変換
8.2 ボックス化とボックス化解除
8.3 アップキャストとダウンキャスト
8.4 isとas
8.5 キーワード「is」の使用
8.6 キーワード「as」の使用
8.7 refとout―値型を値で渡すか、参照で渡すか
8.8 パラメータrefとout
8.9 C#における型の比較
8.10 まとめ
第9章 C#におけるOOPの原則のまとめ
9.1 コンポジションとプログラム
9.2 集約とプログラム
9.3 まとめ
■第2部 高度な考え方を身近なものにする
第10章 デリゲートとイベント
10.1 デリゲートとは
10.2 正式な定義
10.3 コードの量を減らす
10.4 マルチキャストデリゲートとチェインデリゲート
10.5 デリゲートの共変性と反変性
10.6 デリゲートとメソッドのグループ変性における共変性
10.7 デリゲートの反変性
10.8 イベント
10.9 C#で簡単なイベントを実装する手順
10.10 イベントの引数にデータを渡す
10.11 イベントアクセサ
10.12 まとめ
第11章 無名関数で柔軟性を実現する
11.1 無名メソッドとラムダ関数
11.2 Funcデリゲート、Actionデリゲート、Predicateデリゲート
11.3 まとめ
第12章 ジェネリック
12.1 ジェネリックと従来のプログラムとを比較する
12.2 特別なキーワード「default」
12.3 代入
12.4 ジェネリックの制約
12.5 共変性と反変性
12.6 ジェネリックインターフェイスで共変性を実現
12.7 ジェネリックデリゲートで反変性を実現
12.8 まとめ
第13章 例外処理
13.1 例外処理を考える
13.2 独自の例外を投げる
13.3 まとめ
第14章 メモリの解放
14.1 ガベージコレクタの動作
14.2 ガベージコレクションの3つのフェーズ
14.3 ガベージコレクタが呼び出される3つのケース
14.4 メモリリークの解析
14.5 まとめ
第3部 現実世界でのヒーローになる
第15章 デザインパターン入門
15.1 デザインパターンとは
15.2 キーポイント
15.3 シングルトンパターン
15.4 アダプターパターン
15.5 ビジターパターン
15.6 まとめ
第16章 これから歩む道
付録A 本文から漏れた話題など
付録B 参考文献