目次
第1章 イントロダクション
- 1.1 Android概観
- 1.1.1 Androidのアーキテクチャ
- 1.1.2 Androidのバージョン
- 1.2 AndroidとJava
- 1.2.1 Javaとは?
- 1.2.2 Androidの特異な点
第2章 Java の基本
- 2.1 Javaプログラミングの基本
- 2.1.1 Hello, Javaアプリの作成
- 2.1.2 ソースコードの全体像
- Column サンプルファイルのインポート方法
- 2.2 変数
- 2.2.1 識別子の命名規則
- 2.2.2 より良い識別子のために
- 2.3 データ型
- 2.3.1 基本型と参照型
- 2.3.2 整数型
- 2.3.3 浮動小数点型
- 2.3.4 文字型
- 2.3.5 真偽型
- 2.4 リテラル
- 2.4.1 整数リテラル
- 2.4.2 浮動小数点リテラル
- 2.4.3 補足:数値リテラルにおける型の特定
- 2.4.4 文字リテラル
- 2.4.5 文字列リテラル
- 2.5 型変換
- 2.5.1 暗黙的な変換
- 2.5.2 縮小変換(キャスト)
- 2.6 参照型
- 2.6.1 クラス型
- 2.6.2 配列型
- 2.6.3 ラッパークラス
- 2.7 定数
- 2.7.1 定数の基本
第3章 演算子
- 3.1 算術演算子
- 3.1.1 浮動小数点数の演算には要注意
- 3.1.2 非数値の演算(加算演算子)
- 3.1.3 文字列の連続した結合に要注意
- 3.1.4 除算とオペランドのデータ型
- 3.1.5 インクリメント演算子とデクリメント演算子
- 3.2 代入演算子
- 3.2.1 基本型と参照型による代入の違い
- 3.3 比較演算子
- 3.3.1 同一性と同値性
- 3.3.2 補足:「==」演算のその他の注意点
- 3.3.3 条件演算子(?:)
- 3.4 論理演算子
- 3.4.1 ショートカット演算(短絡演算)
- 3.5 ビット演算子
- 3.5.1 ビット論理演算子
- 3.5.2 ビットシフト演算子
- 3.6 演算子の優先順位と結合則
- 3.6.1 優先順位
- 3.6.2 結合則
第4章 制御命令
- 4.1 条件分岐
- 4.1.1 if命令 ― 単純分岐
- 4.1.2 if命令 ― 多岐分岐
- 4.1.3 if命令 ― ネスト構造
- 4.1.4 補足:ブロックの{...}は省略可能
- 4.1.5 補足:if命令によるコメントアウト
- 4.1.6 switch命令
- 4.2 繰り返し処理
- 4.2.1 while / do...while命令
- 4.2.2 補足:無限ループ
- 4.2.3 for命令
- 4.2.4 拡張for命令
- 4.2.5 break / continue命令
第5章 オブジェクト指向構文(クラスの基本)
- 5.1 クラスの基本
- 5.1.1 クラス名
- 5.1.2 修飾子
- 5.1.3 メンバーの記述順序
- 5.2 フィールド
- 5.2.1 フィールド名
- 5.2.2 修飾子
- 5.2.3 デフォルト値
- 5.3 メソッド
- 5.3.1 メソッド名
- 5.3.2 引数(仮引数と実引数)
- 5.3.3 戻り値
- 5.3.4 修飾子
- 5.3.5 thisキーワード
- 5.4 メソッド(オーバーロード/可変長引数/再帰呼び出し)
- 5.4.1 メソッドのオーバーロード
- 5.4.2 可変長引数のメソッド
- 5.4.3 再帰呼び出し
- 5.5 変数のスコープ
- 5.5.1 フィールドの有効範囲
- 5.5.2 フィールドとローカル変数
- 5.5.3 ブロックスコープ
- 5.5.4 仮引数
- 5.6 コンストラクター
- 5.6.1 コンストラクターの基本
- 5.6.2 デフォルトコンストラクター
- 5.6.3 コンストラクターのオーバーロード
- 5.6.4 ファクトリーメソッド
- 5.6.5 初期化ブロック
- 5.7 クラスフィールド/クラスメソッド
- 5.7.1 クラスメソッド
- 5.7.2 補足:ユーティリティクラス
- 5.7.3 クラスフィールド
- 5.7.4 クラス定数
- 5.7.5 static初期化ブロック
- 5.7.6 補足:初期化処理の実行タイミング
- Column Javaの歴史
第6章 オブジェクト指向構文(カプセル化/継承/ポリモーフィズム)
- 6.1 カプセル化
- 6.1.1 アクセス修飾子
- 6.1.2 インスタンスフィールドのアクセス権限
- 6.1.3 補足:不変クラス
- 6.2 継承
- 6.2.1 継承の基本
- 6.2.2 メソッドのオーバーライド
- 6.2.3 基底クラスのメソッドを呼び出す
- 6.2.4 コンストラクター(継承時の挙動)
- 6.2.5 フィールドの隠蔽
- 6.2.6 継承/オーバーライドの禁止
- 6.2.7 型変換(参照型)
- 6.2.8 委譲
- 6.3 ポリモーフィズム
- 6.3.1 抽象メソッド
- 6.3.2 インターフェイス
- 6.3.3 インターフェイスと抽象クラスとの使い分け
- Column Javaのコーディング規約
第7章 オブジェクト指向構文(パッケージ/例外処理/その他)
- 7.1 パッケージ
- 7.1.1 パッケージの基本
- 7.1.2 インポート
- 7.1.3 単一型インポートとオンデマンドインポート
- 7.1.4 補足:staticインポート
- 7.2 例外処理
- 7.2.1 例外処理の基本
- 7.2.2 finally句
- 7.2.3 例外クラスの型
- 7.2.4 例外をスローする ― throw命令
- 7.2.5 検査例外と非検査例外
- 7.2.6 例外をスローする際の留意点
- 7.2.7 例外の再スロー
- 7.2.8 例外クラスを拡張する
- 7.3 enum型
- 7.3.1 enum型の導入前
- 7.3.2 enum型の基本
- 7.3.3 enum型の正体
- 7.3.4 コンストラクター/メソッド/フィールドの定義
- 7.3.5 補足:EnumSetクラスによるビットフィールド表現
- 7.4 Objectクラス
- 7.4.1 Objectクラスの主なメソッド
- 7.4.2 toStringメソッド
- 7.4.3 equalsメソッド
- 7.4.4 hashCodeメソッド
- 7.4.5 cloneメソッド
- 7.4.6 finalizeメソッド
- 7.4.7 補足:compareToメソッド
- 7.5 アノテーション
- 7.5.1 アノテーションの記述位置
- 7.5.2 アノテーションの構文
- 7.5.3 標準アノテーションの例
- 7.5.4 自作アノテーションの定義
- 7.5.5 補足:リフレクションの主なメソッド
- 7.6 ネストしたクラス
- 7.6.1 staticメンバークラス
- 7.6.2 非staticメンバークラス
- 7.6.3 匿名クラス
- 7.6.4 ローカルクラス
- Column Javaをより深く学ぶための参考書籍
第8章 コレクション
- 8.1 コレクションフレームワークの基本
- 8.1.1 主なインターフェイスと実装クラス
- 8.1.2 コレクションの基本構文
- 8.1.3 基本的なコーディング手法
- 8.1.4 コレクションを順番に処理する
- 8.1.5 コレクションのラッピング
- 8.2 リスト(Listインターフェイス)
- 8.2.1 ArrayList
- 8.2.2 LinkedList
- 8.2.3 リストの基本コード
- 8.3 セット
- 8.3.1 セットの具体的なコード例
- 8.4 マップ
- 8.4.1 HashMap
- 8.4.2 IdentityHashMap / WeakHashMap
- 8.4.3 LinkedHashMap / TreeMap
- 8.4.4 補足:NavigableMap
- 8.5 Deque(Queue)
- 8.5.1 ArrayDequeによるキュー/スタックの実装
- 8.5.2 補足:QueueメソッドとStackメソッド
- 8.6 ジェネリックス
- 8.6.1 ジェネリックス定義の基本
- 8.6.2 境界ワイルドカード型
- 8.6.3 ジェネリックメソッド
第9章 ストリーム
- 9.1 ストリームの基本
- 9.1.1 ストリームの分類
- 9.2 さまざまなストリームの例
- 9.2.1 テキストファイルの読み書き
- 9.2.2 補足:ファイル操作
- 9.2.3 バイナリファイルの読み書き
- 9.2.4 バイトストリーム→文字ストリームの変換
- 9.2.5 読み書きのバッファリング処理
- 9.2.6 Android環境でのファイル操作
- 9.2.7 ファイルにランダムアクセスする
- 9.2.8 オブジェクトをファイルに保存する
- 9.2.9 出力ストリーム→入力ストリームの連結(パイプ)
- 9.3 ネットワーク
- 9.3.1 ソケット通信
- 9.3.2 HTTP通信
- 9.3.3 構造化データを取得&解析する
第10章 スレッド
- 10.1 スレッドの基本
- 10.1.1 スレッドの作成&実行
- 10.1.2 同期処理
- 10.1.3 スレッドプール
- 10.2 Android アプリにおけるスレッド処理
- 10.2.1 Handlerによるメインスレッドの操作
- 10.2.2 AsyncTaskによる非同期処理
- 10.2.3 ProgressDialogによる進捗表示
- 10.2.4 AsyncTaskLoaderによる非同期処理