クラスの継承
クラスの継承 継承の元になるクラスを作る(スーパークラスの作成) 継承クラスを作る サブクラス名の直後に extends (スーパークラス) を宣言する コンストラクタにsuper()を記述し、継承するフィールドを引数に取る superはコンストラクタの1行目に必ず記述しなければならない 継承の効果を確認する
Blog written about Japanese hobby products by a Japanese
クラスの継承 継承の元になるクラスを作る(スーパークラスの作成) 継承クラスを作る サブクラス名の直後に extends (スーパークラス) を宣言する コンストラクタにsuper()を記述し、継承するフィールドを引数に取る superはコンストラクタの1行目に必ず記述しなければならない 継承の効果を確認する
final修飾子は、変数のように何度も値を設定することができず、一度値を設定したら変更できないようにするために使用する フィールド変数には必ず初期値を代入しておかなければならない。必ず適切なコンストラクタが必要になる。
Public static void で subメソッドを生成する。引数にtest型の変数p2を加え、処理にセッターメソッドを記述しintの値を変更、そして出力処理を施す。 その後メインメソッドでsub();を記述し引数をp1にすると間接的な代入になる。 subメソッドに渡されるのはp1の参照コピーだ。これはインスタンスではない
同じ名前のメソッドを作ることを、オーバーロードという。 オーバーロードは引数構成を変えることだけが目的。異なる引数構成とは、引数の数が違う、型が違う、引数の並び順が違うなど コンストラクタのオーバーロード 引数の数を減らして、初期値を変更している。 コンストラクタのオーバーロード2 testクラスの初期値をデータファイルから読み込んで初期化する。 自動生成できないので手書きにする。 引数のないコンストラクタ インスタンスは作っておくがフィールド変数の値はあとで決める場合に使う。
voidは戻り値がないメソッドで指定する型。voidが宣言されたメソッドはメソッド内で必要な処理を行い、戻り値を変えさない なお、returnをメソッド内に記述するとエラーになる。 ちなみにセッターメソッドはvoid型を使っている。
全てスタティックメンバで構成されており、クラス内のnumberは共有変数で全てのメソッドがアクセスできる。 プログラム実行直前に全てのスタティックメンバをメモリにコピーする。そうするとそのまま実行することができる。 スタティックメンバ インスタンスメンバ メンバの名称 スタティック変数、スタティックメソッド インスタンス変数、インスタンスメソッド 特徴 staticがついている staticがつかない メモリへのコピー JVMが自動的に行う プログラマがnew演算子でコピーする コピーのタイミング プログラム実行前 プログラム実行中 コピーの回数 一回のみ 何回でも可能 メソッドの実行 いつでも実行できる インスタンスを作成しないと実行できない インスタンスメンバとスタティックメンバが同居
修飾子は例えばインスタンスを設定するときに変数型の前につけるprivateやpublic 次の表はアクセス修飾子と、それがどのクラス要素に適用できるかを示している。 アクセス修飾子 class フィールド変数 メソッド コンストラクタ private ✖️ ○ ○ ○ パッケージアクセス ○ ○ ○ ○ public ○ ○ ○ ○ ほとんどの要素にどのアクセス制限でも適用できるけど、class宣言にだけprivateが使えない パッケージアクセス パッケージアクセスとはprivate,publicどちらのアクセス修飾子も付けなかった場合のアクセス制限 つまり、デフォルトのアクセス制限は同じパッケージに属するクラスの中だけで使えるようにするというアクセス制限
クラスの中のメソッドは必要に応じて追加することができる。 Totalpriceと名付けたメソッドで引数に整数型のquantityを設定。インスタンス型のpriceと引数かけた値を戻す。 このメソッドをメインメソッドで実行する場合は、オブジェクトが格納されている変数、参照演算子、メソッドをつなぎ合わせる。
メンバ参照演算子 インスタンスの特定のメソッドを指し示す場合は、メンバ参照演算子”.”を使ってメソッドを呼び出す どのインスタンスもメンバの名前が一緒のためデータが格納されている変数を指定してメンバ参照演算子とともにメソッドを呼び出す。 ゲッター インスタンスの中のフィールド変数を返すメソッド セッター フィールド変数のアタを変更するメソッド
オブジェクトはnew演算子とコンストラクタを使ってつくる。コンストラクタの作成はオブジェクトを初期化することが目的。 new演算子 new演算子はフィールド変数とメソッドだけをコピーする。 フィールド変数には初期値としてnullや0が格納されている。 コンストラクタはオブジェクトの構成要素ではなくコピーされない。コンストラクタには戻り値が設定されていない。なぜならオブジェクトではないからだ オブジェクトの構成要素はフィールド変数とコンストラクタのみ クラス型を変数に代入する 作成したオブジェクトを変数pに代入する このクラスが型になりオブジェクト型になる。 画像はclass test の test型 型 変数 = new コンストラクタ 型の種類 プリミティブ型 インスタンス型 実行処理はmainメソッドに書く 最初に実行される処理はmainメソッド。実行処理の記述は全てmainメソッドに書く。