紫本覚える Flashcards
シグネチャ
メソッド名 と 引数の型・数・並び順 の組み合わせ
public void disp(int[] x) {
// 処理内容
}
このメソッドのシグネチャは:
・メソッド名: disp
・引数リスト: int[](引数が1つで、型は int[])
→ シグネチャ: disp(int[])
var
型推論を行うための予約語。
右辺の値によって型の推論が可能な場合のみ使用できるため、必ず初期値を設定する。
nullを代入した場合はコンパイルエラー
StringBuilderクラスのメソッド4つ
戻り値がStringBuilder型。
・StringBuilder append ( String str ):指定された文字列を追加する。
・StringBuilder delete ( int start, int end ):startからend - 1の文字列を削除する。
・StringBuilder insert ( int dstOffset, CharSequence s ):dstOffsetの位置に、文字列を挿入する。
・StringBuilder replace ( int start, int end, String str ):startからend - 1の文字列をstrに置き換える。
ラッパークラス名.parseXxx( 文字列 )とは
文字列から基本データ型への変換
※Xxxは対応する基本データ型の名前です。
=
代入演算子(右辺の値を左辺に入れる)
intern()
文字列インターンプール(同じ内容のStringオブジェクトを共有する仕組み)を使用して同じ内容のStringを共有する。
Stringのequals()
文字列の比較
StringBuilderのequals()
2つの参照が同じオブジェクトを指しているかを==演算子を使って比較
(同じメモリのアドレス(参照)を指しているかを比較)
for (int i : array) の i は何を受け取りますか。
array配列の各要素 を順番に受け取る。
継承関係におけるコンストラクタの呼び出しについて
明示的なコンストラクタの呼び出しは、コンストラクタの先頭で1回だけ行うことができる
レコード宣言の注意点
・recordはextendsを使って親クラスを指定できない。
recordは、暗黙的にjava.lang.Recordを継承しているので、extends Recordを明示的に書くと2重に継承したことになる。
・recordはデフォルトでfinal(修飾子)なので、finalを明示的に書いても問題にならない。
void
・戻り値なしを示す型(メソッドが何も値を返さない場合は戻り値の型としてvoidを指定する)
・基本データ型(プリミティブ型)、参照型(オブジェクト型)にも属さない特殊な存在。
抽象メソッドのオーバーライドについて
・インターフェースのメソッドはデフォルトでpublic
・抽象クラスを継承した通常クラスは未実装のabstractメソッドをすべて実装しなければならない。
抽象クラスを継承(inplement)した抽象クラスは、未実装のabstractメソッドを実装しなくてもおk
abstract classとは
抽象クラス。インスタンス化できないクラス。1つ以上の抽象メソッドを持つ。
abstrct methodとは
抽象メソッド。メソッドのシグネチャ(名前、引数、戻り値)だけが定義され、メソッドの実装はそのクラスを継承したサブクラスで行う。
抽象メソッドを含むサブクラスは必ずabstrctとして宣言しなければならない。
defaultメソッドが衝突する場合
実装クラスまたは継承したインタフェースでオーバーライドを行います。
複数のインタフェースの継承について
戻り値の型に互換性がない場合は、オーバーライドはできない。
sealed クラスの基本ルール
継承を制限できる。permits で 継承を許可するクラス を明示する必要がある。
sealed クラスを継承できるクラスの種類
final これ以上継承を許可しない
non-sealed 継承を許可する
sealed 継承を制限する
permits ので継承を制限できる範囲
permits で指定できるのは直接のサブクラスのみ。
子クラスへの継承許可を制限する。親 → 子
extendsの説明
extends = 継承宣言
親クラスを指定して継承する
子 → 親
permits の説明
permits = 継承許可
子クラスへの継承許可を制限する
親 → 子
instanceof 演算子とは
オブジェクトが指定された型にキャスト可能かどうかをチェックするために使う演算子
if (myAnimal instanceof Dog) {
System.out.println(“It is a Dog.”);
instanceof 演算子のパターンマッチングとは
instanceof演算子の後に変数を直接指定することで、型キャストを簡略化できること。この構文を使うと、型チェックとキャストを一度に行うことができます。
if (animal instanceof Dog dog) {
dog.bark(); // Dog型にキャストされたdogを使用