29
XMLPro 20 回回 1

基礎構文班20回目 コンストラクタ 継承

Embed Size (px)

DESCRIPTION

xmlpro's Java lecture. Number 20.

Citation preview

Page 1: 基礎構文班20回目 コンストラクタ 継承

XMLPro 20 回目

1

Page 2: 基礎構文班20回目 コンストラクタ 継承

ICPC お疲れ様です!!

1 年生のみなさんは 1 問目解けました?

なお私は出場しなかった模様 ()

2

Page 3: 基礎構文班20回目 コンストラクタ 継承

本日の内容

クラス継承 extendsコンストラクタ

3

Page 4: 基礎構文班20回目 コンストラクタ 継承

クラスとメソッドの復習がてら・・・

• このソースが実行できるような「 Student 」クラスを作成してくださ

4

Page 5: 基礎構文班20回目 コンストラクタ 継承

コンストラクタ

5

Page 6: 基礎構文班20回目 コンストラクタ 継承

コンストラクタ• コンストラクタとは「オブジェクトを

作ったとき必ず実行される部分を定義した部分」です

• ようは初期設定ができますよーってことで覚えといてください

6

Page 7: 基礎構文班20回目 コンストラクタ 継承

書いてみて

7

← コンストラクタはこの処理の時点で実行されます

Page 8: 基礎構文班20回目 コンストラクタ 継承

コンストラクタをつくろう修飾子 クラス名 (引数の型 引数名) {処理の内容}で作成できます

8

Page 9: 基礎構文班20回目 コンストラクタ 継承

書いてみて• 赤枠の中がコンストラクタです

メソッドと同じように 引数の数によって

使い分けができます

9

Page 10: 基礎構文班20回目 コンストラクタ 継承

継承

10

Page 11: 基礎構文班20回目 コンストラクタ 継承

継承とは・・・• 元になるクラスを「スーパークラス」 (super class) 、

あるいは「基底クラス」「基本クラス」 (base class) などと呼び、新たに定義されたクラスを「サブクラス」(subclass) 、あるいは「派生クラス」 (derived class) と呼ぶ。

• スーパークラスの性質はすべてサブクラスに受け継がれ、サブクラスではスーパークラスとの違いを定義するだけでよい。複数のスーパークラスから新しいクラスを定義することを多重継承という。

11

Page 12: 基礎構文班20回目 コンストラクタ 継承

• ようは継承すると「継承元のクラス」のメソッドやフィールドが「継承したクラス」で使えるようになります

12

Page 13: 基礎構文班20回目 コンストラクタ 継承

いままでのこんなんだったよね 準備→メソッド呼び出し

13

Page 14: 基礎構文班20回目 コンストラクタ 継承

いままでの

14

Sample_Normal クラス

  P p1 = new P();  p1.show();で P クラスの中の show メソッドにアクセス

P クラス-show() メソッド

↓ 中身

show() 呼び出し

Page 15: 基礎構文班20回目 コンストラクタ 継承

実行結果

15

Page 16: 基礎構文班20回目 コンストラクタ 継承

書いてみて

16

継承をやってみよう

   

Page 17: 基礎構文班20回目 コンストラクタ 継承

エラー吐いてるよね? なぜ?

A_P クラスの中には  show() メソッドがないからです

17

Page 18: 基礎構文班20回目 コンストラクタ 継承

いままでの

18

Sample_Extends クラス

  A_P p1 = new A_P();  p1.show();で A_P クラスの中の show メソッドにアクセス

P クラス-show() メソッド

A_P クラス この中には show メソッド  がない

 

show() 呼び出し

Page 19: 基礎構文班20回目 コンストラクタ 継承

追加して「クラス名 extend s 継承したいクラス」

で継承を行うことができます

extends P追加でエラー消えたよね?

19

Page 20: 基礎構文班20回目 コンストラクタ 継承

継承を行うと・・・

20

Sample_Extends クラス

  A_P p1 = new A_P();  p1.show();で A_P クラスの中の show メソッドにアクセス

P クラス-show() メソッド

A_P extends P A_P クラスは P クラスの機能全てが使えるクラス

中身 in!!

呼び出し

スーパークラス

サブクラス

Page 21: 基礎構文班20回目 コンストラクタ 継承

実行結果• 継承を行ったことによって P クラスの中に

ある show() メソッドが使えます

21

Page 22: 基礎構文班20回目 コンストラクタ 継承

おまけ  super. について[ 両方に同じメソッドがある場合 ]今度は A_P クラスの中にも show メソッドを作ってみてください ↓追記分 

そして実行してみると・・・

22

Page 23: 基礎構文班20回目 コンストラクタ 継承

実行A_P クラスのメソッドが優先的に実行されるようになってます 

23

Page 24: 基礎構文班20回目 コンストラクタ 継承

ここで・・・サブクラスにおいて、スーパークラスのインスタンスメソッドを参照したい場合に

「 super. メソッド名 (); 」

でスーパークラスのメソッドを呼び出すことができます

24

Page 25: 基礎構文班20回目 コンストラクタ 継承

いろいろ追記

25

Page 26: 基礎構文班20回目 コンストラクタ 継承

で実行

26

Page 27: 基礎構文班20回目 コンストラクタ 継承

いままでの復習がてら・・・

27

Page 28: 基礎構文班20回目 コンストラクタ 継承

問題• 生徒 2 人分の ID と名前と 3 教科の得点の

平均点を管理するクラスを作って、表示するプログラム 点数はキーボードから入力

ただし・・・・次の条件に従ってくださいな

28

Page 29: 基礎構文班20回目 コンストラクタ 継承

条件• オブジェクトの配列使ってください

• コンストラクタ使ってください• 出力部分はメソッドを使ってください

29