プログラミング 第1回 - 政学 [HSEI UNVERSITY].ppt

プログラミング 第1回 - 政学 [HSEI UNVERSITY].ppt

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
プログラミング 第1回 - 政学 [HSEI UNVERSITY].ppt

プログラミング第14回 プログラミング 第14回 インタフェース yukita@k.hosei.ac.jp インタフェースとは クラスと同様の参照型の一種 フィールド,メソッドをもつ フィールドは定数だけが許される メソッドはすべて abstract,つまり実装されない abstract class では部分的に実装が可能 abstract class と同様にインスタンスは作れない Java言語におけるオブジェクトはこれですべて。 クラス クラスのインスタンス インタフェース インタフェースによる契約 インタフェースの実装者(契約者甲) インタフェースの利用者(契約者乙) 多重継承とインタフェース 1つのクラスで複数のインタフェースを実装することができる。 多くの型をもつことができる。これは多重継承を実質可能にしている。abstract クラスではこのようなことができない。 例 クラス図 この結果 X[]={new A(), new B()}; X x=new B(); Y y=new B(); Z z=new B(); のようなことができる。 Lockable.java(List 14-1,p.167) Kinko.java(List 14-2, p.108)完全版 Kinko.java (2) LockableTest.java 実行結果 課題 Lockableインタフェースを実装するクラスHouseを作成せよ? lock されると「準備中」とprintする unlock されると「営業中」とprintする LockableTestを改造し,LockableTest2とせよ。 Lockableの長さ2の配列にKinkoとHouseのインスタンスを格納し,動作を検証する? 解答例 House.java(1) House.java (2) 解答例 LockableTest2.java 余裕のある人へ 次に紹介するのは swing の JFrame を拡張し,Lockable インタフェースを実装するクラスの例である。 単体テストのためのmainメソッドも用意してある。 結合テストドライバとして LockableTest3 を用意してある。 長さ3の配列 x[]にKinko,House,SwingKinkoのインスタンスを格納している。 コマンドプロンプトからインデックスと“lock”または“unlock”をスペースで区切って入力する? どういう動きをするだろうか。 SwingKinko.java (1) SwingKinko.java (2) SwingKinko.java (3) SwingKinko.java (4) SwingKinko.java (5) SwingKinko.java (6) LockableTest3.java (1) LockableTest3.java (2) LockableTest3.java (3) ActionListenerインタフェースの契約 JButton のインスタンスたちは契約者乙 addActionListener(甲)により契約希望者の登録を待つ? 登録されている甲に対して,必要なときにactionPerformed()を呼び出す? SwingKinko のインスタンスは契約者甲 actionPerformed()をしっかり定義する義務がある。 ActionListener契約開始 ActionListener契約履行と仕事の連携 * interface InterfaceX { public void methodX1(); } このインタフェースを実装するものを以下甲という。 このインタフェースを実装するクラスを,どのようなクラスであるか関心をもたずに信じて利用するものを以下乙という。 public class ClassB implements InterfaceX { ClassC otsu; ... public void methodX1(){ ... } public void myInit(){ otsu=new ClassC(); otsu.setKo(this); } ... } 「InterfaceXに定められたメソッド群をすべて実装していますよ。」という宣言。これによりこのクラスは本来の型であるClassBだけでなく,InterfaceXという型ももつことになる。 public class ClassC { InterfaceX ko; pubic void setKo(Interface ko){ this.ko=ko; } private v

文档评论(0)

maritime5 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档