private/JavaBronze/Study
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[private/JavaBronze]]
* Javaの基礎が学べる本(トピック抜粋) [#gda5802f]
#contents
* 1日目 [#j65d4609]
** Javaの概要 [#o6030209]
*** Javaの歴史と特徴 [#xc4104f2]
- Javaは、現代のソフトウェア開発で主流となっているプログ...
- 他のプログラミング言語と違い、「一度書いたら、どこでも...
*** Javaの種類と開発環境 [#b81f70d3]
- Javaでソフトウェアを開発するにはJDKが必要である。
- JavaにはSE/EE/MEという3つのエディションがあるが、Java ...
*** Javaの開発環境を準備する [#uc64dd1d]
- Javaの開発用キット「JDK」をインストールする
- 環境変数PATHを設定し、プログラムを実行するための環境を...
*** プログラミングを始める [#mb151eab]
- プログラムの内容であるソースコードを作成し、「.java」フ...
- コマンドプロンプトでjavacコマンドを使ってコンパイルする。
- コンパイルされた「.class」ファイルをjavaコマンドで実行...
*** Javaのプログラムが動く仕組み [#df5a2786]
- コンパイルとは、コンピュータがソースコードを理解できる...
- コンパイルするための翻訳プログラムのことを「コンパイラ...
- Javaではコンパイルを2回行い、2回目のコンパイルはプロ...
** 変数、データ型、演算子 [#zb0ef701]
*** 変数と宣言方法 [#sb6a2647]
- 変数名とは、人間が理解しやすいようにメモリアドレスに付...
- 変数名を使って実際のメモリアドレスを参照し、そこにある...
- Javaには、8種類のプリミティブ型のデータ型が用意されている
- 変数は、宣言したのちに初期化することによって使うことが...
*** 算術演算子 [#j0d7eea4]
- 算術演算子を使って、変数の値を演算することができる
- 算術演算子は左から順番に演算されるが、掛け算、割り算、...
- +演算子は、足し算だけでなく文字列連結にも使うことができる
- インクリメント演算子やデクリメント演算子を使うと、変数...
- インクリメント演算子とデクリメント演算子は、前置と後置...
*** 型変換とキャスト [#h40e7366]
- 原則として異なる型同士の演算はできない
- 大きなサイズのデータ型から小さなサイズのデータ型への型...
- 小さなサイズのデータ型から大きなサイズのデータ型への型...
*2日目 [#l8d2dfbe]
** 条件分岐 [#mc83a87b]
*** 読みやすいコードを書くために [#u2b74c9b]
- 順次、分岐、反復の3つの構文を組み合わせた「構造化プログ...
- 誰が読んでも理解しやすいコードにするため、構造化プログ...
*** if文を使った条件分岐 [#v269af79]
- if文は、条件に一致するかしないかによって処理を分岐する...
- else、else ifを追加して分岐を増やす
- 論理演算子を使うと、複数の条件を組み合わせることができる
*** switch文を使った条件分岐 [#v1d0d8ef]
- switch文は、値によって処理を振り分ける
- 値が合致するcaseがない場合のデフォルトの処理にはdefault...
- breakキーワードを使って、switch文を抜けるように命令する
*3日目 [#y60e8ff5]
** 繰り返し構文 [#b896516b]
*** for文を使った繰り返し [#b148a08a]
- for文では条件式がtrueを戻す限り、繰り返し処理を実行し続...
- 初期化式、条件式、遷移式は省略可能だが、セミコロン「;」...
- 二重ループは、内側のfor文をその意味で置き換えるとわかり...
*** while文を使った繰り返し [#dacf9af5]
- while文では条件式がtrueを戻す限り、繰り返し処理を実行し...
- while文は、繰り返しの回数が決まっていない場合に使うと便...
*** do-while文を使った繰り返し [#lf4a37e2]
- do-while文は、繰り返しの回数が決まっていない場合に使う...
- do-while文はでは条件式が最後にあるため、必ず1回はdoブロ...
*** 繰り返しの制御 [#e39935ea]
- breakは、for文やwhile文の繰り返し処理を中断し、処理がル...
- continueは、繰り返し処理の最中に処理をスキップするよう...
*4日目 [#ieba013d]
** 配列 [#e8ccdf1c]
*** 配列と配列型変数 [#ced07adc]
- 配列は「要素」と呼ばれる値の集合である
- 配列型変数はプリミティブ型とは違い、複数の値を一度に扱...
- 配列は同じ型の集合だけを扱うことができる
- 要素の値には添字を使ってアクセスする
*** 配列を作る [#a3c660aa]
- 配列を作成するには、「new 制約[要素数]」と記述する
- 配列を作るときに指定する要素数は後から変えられない
- 配列と配列型変数は別のものである。要素を持っているのは...
*** 配列の要素にアクセスする [#veaad5c4]
- 配列の要素は添字という番号で管理される
- 添字は0番から始まる
*** 要素数を数える [#b09c1c68]
- 添字を使って要素数を数えたり、要素にアクセスしたりする
- lengthを使って配列が持っている要素数を数えることができる
- for文の条件式でlengthを使い、要素の数だけ繰り返し処理を...
*** 初期化子を使って初期化を簡略化する [#xb877251]
- 初期化子「{}」は、必ず変数宣言と同時に使う
- 初期化子を使うと、配列を作るコードを簡潔に記述できる
*** 拡張for文 [#kb234d43]
- 拡張for文は、集合から1つずつ値を取り出し、すべての値を...
- 拡張for文は、1つおきに値を取り出すような細かな制御には...
** メソッド [#z632b37b]
*** 処理をまとめる「メソッド」 [#s3757ae9]
- 長いコードを分割することで、わかりやすく、再利用しやす...
- メソッドとは、一連の処理の流れをまとめたものである
*** メソッドを定義する [#v3d95658]
- 新しいメソッドを定義するときは、メソッドブロックをクラ...
- 「public static void main(String[] args)」というメソッ...
*** プログラムの実行順とmainメソッド [#mb472ddf]
- mainメソッドのことを、プログラムの開始場所という意味で...
- プログラムにはメソッドをいくつでも定義できるが、最初に...
*** メソッドを呼び出す [#yf90b449]
- メソッドを呼び出すには「メソッド名();」と記述する
- 呼び出しさきのメソッドで、さらに別のメソッドを呼び出す...
*** メソッド呼び出し順の制御とメモリ構造 [#j2fa4bf3]
- JVMは、スタック領域というメモリ領域を使ってデータやメソ...
- 1つのメソッド内に同じ名前の変数を複数宣言するとコンパ...
- プログラムはmainメソッドから始まり、やるべき処理がなく...
*** 引数を使ったデータの受け渡し [#pd9b0070]
- メソッドの呼び出すときに呼び出し元のメソッドからコピー...
- メソッドの定義と呼び出し元で、引数の数やデータ型を一致...
- 複数の引数を宣言するときは、カンマ「,」で区切る
*** 戻り値を使ったデータの受け渡し [#rf51e925]
- メソッドで処理した結果を戻したい場合にはreturnを使う
- メソッドが呼び出し元に戻す値のことを「戻り値」という
- voidは、戻り値を戻さないメソッドであることを表す
- メソッドの定義と呼び出す側で、戻り値の数と型を一致させ...
*5日目 [#mcea0c21]
** オブジェクト指向 [#aeca42f6]
*** オブジェクト指向とは [#yd25ffa2]
- オブジェクト指向は、ソフトウェア設計手法の1つである
- 構造化設計は開発コストの削減を目的とし、オブジェクト指...
- 構造化設計は「どのような処理をすべきか」から設計を開始...
- データの扱い方のルールをコードで表現したものを「ビジネ...
*** オブジェクト指向設計の基礎となる設計原則 [#w2d37b00]
- オブジェクト指向設計は、変更に強い設計を目的としている
- 「カプセル化」「データ隠蔽」「抽象化」「情報隠蔽」の4...
- カプセル化とは、関係するデータとそのデータを使う処理を...
- データ隠蔽とは、内部のデータに対して外部の処理からアク...
- オブジェクト指向では抽象化をポリモーフィズムという技術...
- 情報隠蔽とは、オブジェクトに対してアクセス制御をかけて...
*** オブジェクト指向プログラミング [#p319c0c0]
- オブジェクト指向プログラミングでは、実際に動作するもの...
- クラス内にはインスタンスが持つべきデータの種類(フィー...
- オブジェクト指向プログラミングでは、使う側と使われる側...
- インスタンスの生成はnewキーワードを使って行う
- アクセサメソッドを使うことでデータ隠蔽できるようになる
- ローカル変数とフィールドの変数名が重複した場合はローカ...
*6日目 [#j880d406]
** モデリングとUML [#le6442eb]
*** ソフトウェア開発とモデリング [#fded35ea]
- 共同開発におけるコミュニケーションは、できるだけ短時間...
- 情報量の多さは正確さは、伝わりやすさや理解しやすさとは...
- 情報が伝わりやすくなるように図を使って簡略化することを...
*** UMLとは? [#o20e4717]
- 現代のソフトウェア開発では、UMLがモデリングと表記法のデ...
- UMLでは13種類の図が定義され、ソフトウェアのモジュール構...
*** クラス図 [#h58743cb]
- クラス図は、クラスの関係性を表現する
- 1つのクラスは、名前、属性、操作の3つの区画で区切って表...
- クラス間の関係は「関連」という実線で表現する
- 多重度は、クラスが関係するものがいくつあるかを表現する
- 関連端名は、役割の名前を表現する
*** オブジェクト図 [#j00a1f6d]
- オブジェクト図は、インスタンス同士の関係性を表現する
- オブジェクト図の名前には下線を引き、クラスではなくオブ...
- クラス図とオブジェクト図を併用することでクラスの関連が...
*** シーケンス図 [#qedea86d]
- シーケンス図は、インスタンス同士の動的な関係性を表現する
- シーケンス図では、どのインスタンスがどのインスタンスの...
*** UMLとJavaのマッピング [#m0412020]
- クラスの詳細な仕様はUMLではなく、別の仕様書に記載する
- 誘導可能性を使って、どちらのクラスがどちらのクラスを使...
- 依存線で結ばれた2つのクラス間は、一時的な関係しかないこ...
*7日目 [#x95de16a]
** インスタンスの扱い方 [#z856e030]
*** 参照型変数 [#wa08a0c1]
- インスタンス生成時、インスタンスはヒープ領域に作られる
- 変数にはインスタンスそのものではなく、インスタンスへの...
- 参照が入る変数のことを、「参照型変数」や「オブジェクト...
- newというキーワードを使って、インスタンスを生成する
*** コンストラクタメソッド [#bf495277]
- コンストラクタとはインスタンスの準備をするためのメソッ...
- コンストラクタの定義には、「クラス名と同じ名前にする」...
- プログラマーがコンストラクタを定義しなかった場合に、コ...
*** ガベージコレクション [#n2e96b24]
- Javaには、不要になったインスタンスをメモリから自動で破...
- ガベージコレクションが実行されるタイミングは、ガベージ...
*** メソッドのオーバーロード [#ue7acad4]
- メソッド名と引数のセットのことを「シグニチャ」と呼ぶ
- シグニチャが異なれば、異なるメソッドとしてコンパイラやJ...
- コンストラクタもオーバーロードすることが可能である
*** クラス変数とクラスメソッド [#hdea2e0d]
- Javaにはヒープ領域の一部にクラスファイルを保管しておき...
- クラスファイルを保管しておく領域を「パーマネント領域」...
- static修飾子の付いたメソッドやフィールドはstatic領域に...
- staticなメソッドやフィールドはインスタンスが生成されて...
- インスタンスメソッドやインスタンス変数は、インスタンス...
*8日目 [#icdc468e]
** オブジェクト型配列 [#h3100d4f]
*** プリミティブ型配列とオブジェクト型配列 [#k37f9582]
- 配列型変数には、配列インスタンスへの参照が入る
- プリミティブ型の要素を扱う配列を「プリミティブ型配列」...
*** 複数インスタンスの管理 [#d7eee39f]
- オブジェクト型配列を使うと、複数のインスタンスを1つの変...
- オブジェクト指向では、クラスに割り当てられる役割のこと...
- クラスの責務を明確に分け、その責務と関係する処理だけを...
** パッケージによるクラスの分類 [#w49964c5]
*** パッケージとは? [#ya957605]
- Javaでは、クラスを分類するために「パッケージ」という概...
- 完全修飾クラス名を省略して、クラス名だけで記述できるよ...
- java.langパッケージに関するクラスのインポート宣言は省略...
- クラスがどのパッケージに属しているかをパッケージ宣言で...
- 完全修飾クラス名に一致したディレクトリ構造にする
*** クラスファイルを探す [#e7a7230f]
- コンパイラやJVMがクラスファイルを探すために示す場所を「...
- クラスパスを指定するには、コンパイル時にはjavacコマンド...
*** アクセス制御とアクセス修飾子 [#cc1c641f]
- Javaでは、アクセス制御のためにpublic、protected、なし(...
- public以外のアクセス修飾子はすべて限定公開である
- アクセス修飾子の付かないデフォルトは、同じパッケージの...
*9日目 [#kf0c91cc]
** クラス継承 [#ncf501f7]
*** 差分プログラミングとクラスの継承 [#gc720008]
- 差分プログラミングとは、コードの重複を避けることで開発...
- 継承とは、あるクラスの特徴を引き継いだ新しいクラスを定...
- サブクラスを定義するには、extendsキーワードを使う
- サブクラスはスーパークラスのprivateなフィールドやメソッ...
*** メソッドのオーバーライド [#z797b055]
- オーバーライドとは、スーパークラスのメソッドを再定義す...
- superは、スーパークラスのインスタンスを指すキーワードで...
- オーバーロードとは、メソッドの多重定義のことである
- メソッドの定義にOverrideアノテーションを付けることで、...
- protectedは、同じパッケージ内のクラスや、ほかのパッケー...
*** 継承とコンストラクタメソッド [#heef0fd8]
- スーパークラスのコンストラクタを呼びだすには「super()」...
- 「super()」は、プログラマーが記述しなければコンパイラに...
- 継承関係にあるクラスがあったとき、先に実行されるのは必...
*** 継承のデメリットを考える [#o939ed9a]
- 「変更に強い設計」にするためには、変更の影響範囲がすぐ...
- オブジェクト指向の「継承」は、「ポリモーフィズム」とい...
- 差分プログラミングを使うメリットとデメリットを考慮して...
* 10日目 [#q1ac0ebc]
** 例外処理 [#a504b30c]
*** 例外とは? [#u70f6af8]
- Javaでは、プログラムでは対処できないようなトラブルを「...
- 例外に対応するjava.lang.Exceptionクラス、エラーに対応す...
*** 例外処理 [#g0c02d2d]
- 例外処理は、検査例外と非検査例外に分けられる
- 例外処理の記述にはtry-catch文を使う
- 例外が発生してもしなくても必ず処理を実行する場合は、try...
*** 例外のスローとスロー宣言 [#s2fd1242]
- 例外のスローを行うには、throwキーワードを使う
- 例外をスローする可能性を宣言するにはthrowキーワードを使う
- 標準クラスライブラリにはない独自の例外クラスを定義できる
* 11日目 [#j9435ded]
** ポリモーフィズム [#z44cec4b]
*** 抽象化とポリモーフィズム [#v7df4c64]
- ポリモーフィズムとは、1つのものが複数の形態を持ってい...
- ポリモーフィズムの目的は、変更に強い設計を実現すること...
- インスタンスへの参照を継承関係にあるクラスの型で扱って...
*** アップキャストとダウンキャスト [#x642e536]
- アップキャストはサブクラス型をスーパークラス型として扱...
- プログラマーが型の互換性を保証するためにキャスト式を記...
*** Javaにおける「同じ」とは? [#n6d7b4b5]
- instanceof演算子を使って型の互換性を確認することができる
- 同じインスタンスへの参照を持っていることを「同一である...
- 同じ値を持っていることを「同値」といい、equalsメソッド...
* 12日目 [#z0663868]
** 抽象化プログラミング [#edbfcba7]
*** インタフェース [#q525e8d5]
- インタフェースは型を規定するものであり実装を持たない
- インタフェースには、実装を持たない抽象メソッドを定義する
- インタフェースを実現するクラスは、インタフェースに定義...
- インタフェースはインスタンス化できない
- インタフェースの継承やクラスの多重実現により、複数のイ...
*** 抽象クラス [#z7cc66ff]
- 抽象クラスには、抽象メソッドと具象メソッドが定義できる
- 抽象クラスはインスタンス化できない
- 抽象クラスがインタフェースを実現したときは、抽象クラス...
*** 抽象化プログラミング [#j2f80466]
- インタフェースや抽象クラスなどの抽象的なものを中心に捉...
- ポリモーフィズムを使って、使う側と使われる側が直接つな...
* 13日目 [#we5ce3bd]
** コレクション [#s358b501]
*** コレクションとは? [#q1a3f74e]
- コレクションとはインスタンスの集合である
- データの扱い方に応じて、リスト、セット、マップといった...
- Javaでは、java.lang.utilパッケージにList、set、Mapなど...
*** Listインタフェースと実現クラス [#sa5eb185]
- リストとは要素を順序付けて管理するコレクションで、配列...
- java.util.Listインタフェースはリストの機能を定めており...
- ListインタフェースのaddメソッドとgetメソッドはObject型...
*** ジェネリクスとは? [#j8b3ce7c]
- ジェネリクスはインスタンス生成時に型を指定できる機能で...
- ジェネリクスは、互換性のない型の要素がコレクションに混...
- 型パラメータは型情報を受け取るための引数で、インスタン...
- 変数で指定する型パラメータと、コンストラクタに指定する...
*** ジェネリクスの使い方 [#l1a0239e]
- ジェネリクスを使うことによって、ダウンキャストによる型...
*** Setインタフェースと実現クラス [#wafd8053]
- セットは、要素の重複がないコレクションである
- java.util.Setインタフェースはセットを扱うインタフェース...
- java.util.iteratorインタフェースは、要素を取り出すため...
- コレクションからイテレータを取り出すには、java.lang.ite...
*** Mapインタフェースと実現クラス [#z1a2f4cf]
- マップは名前と値を持つコレクションで、名前でインスタン...
- java.util.Mapインタフェースはマップを扱うインタフェース...
*** ラッパークラスとオートボクシング [#na2af5bf]
- オートボクシングは、プリミティブ型と参照型の自動変換を...
- Javaの標準ライブラリには、プリミティブ型に対応する「ラ...
- 参照型をプリミティブ型に自動変換する機能を「オートアン...
*関連 [#m8a4a6cf]
#ls2
終了行:
[[private/JavaBronze]]
* Javaの基礎が学べる本(トピック抜粋) [#gda5802f]
#contents
* 1日目 [#j65d4609]
** Javaの概要 [#o6030209]
*** Javaの歴史と特徴 [#xc4104f2]
- Javaは、現代のソフトウェア開発で主流となっているプログ...
- 他のプログラミング言語と違い、「一度書いたら、どこでも...
*** Javaの種類と開発環境 [#b81f70d3]
- Javaでソフトウェアを開発するにはJDKが必要である。
- JavaにはSE/EE/MEという3つのエディションがあるが、Java ...
*** Javaの開発環境を準備する [#uc64dd1d]
- Javaの開発用キット「JDK」をインストールする
- 環境変数PATHを設定し、プログラムを実行するための環境を...
*** プログラミングを始める [#mb151eab]
- プログラムの内容であるソースコードを作成し、「.java」フ...
- コマンドプロンプトでjavacコマンドを使ってコンパイルする。
- コンパイルされた「.class」ファイルをjavaコマンドで実行...
*** Javaのプログラムが動く仕組み [#df5a2786]
- コンパイルとは、コンピュータがソースコードを理解できる...
- コンパイルするための翻訳プログラムのことを「コンパイラ...
- Javaではコンパイルを2回行い、2回目のコンパイルはプロ...
** 変数、データ型、演算子 [#zb0ef701]
*** 変数と宣言方法 [#sb6a2647]
- 変数名とは、人間が理解しやすいようにメモリアドレスに付...
- 変数名を使って実際のメモリアドレスを参照し、そこにある...
- Javaには、8種類のプリミティブ型のデータ型が用意されている
- 変数は、宣言したのちに初期化することによって使うことが...
*** 算術演算子 [#j0d7eea4]
- 算術演算子を使って、変数の値を演算することができる
- 算術演算子は左から順番に演算されるが、掛け算、割り算、...
- +演算子は、足し算だけでなく文字列連結にも使うことができる
- インクリメント演算子やデクリメント演算子を使うと、変数...
- インクリメント演算子とデクリメント演算子は、前置と後置...
*** 型変換とキャスト [#h40e7366]
- 原則として異なる型同士の演算はできない
- 大きなサイズのデータ型から小さなサイズのデータ型への型...
- 小さなサイズのデータ型から大きなサイズのデータ型への型...
*2日目 [#l8d2dfbe]
** 条件分岐 [#mc83a87b]
*** 読みやすいコードを書くために [#u2b74c9b]
- 順次、分岐、反復の3つの構文を組み合わせた「構造化プログ...
- 誰が読んでも理解しやすいコードにするため、構造化プログ...
*** if文を使った条件分岐 [#v269af79]
- if文は、条件に一致するかしないかによって処理を分岐する...
- else、else ifを追加して分岐を増やす
- 論理演算子を使うと、複数の条件を組み合わせることができる
*** switch文を使った条件分岐 [#v1d0d8ef]
- switch文は、値によって処理を振り分ける
- 値が合致するcaseがない場合のデフォルトの処理にはdefault...
- breakキーワードを使って、switch文を抜けるように命令する
*3日目 [#y60e8ff5]
** 繰り返し構文 [#b896516b]
*** for文を使った繰り返し [#b148a08a]
- for文では条件式がtrueを戻す限り、繰り返し処理を実行し続...
- 初期化式、条件式、遷移式は省略可能だが、セミコロン「;」...
- 二重ループは、内側のfor文をその意味で置き換えるとわかり...
*** while文を使った繰り返し [#dacf9af5]
- while文では条件式がtrueを戻す限り、繰り返し処理を実行し...
- while文は、繰り返しの回数が決まっていない場合に使うと便...
*** do-while文を使った繰り返し [#lf4a37e2]
- do-while文は、繰り返しの回数が決まっていない場合に使う...
- do-while文はでは条件式が最後にあるため、必ず1回はdoブロ...
*** 繰り返しの制御 [#e39935ea]
- breakは、for文やwhile文の繰り返し処理を中断し、処理がル...
- continueは、繰り返し処理の最中に処理をスキップするよう...
*4日目 [#ieba013d]
** 配列 [#e8ccdf1c]
*** 配列と配列型変数 [#ced07adc]
- 配列は「要素」と呼ばれる値の集合である
- 配列型変数はプリミティブ型とは違い、複数の値を一度に扱...
- 配列は同じ型の集合だけを扱うことができる
- 要素の値には添字を使ってアクセスする
*** 配列を作る [#a3c660aa]
- 配列を作成するには、「new 制約[要素数]」と記述する
- 配列を作るときに指定する要素数は後から変えられない
- 配列と配列型変数は別のものである。要素を持っているのは...
*** 配列の要素にアクセスする [#veaad5c4]
- 配列の要素は添字という番号で管理される
- 添字は0番から始まる
*** 要素数を数える [#b09c1c68]
- 添字を使って要素数を数えたり、要素にアクセスしたりする
- lengthを使って配列が持っている要素数を数えることができる
- for文の条件式でlengthを使い、要素の数だけ繰り返し処理を...
*** 初期化子を使って初期化を簡略化する [#xb877251]
- 初期化子「{}」は、必ず変数宣言と同時に使う
- 初期化子を使うと、配列を作るコードを簡潔に記述できる
*** 拡張for文 [#kb234d43]
- 拡張for文は、集合から1つずつ値を取り出し、すべての値を...
- 拡張for文は、1つおきに値を取り出すような細かな制御には...
** メソッド [#z632b37b]
*** 処理をまとめる「メソッド」 [#s3757ae9]
- 長いコードを分割することで、わかりやすく、再利用しやす...
- メソッドとは、一連の処理の流れをまとめたものである
*** メソッドを定義する [#v3d95658]
- 新しいメソッドを定義するときは、メソッドブロックをクラ...
- 「public static void main(String[] args)」というメソッ...
*** プログラムの実行順とmainメソッド [#mb472ddf]
- mainメソッドのことを、プログラムの開始場所という意味で...
- プログラムにはメソッドをいくつでも定義できるが、最初に...
*** メソッドを呼び出す [#yf90b449]
- メソッドを呼び出すには「メソッド名();」と記述する
- 呼び出しさきのメソッドで、さらに別のメソッドを呼び出す...
*** メソッド呼び出し順の制御とメモリ構造 [#j2fa4bf3]
- JVMは、スタック領域というメモリ領域を使ってデータやメソ...
- 1つのメソッド内に同じ名前の変数を複数宣言するとコンパ...
- プログラムはmainメソッドから始まり、やるべき処理がなく...
*** 引数を使ったデータの受け渡し [#pd9b0070]
- メソッドの呼び出すときに呼び出し元のメソッドからコピー...
- メソッドの定義と呼び出し元で、引数の数やデータ型を一致...
- 複数の引数を宣言するときは、カンマ「,」で区切る
*** 戻り値を使ったデータの受け渡し [#rf51e925]
- メソッドで処理した結果を戻したい場合にはreturnを使う
- メソッドが呼び出し元に戻す値のことを「戻り値」という
- voidは、戻り値を戻さないメソッドであることを表す
- メソッドの定義と呼び出す側で、戻り値の数と型を一致させ...
*5日目 [#mcea0c21]
** オブジェクト指向 [#aeca42f6]
*** オブジェクト指向とは [#yd25ffa2]
- オブジェクト指向は、ソフトウェア設計手法の1つである
- 構造化設計は開発コストの削減を目的とし、オブジェクト指...
- 構造化設計は「どのような処理をすべきか」から設計を開始...
- データの扱い方のルールをコードで表現したものを「ビジネ...
*** オブジェクト指向設計の基礎となる設計原則 [#w2d37b00]
- オブジェクト指向設計は、変更に強い設計を目的としている
- 「カプセル化」「データ隠蔽」「抽象化」「情報隠蔽」の4...
- カプセル化とは、関係するデータとそのデータを使う処理を...
- データ隠蔽とは、内部のデータに対して外部の処理からアク...
- オブジェクト指向では抽象化をポリモーフィズムという技術...
- 情報隠蔽とは、オブジェクトに対してアクセス制御をかけて...
*** オブジェクト指向プログラミング [#p319c0c0]
- オブジェクト指向プログラミングでは、実際に動作するもの...
- クラス内にはインスタンスが持つべきデータの種類(フィー...
- オブジェクト指向プログラミングでは、使う側と使われる側...
- インスタンスの生成はnewキーワードを使って行う
- アクセサメソッドを使うことでデータ隠蔽できるようになる
- ローカル変数とフィールドの変数名が重複した場合はローカ...
*6日目 [#j880d406]
** モデリングとUML [#le6442eb]
*** ソフトウェア開発とモデリング [#fded35ea]
- 共同開発におけるコミュニケーションは、できるだけ短時間...
- 情報量の多さは正確さは、伝わりやすさや理解しやすさとは...
- 情報が伝わりやすくなるように図を使って簡略化することを...
*** UMLとは? [#o20e4717]
- 現代のソフトウェア開発では、UMLがモデリングと表記法のデ...
- UMLでは13種類の図が定義され、ソフトウェアのモジュール構...
*** クラス図 [#h58743cb]
- クラス図は、クラスの関係性を表現する
- 1つのクラスは、名前、属性、操作の3つの区画で区切って表...
- クラス間の関係は「関連」という実線で表現する
- 多重度は、クラスが関係するものがいくつあるかを表現する
- 関連端名は、役割の名前を表現する
*** オブジェクト図 [#j00a1f6d]
- オブジェクト図は、インスタンス同士の関係性を表現する
- オブジェクト図の名前には下線を引き、クラスではなくオブ...
- クラス図とオブジェクト図を併用することでクラスの関連が...
*** シーケンス図 [#qedea86d]
- シーケンス図は、インスタンス同士の動的な関係性を表現する
- シーケンス図では、どのインスタンスがどのインスタンスの...
*** UMLとJavaのマッピング [#m0412020]
- クラスの詳細な仕様はUMLではなく、別の仕様書に記載する
- 誘導可能性を使って、どちらのクラスがどちらのクラスを使...
- 依存線で結ばれた2つのクラス間は、一時的な関係しかないこ...
*7日目 [#x95de16a]
** インスタンスの扱い方 [#z856e030]
*** 参照型変数 [#wa08a0c1]
- インスタンス生成時、インスタンスはヒープ領域に作られる
- 変数にはインスタンスそのものではなく、インスタンスへの...
- 参照が入る変数のことを、「参照型変数」や「オブジェクト...
- newというキーワードを使って、インスタンスを生成する
*** コンストラクタメソッド [#bf495277]
- コンストラクタとはインスタンスの準備をするためのメソッ...
- コンストラクタの定義には、「クラス名と同じ名前にする」...
- プログラマーがコンストラクタを定義しなかった場合に、コ...
*** ガベージコレクション [#n2e96b24]
- Javaには、不要になったインスタンスをメモリから自動で破...
- ガベージコレクションが実行されるタイミングは、ガベージ...
*** メソッドのオーバーロード [#ue7acad4]
- メソッド名と引数のセットのことを「シグニチャ」と呼ぶ
- シグニチャが異なれば、異なるメソッドとしてコンパイラやJ...
- コンストラクタもオーバーロードすることが可能である
*** クラス変数とクラスメソッド [#hdea2e0d]
- Javaにはヒープ領域の一部にクラスファイルを保管しておき...
- クラスファイルを保管しておく領域を「パーマネント領域」...
- static修飾子の付いたメソッドやフィールドはstatic領域に...
- staticなメソッドやフィールドはインスタンスが生成されて...
- インスタンスメソッドやインスタンス変数は、インスタンス...
*8日目 [#icdc468e]
** オブジェクト型配列 [#h3100d4f]
*** プリミティブ型配列とオブジェクト型配列 [#k37f9582]
- 配列型変数には、配列インスタンスへの参照が入る
- プリミティブ型の要素を扱う配列を「プリミティブ型配列」...
*** 複数インスタンスの管理 [#d7eee39f]
- オブジェクト型配列を使うと、複数のインスタンスを1つの変...
- オブジェクト指向では、クラスに割り当てられる役割のこと...
- クラスの責務を明確に分け、その責務と関係する処理だけを...
** パッケージによるクラスの分類 [#w49964c5]
*** パッケージとは? [#ya957605]
- Javaでは、クラスを分類するために「パッケージ」という概...
- 完全修飾クラス名を省略して、クラス名だけで記述できるよ...
- java.langパッケージに関するクラスのインポート宣言は省略...
- クラスがどのパッケージに属しているかをパッケージ宣言で...
- 完全修飾クラス名に一致したディレクトリ構造にする
*** クラスファイルを探す [#e7a7230f]
- コンパイラやJVMがクラスファイルを探すために示す場所を「...
- クラスパスを指定するには、コンパイル時にはjavacコマンド...
*** アクセス制御とアクセス修飾子 [#cc1c641f]
- Javaでは、アクセス制御のためにpublic、protected、なし(...
- public以外のアクセス修飾子はすべて限定公開である
- アクセス修飾子の付かないデフォルトは、同じパッケージの...
*9日目 [#kf0c91cc]
** クラス継承 [#ncf501f7]
*** 差分プログラミングとクラスの継承 [#gc720008]
- 差分プログラミングとは、コードの重複を避けることで開発...
- 継承とは、あるクラスの特徴を引き継いだ新しいクラスを定...
- サブクラスを定義するには、extendsキーワードを使う
- サブクラスはスーパークラスのprivateなフィールドやメソッ...
*** メソッドのオーバーライド [#z797b055]
- オーバーライドとは、スーパークラスのメソッドを再定義す...
- superは、スーパークラスのインスタンスを指すキーワードで...
- オーバーロードとは、メソッドの多重定義のことである
- メソッドの定義にOverrideアノテーションを付けることで、...
- protectedは、同じパッケージ内のクラスや、ほかのパッケー...
*** 継承とコンストラクタメソッド [#heef0fd8]
- スーパークラスのコンストラクタを呼びだすには「super()」...
- 「super()」は、プログラマーが記述しなければコンパイラに...
- 継承関係にあるクラスがあったとき、先に実行されるのは必...
*** 継承のデメリットを考える [#o939ed9a]
- 「変更に強い設計」にするためには、変更の影響範囲がすぐ...
- オブジェクト指向の「継承」は、「ポリモーフィズム」とい...
- 差分プログラミングを使うメリットとデメリットを考慮して...
* 10日目 [#q1ac0ebc]
** 例外処理 [#a504b30c]
*** 例外とは? [#u70f6af8]
- Javaでは、プログラムでは対処できないようなトラブルを「...
- 例外に対応するjava.lang.Exceptionクラス、エラーに対応す...
*** 例外処理 [#g0c02d2d]
- 例外処理は、検査例外と非検査例外に分けられる
- 例外処理の記述にはtry-catch文を使う
- 例外が発生してもしなくても必ず処理を実行する場合は、try...
*** 例外のスローとスロー宣言 [#s2fd1242]
- 例外のスローを行うには、throwキーワードを使う
- 例外をスローする可能性を宣言するにはthrowキーワードを使う
- 標準クラスライブラリにはない独自の例外クラスを定義できる
* 11日目 [#j9435ded]
** ポリモーフィズム [#z44cec4b]
*** 抽象化とポリモーフィズム [#v7df4c64]
- ポリモーフィズムとは、1つのものが複数の形態を持ってい...
- ポリモーフィズムの目的は、変更に強い設計を実現すること...
- インスタンスへの参照を継承関係にあるクラスの型で扱って...
*** アップキャストとダウンキャスト [#x642e536]
- アップキャストはサブクラス型をスーパークラス型として扱...
- プログラマーが型の互換性を保証するためにキャスト式を記...
*** Javaにおける「同じ」とは? [#n6d7b4b5]
- instanceof演算子を使って型の互換性を確認することができる
- 同じインスタンスへの参照を持っていることを「同一である...
- 同じ値を持っていることを「同値」といい、equalsメソッド...
* 12日目 [#z0663868]
** 抽象化プログラミング [#edbfcba7]
*** インタフェース [#q525e8d5]
- インタフェースは型を規定するものであり実装を持たない
- インタフェースには、実装を持たない抽象メソッドを定義する
- インタフェースを実現するクラスは、インタフェースに定義...
- インタフェースはインスタンス化できない
- インタフェースの継承やクラスの多重実現により、複数のイ...
*** 抽象クラス [#z7cc66ff]
- 抽象クラスには、抽象メソッドと具象メソッドが定義できる
- 抽象クラスはインスタンス化できない
- 抽象クラスがインタフェースを実現したときは、抽象クラス...
*** 抽象化プログラミング [#j2f80466]
- インタフェースや抽象クラスなどの抽象的なものを中心に捉...
- ポリモーフィズムを使って、使う側と使われる側が直接つな...
* 13日目 [#we5ce3bd]
** コレクション [#s358b501]
*** コレクションとは? [#q1a3f74e]
- コレクションとはインスタンスの集合である
- データの扱い方に応じて、リスト、セット、マップといった...
- Javaでは、java.lang.utilパッケージにList、set、Mapなど...
*** Listインタフェースと実現クラス [#sa5eb185]
- リストとは要素を順序付けて管理するコレクションで、配列...
- java.util.Listインタフェースはリストの機能を定めており...
- ListインタフェースのaddメソッドとgetメソッドはObject型...
*** ジェネリクスとは? [#j8b3ce7c]
- ジェネリクスはインスタンス生成時に型を指定できる機能で...
- ジェネリクスは、互換性のない型の要素がコレクションに混...
- 型パラメータは型情報を受け取るための引数で、インスタン...
- 変数で指定する型パラメータと、コンストラクタに指定する...
*** ジェネリクスの使い方 [#l1a0239e]
- ジェネリクスを使うことによって、ダウンキャストによる型...
*** Setインタフェースと実現クラス [#wafd8053]
- セットは、要素の重複がないコレクションである
- java.util.Setインタフェースはセットを扱うインタフェース...
- java.util.iteratorインタフェースは、要素を取り出すため...
- コレクションからイテレータを取り出すには、java.lang.ite...
*** Mapインタフェースと実現クラス [#z1a2f4cf]
- マップは名前と値を持つコレクションで、名前でインスタン...
- java.util.Mapインタフェースはマップを扱うインタフェース...
*** ラッパークラスとオートボクシング [#na2af5bf]
- オートボクシングは、プリミティブ型と参照型の自動変換を...
- Javaの標準ライブラリには、プリミティブ型に対応する「ラ...
- 参照型をプリミティブ型に自動変換する機能を「オートアン...
*関連 [#m8a4a6cf]
#ls2
ページ名: