day14文字笔记
知识回顾
正课内容:
1、接口
是一种数据类型(引用),由interface定义,只能包含常量和抽象方法,接口不能被实例化(不能new 对象)
接口是需要被实现/继承的,实现类/派生类:必须重写接口中的所有抽象方法 一个类可以实现多个接口,用逗号进行分隔,若又继承又实现时,应先继承后实现 接口可以继承接口 1)演示接口的语法 interface Inter{ public static final int NUM = 5;//接口中只能包含常量与抽象方法 public abstract void show();//接口中只能包含常量与抽象方法 int Count = 5;//默认public static final void test(){}//编译错误,接口中只能含有抽象方法 void say();//默认为抽象方法,abstract void say( ); } 2)演示接口的实现----类中实现接口 Class Aoo implement Inter{ public void test(){} //接口被实现时,抽象方法必须被重写 public void say(){} } 3)演示多接口的实现 interface Inter1{ void a();//默认抽象方法 } interfce Inter2{ void b();//默认为抽象方法 } Class Boo implents Inter1,Inter2{ public void a(){}//实现接口后,抽象方法必须要重写 public void b(){} } 4)演示接口继承接口 interface Inter3 extends Inter2 { void c();//Inter3中有两个抽象方法void b(); void c(); }2、设计规则
1.将派生类所共有的属性和行为,抽到超类中------抽共性
2.若派生类的行为都一样设计为普通方法
若派生类的行为不一样设计为抽象方法
3.将部分派生类共有的属性和行为,抽到接口中
----接口是对继承的单根性的扩展--------实现多继承
潜艇游戏第8天
1、深水炸d入场
1)深水炸d是由战舰发射出来的,所以在Battleship中设计shoot()发射深水炸d
2)深水炸d入场为事件触发的,所以在侦听器中重写KeyReleased()键盘d起事件
----在keyReleased()中:
判断若按下的时空格键,则:获取深水炸d对象,bomb扩容,装到最后一个元素上
2、战舰是根据按键左右移动
1)战舰左右移动是战舰的行为,所以在Battleship中设计moveLeft和moveRight
2)战舰左右移动为事件触发的,所以在侦听器中装KeyReleased()中
判断若按下的左键,则战舰左移,若按下的右键,则战舰右移
3、删除越界的海洋对象
1)行为:在SeaObject中设计isOutOfBounds()检测潜艇越界,在Bomb、Torpedo、Mine中重写
isOutOfBounds()检测深水炸d,鱼雷,水雷越界
删除海洋越界是定时发生的,所以在run()中调用outOfBoundsAction()删除越界在 outOfBoundsAction()中: 遍历所有潜艇,判断若潜艇越界了,则将越界深水炸d替换为最后一个元素,缩容 2)调用:
4、设计EnemyScore得分接口,ObserveSubmarine和TorpedoSubmarine实现此接口
设计EnemyAward奖励接口,MineSubmarine实现此接口
***错误的可能:
1、编译错误:只检查语法
2、异常:运行时发生
3、程序的运行
***如何调错:
1)快速锁定问题的方法
------先将功能全部注释掉,然后再一个个放开,放开哪个功能后出错,说明问题就出在哪个问题上
2)打桩:----先锁定问题出在哪,然后再打桩
System.out.println()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)