6.4継承とメソッド 6.5継承とコンストラクタ 11月28日 時田 陽一

Slides:



Advertisements
Similar presentations
オブジェクト指向 言語 論 第八回 知能情報学部 新田直也. 多相性(最も単純な例) class A { void m() { System.out.println( “ this is class A ” ); } } class A1 extends A { void m() { System.out.println(
Advertisements

独習JAVA Chapter 6 6.6 クラスの修飾子 6.7 変数の修飾子 結城 隆. 6.6 クラスの修飾 abstract インスタンス化できないクラス。1つまたは複数のサブクラスで 実装してはじめてインスタンス化できる。 final 継承されたくないことを明示する。これ以上機能拡張 / 変更でき.
復習ー I (General Review I) クラスとオブジェクトの概念 Concepts of class and object クラスの宣言とオブジェクトの生成 Definition of a class and creation of an object コンストラクタとメソッドのオーバーロー.
Applet 岡部 祐典 鈴木 敬幸.
~手続き指向からオブジェクト指向へ(Ⅰ)~
プログラミング基礎I(再) 山元進.
アルゴリズムとデータ構造1 2007年6月12日
アルゴリズムとプログラミング (Algorithms and Programming)
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
アルゴリズムとプログラミング (Algorithms and Programming)
繰り返し プログラミング 第4回 繰り返し プログラミング第4回.
社会人学習講座 「Javaプログラミング概論」
第2章 Eclipseと簡単なオブジェクト 指向プログラミング
オブジェクト指向入門.
計算機プログラミングI 第8回 2002年12月5日(木) メソッドとクラス (教科書6章) クイズ インスタンスメソッド インスタンス変数
RMI ソフトウェア特論 第6回 /
第6回独習Javaゼミ 第6章 セクション4~6 発表者 直江 宗紀.
コンパイラの解析 (2) GCJのデータ構造 - 1.
実行時のメモリ構造(2) Javaスタック内動作他
細かい粒度でコードの再利用を可能とするメソッド内メソッドのJava言語への導入
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
8.1 例外処理 8.2 catchブロックの検索 8.3 throwステートメント 8.4 例外とエラークラス 8.6 独自の例外
ソフトウェア工学 知能情報学部 新田直也.
JAVA入門後期⑩ 情報処理試験例題解説.
アルゴリズムとプログラミング (Algorithms and Programming)
細かい粒度で コードの再利用を可能とする メソッド内メソッドと その効率の良い実装方法の提案
第9章 例外処理,パッケージ 9.1 例外処理 9.2 ガーベッジコレクション.
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
独習JAVA 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 ObjectクラスとClassクラス 11月28日(金)
オブジェクト指向 プログラミング 第十一回 知能情報学部 新田直也.
第7回独習Javaゼミ セクション 1~4 発表者 直江 宗紀.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
コンパイラの解析 (3) クラスとインスタンスの初期化.
第11週:super/subクラス、継承性、メソッド再定義
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
11 ソフトウェア工学 Software Engineering デザインパターン DESIGN PATTERNS.
10-1 SAXの概要 10-2 Saxプログラミングの基礎 10-3 saxのプログラム例
5.9 メソッドのオーバーロード 5.10 変数の引渡し 2003/11/21 紺野憲一
Java8について 2014/03/07.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第十ニ回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
計算機プログラミングI 第5回 配列 文字列(Stringクラス) mainの引数 配列の利用例
独習Java ・ 5.7  静的変数と静的メソッド ・ 5.8  ローカル変数と変数のスコープ  11月20日    小笠原 一恵.
アルゴリズムとプログラミング (Algorithms and Programming)
オブジェクト指向 プログラミング 第九回 知能情報学部 新田直也.
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
C#プログラミング実習 第3回.
計算機プログラミングI 木曜日 1時限・5時限 担当: 増原英彦 第1回 2002年10月10日(木)
サブゼミ第7回 実装編① オブジェクト型とキャスト.
ソフトウェア制作論 平成30年11月28日.
Chapter 5 5.5 thisキーワード 5.6 インスタンス変数とインスタンスメソッド 結城 隆
JAVA入門⑥ クラスとインスタンス.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第四回 知能情報学部 新田直也.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
フレンド関数とフレンド演算子.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
オブジェクト指向言語論 第十回 知能情報学部 新田直也.
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
計算機プログラミングI 第10回 2002年12月19日(木) メソッドの再定義と動的結合 クイズ メソッドの再定義 (オーバーライド)
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
Presentation transcript:

6.4継承とメソッド 6.5継承とコンストラクタ 11月28日 時田 陽一 独習Java 6.4継承とメソッド 6.5継承とコンストラクタ 11月28日  時田 陽一

6.4 継承とメソッド スーパークラスで定義された元のメソッドを使う場合どうすればよい?? 6.4 継承とメソッド オーバーライドされたメソッド・・・スーパークラスのメソッドを隠す スーパークラスで定義された元のメソッドを使う場合どうすればよい?? スーパークラスのメソッドの参照:super.mthName ( args ) mthName : スーパークラスのメソッド名 args : 省略可能な引数の並び サブクラスからスーパークラスの機能にアクセス     ・・・ サブクラスの処理を完了する前か後で、        スーパークラスのメソッドを呼び出す必要がある コードを効率的に再利用できる

プログラム例[1] 継承関係にある3つのクラスを宣言 helloメソッドによりユーザへの挨拶を表示する class I1 { void hello(String s){ System.out.println("I1: " + s); } class J1 extends I1 { super.hello(s); System.out.println("J1: " + s); class SuperForM1{ public static void main(String args[]){ System.out.println("Instantiating I1"); I1 obj = new I1(); obj.hello("Good morning"); System.out.println("Instantiating J1"); obj = new J1(); obj.hello("Good afternoon"); 継承関係にある3つのクラスを宣言   helloメソッドによりユーザへの挨拶を表示する 出力結果:    Instantiating I1 I1: Good morning Instantiating J1 I1: Good afternoon J1: Good afternoon J1クラスはI1クラスを拡張 スーパークラスのメソッドの参照

6.5 継承とコンストラクタ クラスの状態と動作・・・そのクラスだけでなく、スーパークラスにも定義 6.5 継承とコンストラクタ クラスの状態と動作・・・そのクラスだけでなく、スーパークラスにも定義 オブジェクトを適切に初期化するには、      スーパークラスのコンストラクタも実行しなければならない スーパークラスのコンストラクタの呼び出し:super( args ); args : 省略可能な引数のリスト      コンパイラが並びをチェックし、スーパークラスのどのコンストラクタを呼び出すのかを判断 this( args );・・・同一クラスのコンストラクタの呼び出し(前章)           コンストラクタの最初のステートメントでなければならない    コンストラクタの最初のステートメントでなければならない             ⇒ super()とthis()の両方を使うことはできない ※どちらも使わず、別のコンストラクタを明示的に呼び出さないときはコンパイラによりsuper()が呼び出される

プログラム例[2] 継承階層でsuper()を明示的に使っているプログラムの例 ・T2クラスはS2クラスを拡張 class S2 { int s2; S2(int s2) { this.s2 = s2; } class T2 extends S2 { int t2; T2(int s2, int t2) { super(s2); this.t2 = t2; class InheritanceAndConst2 { public static void main(String args[]) { T2 t2 = new T2(1, 2); System.out.println(“t2.s2 = “ + u2.s2); System.out.println(“t2.t2 = “ + u2.t2); ・T2クラスはS2クラスを拡張 ・T2のコンストラクタは、2つの引数を受け取り、super()を呼び出しS2のコンストラクタを呼び出す。 出力結果:   t2.s2 = 1 t2.t2 = 2 引数s2をS2のコンストラクタへ渡す T2クラスをインスタンス化

課題 ●(x,y)座標を持つ2つの点の間の距離を求めるプログラムを 作成しなさい。 条件 ・座標の値はあらかじめメソッド内で定義しておいてかまわない。 ・各点ごとにある形式のクラスのオブジェクトを作成し、それを距離計算用のメソッドへ送り計算させること。 ・x座標とy座標それぞれのコンストラクタを作成すること(p187,例6.5‐2参照)。