11RIA 闪客社区 - 最赞 Animate Flash 论坛

搜索
查看: 1850|回复: 1
上一主题 下一主题

[继承和复合] 继承的用法小练习

[复制链接] TA的其它主题
发表于 2018-12-20 16:01:35 | 显示全部楼层 |阅读模式

【游客模式】——注册会员,加入11RIA 闪客社区吧!一起见证Flash的再次辉煌……

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
为了方便我把三个类文件一并插入了。
[Actionscript3] 纯文本查看 复制代码
package son 
{
	//定义一个父类(笔);
	public class Pen
	{
		public var nam:String;//名称
		public var t:uint;//用来记下写入次数;
		public var memory:Array = [];//用来存储写入内容的数组;
		public function Pen()
		{

			init();// constructor code
		}
		//定义一个初始化属性的方法,便于继承的子类重写初始值;
		function init()
		{
			nam = "笔";
			t = 0;
		}
		//定义一个写字的方法;
		public function write(e:String)
		{//输出要写入的内容;
			trace("这次写入的内容是:"+e);
			//把本次输入的内容存入数组的尾部;
			memory.push(e);
			//记录写入的次数;
			t++;
		}
	}

}
package son
{
	//定义笔的一个子类,铅笔
	public class Pencil extends Pen
	{
		//复合橡皮属性;
		public var _rub:Rubber;
		public function Pencil()
		{
			init();
			initparts();// constructor code
		}
		//重写属性的初始值;
		override function init()
		{
			nam = "铅笔";
		}
		//初始化_rub;
		function initparts()
		{
			_rub = new Rubber  ;
		}
		//把Rubberr的方法传递过来;
		function wipe(e:String)
		{
			_rub.wipe(e);
		}
		function recovery()
		{
			_rub.recovery();
		}
	}

}
//以下是文档类
package 
{

	import flash.display.Sprite;
	import son.Pen;
	import son.Pencil;

	public class doc extends Sprite
	{
		var _pen:Pen = new Pen();
		var _pencil:Pencil=new Pencil();
		var m:Array = [];//用来记录写入内容的数组;
		var wt:int;//用来记录写入的次数;
		var rt:int;//用来记录擦除的次数;
		public function doc()
		{
			init();
		}
		private function init()
		{
			trace(_pen.nam);
			_pen.write("中国人");
			m=_pen.memory.concat(_pencil.memory);//把_pen和_pencil的写入内容合并起来;
			wt = _pen.t + _pencil.t;//记录写入的总次数
			trace(m[m.length-1]);
			trace("一共写入了"+wt+"次");
			_pencil.write("外国人");
			m = _pen.memory.concat(_pencil.memory);
			wt = _pen.t + _pencil.t;
			trace(m[m.length-1]);
			trace("一共写入了"+wt+"次");
			_pencil.write("地球人");
			m = _pen.memory.concat(_pencil.memory);
			wt = _pen.t + _pencil.t;
			trace(m[m.length-1]);
			trace("一共写入了"+wt+"次");
			_pencil._rub.wipe(m[m.length-1]);//擦除的刚刚输入的内容;
			m.pop();
			rt = _pencil._rub.t;//记录擦除的次数;
			trace(m);//输出擦除后剩下的内容;
			trace("擦除了"+rt+"次");

		}

	}

}

 楼主| 发表于 2018-12-20 16:03:56 | 显示全部楼层
花了我三天的时间才写好这段代码,修改的无数次,总算成功了,很开心!但是也遇到了很多的问题,太多太多,要发一个单独的贴子来总结!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

感谢所有支持论坛的朋友:下面展示最新的5位赞助和充值的朋友……更多赞助和充值朋友的信息,请查看:永远的感谢名单

SGlW(66139)、 anghuo(841)、 whdsyes(255)、 longxia(60904)、 囫囵吞澡(58054)

下面展示总排行榜的前3名(T1-T3)和今年排行榜的前3名的朋友(C1-C3)……更多信息,请查看:总排行榜今年排行榜

T1. fhqu1462(969)、 T2. lwlpluto(14232)、 T3. 1367926921(962)  |  C1. anghuo(147)、 C2. fdisker(27945)、 C3. 囫囵吞澡(58054)



快速回复 返回顶部 返回列表