OCJP間違えやすいポイント


文字列と数値の計算式

数値+文字列はすべても文字列結合になる。

System.out.println("str" + 1 + 2);


・boolean型の変数の初期化には一部計算式を代入できる

boolean型の変数の初期化はtrue,falseであるが戻り値がbooleanになる

論理式であれば代入可能

boolean a = (1 < 4); //trueで初期化される。


・「値渡し」と「参照渡し」

基本データ型をメソッドに引数を渡した場合、その値のコピーをメソッドに渡します

これを値渡しという。

参照型の場合、メソッドに渡す時はその値の「参照」を渡します

これを参照渡しという。

基本データ型=値のコピー 参照型=参照情報


・2次元配列のアクセスの仕方

二次元配列にアクセスする時は配列名[index][index]とする。


・arraylistクラスのindexOfメソッド

引数で渡した値が最初に見つかった場所の添え字番号を返すメソッド


・配列のarraycopyメソッド

(コピー元配列,添え字,コピー先配列,添え字,数コピーさせる配列の要素の数)


・Stringbuilderクラスの初期化

通常は文字列をいれるとその値で初期化しますが

数値を渡してあげるとその値を容量とした初期化がされます


for文の省略

for文の省略できるものは処理を示す{ }を省略可

※繰り返し対象は一行のみ

式1、式2、式3である。

※省略はできるが、可読性も下がるうえ無限ループになるので基本はしない。


do,while文で{}をつけないとエラーになる。

do,while文で{}をつけないとエラーになります。

また{}は省略して一行のみループさせることもできますが

do句の後に二行書いてしまうとコンパイルエラーになります。


参照型変数の代入について

参照先を保持っした変数を他の変数に代入した場合

代入先は代入元と同じオブジェクトを参照します。

lassA obj = new classA();

classB obj2 = new classB();

obj = obj2

とした場合。objはobj2と同じオブジェクトを参照するということになる

オブジェクトを参照してる変数を他に代入すると

代入先も同じオブジェクトを指すということになる。


オーバーロードの条件

引数の型、数、並びが違うことがオーバーロードの条件です。

戻り値は関係ありません。


オーバーライドは

・修飾子が元より広いか同等

・メソッド名と引数リストが同じ


・カプセル化のメリット

カプセル化は不変オブジェクトを設計できるのと

オブジェクトが保持するデータを保護できる


宣言されていないメソッドを参照するとコンパイルエラー


変数のスコープの注意点

変数のスコープは宣言順も影響するので注意

→int a = b; //b変数の宣言より代入が先のためエラー

   int b;


finalのクラスのサブクラス生成不可

ラッパークラスおよび、Systemクラスはfinalなクラスなので

サブクラスを生成できない。


抽象メソッドのオーバーライド義務

サブクラスとないっている抽象クラスは

抽象メソッドをオーバーライドしなくてもよい。


instanceof演算子

「◯◯クラスのインスタンスか?」

「◯◯クラスのサブクラスのインスタンスか?」

「◯◯インターフェース実装したクラスのインスタンスか?」

「◯◯インターフェース実装したサブクラスのインスタンスか?」


コンストラクタのprivate

スーパークラスのコンストラクタをpribate指定してしまうと

サブクラスがインスタンス化されたときに飛び出せなくなるので

エラーになります。





wataru's room

プログラミングや情報処理の系のアウトプットや普段生活して考えることを書くことで頭に定着させるためサイト

0コメント

  • 1000 / 1000