基礎構文班20回目 コンストラクタ 継承
DESCRIPTION
xmlpro's Java lecture. Number 20.TRANSCRIPT
XMLPro 20 回目
1
ICPC お疲れ様です!!
1 年生のみなさんは 1 問目解けました?
なお私は出場しなかった模様 ()
2
本日の内容
クラス継承 extendsコンストラクタ
3
クラスとメソッドの復習がてら・・・
• このソースが実行できるような「 Student 」クラスを作成してくださ
い
4
コンストラクタ
5
コンストラクタ• コンストラクタとは「オブジェクトを
作ったとき必ず実行される部分を定義した部分」です
• ようは初期設定ができますよーってことで覚えといてください
6
書いてみて
7
← コンストラクタはこの処理の時点で実行されます
コンストラクタをつくろう修飾子 クラス名 (引数の型 引数名) {処理の内容}で作成できます
8
書いてみて• 赤枠の中がコンストラクタです
メソッドと同じように 引数の数によって
使い分けができます
9
継承
10
継承とは・・・• 元になるクラスを「スーパークラス」 (super class) 、
あるいは「基底クラス」「基本クラス」 (base class) などと呼び、新たに定義されたクラスを「サブクラス」(subclass) 、あるいは「派生クラス」 (derived class) と呼ぶ。
• スーパークラスの性質はすべてサブクラスに受け継がれ、サブクラスではスーパークラスとの違いを定義するだけでよい。複数のスーパークラスから新しいクラスを定義することを多重継承という。
11
• ようは継承すると「継承元のクラス」のメソッドやフィールドが「継承したクラス」で使えるようになります
12
いままでのこんなんだったよね 準備→メソッド呼び出し
13
いままでの
14
Sample_Normal クラス
P p1 = new P(); p1.show();で P クラスの中の show メソッドにアクセス
P クラス-show() メソッド
↓ 中身
show() 呼び出し
実行結果
15
書いてみて
16
継承をやってみよう
エラー吐いてるよね? なぜ?
A_P クラスの中には show() メソッドがないからです
17
いままでの
18
Sample_Extends クラス
A_P p1 = new A_P(); p1.show();で A_P クラスの中の show メソッドにアクセス
P クラス-show() メソッド
A_P クラス この中には show メソッド がない
show() 呼び出し
追加して「クラス名 extend s 継承したいクラス」
で継承を行うことができます
extends P追加でエラー消えたよね?
19
継承を行うと・・・
20
Sample_Extends クラス
A_P p1 = new A_P(); p1.show();で A_P クラスの中の show メソッドにアクセス
P クラス-show() メソッド
A_P extends P A_P クラスは P クラスの機能全てが使えるクラス
中身 in!!
呼び出し
スーパークラス
サブクラス
実行結果• 継承を行ったことによって P クラスの中に
ある show() メソッドが使えます
21
おまけ super. について[ 両方に同じメソッドがある場合 ]今度は A_P クラスの中にも show メソッドを作ってみてください ↓追記分
そして実行してみると・・・
22
実行A_P クラスのメソッドが優先的に実行されるようになってます
23
ここで・・・サブクラスにおいて、スーパークラスのインスタンスメソッドを参照したい場合に
「 super. メソッド名 (); 」
でスーパークラスのメソッドを呼び出すことができます
24
いろいろ追記
25
で実行
26
いままでの復習がてら・・・
27
問題• 生徒 2 人分の ID と名前と 3 教科の得点の
平均点を管理するクラスを作って、表示するプログラム 点数はキーボードから入力
ただし・・・・次の条件に従ってくださいな
28
条件• オブジェクトの配列使ってください
• コンストラクタ使ってください• 出力部分はメソッドを使ってください
29