学习Java第14天

学习Java第14天,第1张

学习Java第14天

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()

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4671752.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-06
下一篇 2022-11-06

发表评论

登录后才能评论

评论列表(0条)

保存