Java silver 1ヶ月取得する為の勉強 8日目

Java silver 1ヶ月取得する為の勉強 8日目

・2.0時間勉強

徹底攻略Java SE 8 Silver問題集 第8章 例外の処理

勉強内容

例外処理とは、例外が発生すると、すぐに対応するcatchブロックに移動する。

 

Finallyブロックに記述された処理は、例外発生の有無にかかわらず必ず実行されます。実行の順番は以下のいずれになる。

・try → finally  例外が発生しない場合

・try → catch → finally 例外が発生した場合

 

複数のcatchがある場合、

どちらの例外が先に到達するかを確認する。

到達可能なコードがなければ、コンパイルエラーになる

 

Try-catch-finallyの構文は確実に覚える。順番を変更してはならない。(コンパイルエラーになる)

 

複数のTry-catchがネストしている場合、スローられた例外が受け取るのは、その例外に対応したもっとも近いcatchブロックに入る。

 

ArryIndexOutOfBoundsException
→要素外にアクセスした場合の例外


IndexOutOfBoundsException
→存在しない要素を取り出そうとした時の例外


ClassCastException
→継承関係や実現関係にないクラスをキャストしようとする場合


lllegalArgumentException
→利用される側のオブジェクトが不正な引数を渡されたことを、利用する側のオブジェクトに通知するための例外

staticイニシャライザ
→クラスを呼び出すときに一度だけ呼び出される初期化ブロック
※ここでエラーが発生すると、ExceptionlnlnitalizeError

ヒープメモリがいっぱいになった時のエラー

→OutOfMemoryError


合計勉強時間:12.5時間

Java silver 1ヶ月取得する為の勉強 7日目

Java silver 1ヶ月取得する為の勉強 7日目

・2.0時間勉強

徹底攻略Java SE 8 Silver問題集 第7章 継承の操作

勉強内容

・拡張の元になるクラスのことを基底クラスやスーパークラス
・拡張したクラスのことを派生クラスやサブクラスという


継承は、生産性を向上させる強力なプログラミング
「差分プログラミングとも呼ぶ」

 

継承で引き継げない部分
・コンストラク
・privateなフィールドやメソッド


インターフェースのルール
Finalを使って、動的に値が変更されないこと(定数)
Staticを使って、インスタンスを生成しなくても使えること


抽象クラスはインスタンス化はできない。
抽象メソッドは、具象クラスが実装しなけらばならない


オーバーロード(多重定義)は、メソッドが同じで引数が異なる「新しいメソッド」を定義すること。

オーバーライドは、サブクラスでスーパークラスに定義されたメソッドを再定義すること

 

オーバーライドの3つのルール
シグネチャが同じであること
・戻り値方は同じか、サブクラスであること
・アクセス修飾子は同じか、より緩いものを指定すること


フィールドを参照した場合は、変数で宣言された方を使う
メソッドを呼び出した場合は、メソッド内の指示に従う


ポリモーフィズムは、実際に動作しているインスタンスを、インスタンスの元になった型とは、異なる型で扱える仕組み。
ポリモーフィズムが成り立つのは、現実か継承関係しか成り立ちません。

 

インスタンスも型変換ができる


キャスト式を記述して明示的に型変換すると、コンパイルは成功する。
ただし、型同士の相互性がない場合は、実行時に例外がスローされる


Thisはインスタンス自身への参照を持っている


継承関係にあるクラスのインスタンスの生成をするときの動作

スーパークラスインスタンスが持つコンストラクタが先に実行されなけらばならない
・サブクラスのコンストラクタには、スーパークラスのコンストラクタを呼び出す「super();」が、コンパイラによって先頭行に追加される。


合計勉強時間:10.5時間

Java silver 1ヶ月取得する為の勉強 6日目

Java silver 1ヶ月取得する為の勉強 6日目

・1.5時間勉強

徹底攻略Java SE 8 Silver問題集 第6章 メソッドとカプセル化の操作

勉強内容

・メソッドの呼び出しについて

何らかの戻り値を返すメソッドを呼び出しても、その戻り値を受け取る必要はない。ただし、内容は破棄されます。

 

・到達不可能なコード(リターン後)この文章はコンパイルエラーになる


・Static領域があるが、インスタンス生成後は、書き込みがある場合、その領域に書き換えが行われる。

 

オーバーロード

引数の数、型、順番が異なる同数のメソッドを定義すること。

オーバーロードはメソッドのシグネチャの違いが必須条件

 

コンストラク

・メソッド名をクラス名と同じにすること

・戻り値型は記述しない

・newと一緒でしか使えない

※ 初期ブロックがある場合、そこはコンストラクタより先に処理がされる。

 

 

コンストラクタ内から、オーバーロードされた他のコンストラクタを読み出す場合は、thisを使う。

 

 

・アクセス修飾子

Public        すべてのクラスからアクセスが可能

Protected   同じパッケージに属するか、継承しているサブクラスからのみ可能

なし 同じパッケージに属するクラスからのみアクセス可能

private クラス内からのみアクセス可能

 

カプセル化

フィールドを非公開(private)メソッドを公開(public)にすることで完成流


合計勉強時間:8.5時間

Java silver 1ヶ月取得する為の勉強 5日目

Java silver 1ヶ月取得する為の勉強 5日目

・1.5時間勉強

徹底攻略Java SE 8 Silver問題集 第5章 ループ構造の使用

勉強内容

Javaの繰り返し文の種類

・while文

・do-while文

・for文

・拡張for文

 

do-while文

Do{

//繰り返し処理

}while(条件式);

 

・while文

・do-while文は中括弧を無くしたら、1行だけ処理される

・do-while文doとwhlieの一文のみでないとコンパイルエラーとなる

 

初期化する文は、同じ型でないといけないルール

 

変数のスコープについて

Javaは変数を宣言したブロック内(中括弧の範囲)でのみ有効。


for文は、初期化文、条件式、更新文

複数記述できるのは初期化文と更新文

複数条件を追加したい場合は、論理演算子を使う。


条件式は省略可能


拡張for文

for(型 変数名:集合){

//繰り返し処理


「一次変数の宣言:コレクション/配列」


変数に関しては、ブロック内で対応する、

 

ラベルを使うと、breakやcontinueのときに自由に飛ばせる

 

ラベルを利用する場合

・コードブロック

・全てのループ文と分岐(if、switch)

・式

・代入

・return文

・tryブロック

・throw文


合計勉強時間:7.0時間

Java silver 1ヶ月取得する為の勉強 4日目

Java silver 1ヶ月取得する為の勉強 4日目

・1.5時間勉強

徹底攻略Java SE 8 Silver問題集 第4章 配列の作成と使用

勉強内容

 

 

配列

複数の値の集合を一つにまとめたインスタンスです。

 

配列の扱う値のことを「要素」という

 

配列インスタンスの生成

New int[3]; int型の3つの配列を作成

 

配列型変数の宣言

int array

※int arrayという書き方もできる

 

配列型変数arrayを代入

配列型変数arrayを参照するとハッシュコードが返却される

 

一緒に書くこと

int array = new int[3];

int[0] 要素を1つも扱わないが、できる

 

多次元配列

int array

Int array

 

int array

int[ array

 

配列変数には、配列インスタンスへの参照を入れるだけで、参照先の配列がいくつの要素を扱えるかは関係ない。

配列変数に、要素数は入らない

 

宣言の時は、次元を合わせないといけない

1次元目要素数は宣言しないといけない

配列からアクセスをしようとするとき、変数の参照先がない場合、

NullPointerExceptionとなり、実行時に例外がフローされる

添字を用いた配列インスタンスの生成はNG

int array = new int{2,3}   OK

int array = new int[2]{2,3} NG

 

2次元配列の設定は、合わせないといけない

int array = new int{}   NG

int array = new int[]{}  OK

 

Nullがある配列を(.length)等を行うとエラーになる


arraycopyメソッド(コピーする場合に利用する)

第2引数、第4引数は、「どこからコピーするかと終わり」

第5引数は、「コピーする数」を指定する


合計勉強時間:5.5時間

Java silver 1ヶ月取得する為の勉強 3日目

Java silver 1ヶ月取得する為の勉強 3日目

・1.5時間勉強

徹底攻略Java SE 8 Silver問題集 第3章 演算子と判別構造の使用

勉強内容

代入演算子のバリエーションについて
a += 10;
a = a+10


範囲が狭いデータ型について
Byte:8ビット整数 -128~127
Short:16ビット整数 -32768~32768


ショートサーキット演算子(&&,||)
左オペライドの結果によって、右オペライドを評価しない
※& or | にすれば両方評価する


同一性(==)
同じインスタンスを参照すること

 

同値性(equals)
インスタンスは異なるけど、同じ値を持っている性質のこと

Equalsメソッドは、同値を確認する為のメソッド。
オーバーライドを前提に使うメソッド。

x.equals(x) = true → Nullを渡した場合は、エラー


instanceof
• オブジェクトが、あるクラスのインスタンス
• オブジェクトが、あるクラスの子クラスのインスタンス
• オブジェクトが、特定のインターフェースを実装したインスタンス


If文
中括弧「{}」内には、条件を合致した内容を表示するが、省略が可能になる。
If文の条件分岐は、上から処理をされるので、途中で抜けたらやれない。


Switch文は戻せる方が決まっている
・Int以下の整数型とそのラッパークラス
・文字と文字列
・列挙型

→ Char byte short int Character Byte Short Integer String enum
※Switch文はBlakeが必要。それがないと、そのまま進む。

 

ラッパークラス

→参照型のようにインスタンス化ができて、便利なメソッドを使えるようにしたクラスのこと

 

列挙型

Enum(列挙型)とは、複数の定数をひとつにまとめておくことができる型のことです。Enumで定義する定数のことを列挙子と呼びます。

 
case値
・条件式が戻す値と同じ型か互換性がある型であること
・定数であるか、コンパイル時に値が決まっていること
・Nullでないこと



3項演算子

条件に合致するかどうかで、戻す値を変更する演算子
真偽式 ? trueの場合に評価する式:falseの場合に評価する式

 

ネスト構造

3項演算子をネスと構造にできる、blakeは無し。


合計勉強時間:4.0時間

Java silver 1ヶ月取得する為の勉強 2日目

Java silver 1ヶ月取得する為の勉強 2日目

・1.0時間勉強

徹底攻略Java SE 8 Silver問題集 第2章 Javaのデータ型の操作

勉強内容


Javaの型には、大きく分けて、
プリミティブ型と参照型の2つある

プリミティブ型
データそのものを保存する

参照型
オブジェクトの参照先を保存する


リテラルとは、ソースコード内に記述する値のこと
Javaには、整数、浮動小数点、真偽、文字


long型は接尾語に「L l」
float型は接尾語に「f F」がある。


10進数
8進数 07 (0が接頭)
16進数(0x)
2進数 (0b)


アンダースコア(_) 見やすさを向上させる役割

ルールは、
リテラルの先頭と末尾には記述できない
・記号の前後には記述できない

 

char型
・シングルクォーテーションで括った文字(文字リテラル
・シングルクォーテーションでっ括った「¥u」から始まるUnicorde番号(リテラル
・0~65535までの数値(数値リテラル


識別子の命名規則
予約語を使えない
・使える記号は、アンダースコア「_」と通過記号「$」のみ
・数字からはじめてはいけない


メソッドの呼び出し方
同じメソッドの場合は、メソッド名
メソッド名の場合は、変数.メソッド名
Staticなメソッドの場合、クラス名.メソッド名(引数)


シグネチャ→メソッド名と引数のセットのこと


ガベージコレクション

ガベージコレクタ(JVMの機能)が不要なインスタンスを探して、破棄すること
オブジェクトにnullを代入すること
新しいnullを上書きすること


合計勉強時間:2.5時間