- 1、本文档共30页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
最近下载
- 化工园区危险品运输车辆停车场建设标准.docx
- 雨水井劳务分包合同2024年通用.docx
- 老年人智能机培训课件.pptx VIP
- 体育教育专业职业生涯规划书发展报告大一全国大学生职业规划大赛模板范文1500字.pdf VIP
- 索尼特丽珑彩监_bvm20f1u_bvm20f1e_bvm20e1u_bvm20e1e_bvm14f1u_bvm14f1e_bvm14e1u_bvm14e1e_bvm14f5u_bvm14f5e_bv.pdf
- 一年级道德与法治《我是小学生啦》单元整体教学设计(1).doc VIP
- 南宋爱国诗词的内容和情感专题.ppt VIP
- 2024年新人教版七年级上册生物课件 第三章 微生物 第三节 真菌 .pptx
- iAStar-S3系列电梯专用变频器使用说明书_V2.03.pdf
- 2024年高一年级上册语文期末复习:文言文阅读 刷题练习题(含答案解析).pdf VIP
文档评论(0)