クラスの継承
クラスの継承 継承の元になるクラスを作る(スーパークラスの作成) 継承クラスを作る サブクラス名の直後に extends (スーパークラス) を宣言する コンストラクタにsuper()を記述し、継承するフィールドを引数に取る superはコンストラクタの1行目に必ず記述しなければならない 継承の効果を確認する
Blog written about Japanese hobby products by a Japanese
クラスの継承 継承の元になるクラスを作る(スーパークラスの作成) 継承クラスを作る サブクラス名の直後に extends (スーパークラス) を宣言する コンストラクタにsuper()を記述し、継承するフィールドを引数に取る superはコンストラクタの1行目に必ず記述しなければならない 継承の効果を確認する
> ちなみに<、>のエスケープシークエンスは”&”の部分に&を加えるだけ
JavaServletの設定 やる事 Servletクラスを立ち上げる、ソースを記述 xmlファイルを作成、ソースを記述 localhostのポートの確認 実行 Servletクラスを立ち上げる、ソースを記述 Servletクラスを立ち上げる ファイル→新規→クラス パッケージ名を決める→クラス名を決める→superクラスにservletを設定する Superクラスにservletを設定する “スーパークラス:”と書いてある横の参照をクリックする。 型を選択してください:→javax.servlet.http.HttpServletを記述する javax.servlet.htmlを選択する クラスの設定完了 クラスにソースを記述する ここに以下のソースを加筆する。 これでクラスの記述は終了 xmlファイルを作成、ソースを記述 WEB-INFにxmlファイルを作成する パッケージに含まれるファイルの中で一番下の”src”の配下を辿っていくとWEB-INFがある WEB-INFを右クリック→新規→ファイルをクリックする ファイル名に web.xml と記述し、該当するパッケージを選択し完了。 WEB-INFの配下にxmlファイルが作成される xmlファイルに記述する 以下の内容をxmlファイルに記述する。 <?xml version=”1.0″ encoding=”ISO-8859-1″?> <!DOCTYPE web-app PUBLIC “-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN” “http://java.sun.com/dtd/web-app_2_3.dtd”> <web-app> <servlet> <servlet-name>任意のサーブレット名</servlet-name> <servlet-class>パッケージ名.クラス名</servlet-class> </servlet> <servlet-mapping> <servlet-name>上記と同じサーブレット名</servlet-name> <url-pattern>URLで使用されるパス名(サーブレット名)</url-pattern> </servlet-mapping> </web-app> localhostのポートの確認 Tomcat9_Java17 で必要なポート 8080…
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と引数かけた値を戻す。 このメソッドをメインメソッドで実行する場合は、オブジェクトが格納されている変数、参照演算子、メソッドをつなぎ合わせる。