欢迎来到天天文库
浏览记录
ID:34617854
大小:188.00 KB
页数:11页
时间:2019-03-08
《1android的类别继承与委托之范例》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、11.Android的类别继承与委托之范例1.1类别继承的副作用继承和委托皆能达到对象再用之目的,各有所长各有所短,相辅相成才是完美的。如下述类别: 在NewCollegiate字典上对「正方形」的定义是:「正方形是一种4边等长的长方形」 所以使用继承如下: 然而,上述的实作继承却有些缺点,宜避免之。例如,Square从Rectangle继承了setLength()和setWidth()函数,但这两个函数对于Square而言是无意义且有害的。因之,上述的继承关系是不良的。至于如何改善上述的继承关系呢?可改用委托:当Square之对象接到外界传
2、来的area()讯息时,就委托Rectangle之对象代为处理。虽然委托会令程序复杂些,但勉强使用继承,后遗症将更大。因为副作用可能会延续到Rectangle的各子孙类别!1.2Android的继承与委托之例兹以Android里的MediaPlayer类别为例。1.2.1操作情境:1.此程序开始执行后,出现画面如下: 2.按下,就开始播放MP3音乐。3.若按下,就结束播放音乐。4.若按下,程序就结束了。1.2.2范例程序(1):采单纯继承方法1.2.2.1撰写步骤: Step-1:建立Android项目:Px
3、01。Step-2:撰写Activity的子类别:ac01,其程序代码如下: /*ac01.java*/packagecom.misoo.pkzz;importandroid.app.Activity;importandroid.graphics.Color;importandroid.media.MediaPlayer;importandroid.os.Bundle;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Linea
4、rLayout;importandroid.widget.TextView;publicclassac01extendsActivityimplementsOnClickListener{privatefinalintWC=LinearLayout.LayoutParams.WRAP_CONTENT;privatefinalintFP=LinearLayout.LayoutParams.FILL_PARENT;privateMediaPlayermPlayer;privatemyButtonbtn,btn2,btn3;publicTextView
5、tv;publicvoidonCreate(Bundleicicle){super.onCreate(icicle);LinearLayoutlayout=newLinearLayout(this);layout.setOrientation(LinearLayout.VERTICAL);btn=newmyButton(this);btn.setId(101);btn.setText("play");btn.setOnClickListener(this);LinearLayout.LayoutParamsparam=newLinearLayou
6、t.LayoutParams(btn.get_width(),btn.get_height());param.topMargin=10;layout.addView(btn,param);btn2=newmyButton(this);btn2.setId(102);btn2.setText("stop");btn2.setOnClickListener(this);layout.addView(btn2,param);btn3=newmyButton(this);btn3.setId(103);btn3.setText("exit");btn3.
7、setOnClickListener(this);layout.addView(btn3,param);tv=newTextView(this);tv.setTextColor(Color.WHITE);tv.setText("Ready");LinearLayout.LayoutParamsparam2=newLinearLayout.LayoutParams(FP,WC);param2.topMargin=10;layout.addView(tv,param2);setContentView(layout);//---------------
8、------------------------myMediaPlayermy_player=newmyMediaPlayer();mP
此文档下载收益归作者所有