学习Java第14天

这篇博客介绍了Java中的接口概念及其使用,包括接口的定义、实现与继承。讲解了如何在类中实现接口,以及如何处理多接口实现。同时,讨论了设计规则,如抽取出超类和接口以实现代码复用。文中还提到了潜艇游戏的场景,涉及深水炸弹的发射、战舰的移动以及检测和删除越界的海洋对象。此外,还提及了EnemyScore得分接口和EnemyAward奖励接口的设计与实现。
摘要由CSDN通过智能技术生成

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、深水炸弹入场
1)深水炸弹是由战舰发射出来的,所以在Battleship中设计shoot()发射深水炸弹
2)深水炸弹入场为事件触发的,所以在侦听器中重写KeyReleased()键盘弹起事件
----在keyReleased()中:
判断若按下的时空格键,则:获取深水炸弹对象,bomb扩容,装到最后一个元素上

2、战舰是根据按键左右移动
1)战舰左右移动是战舰的行为,所以在Battleship中设计moveLeft和moveRight
2)战舰左右移动为事件触发的,所以在侦听器中装KeyReleased()中
判断若按下的左键,则战舰左移,若按下的右键,则战舰右移

3、删除越界的海洋对象
1)行为:在SeaObject中设计isOutOfBounds()检测潜艇越界,在Bomb、Torpedo、Mine中重写
isOutOfBounds()检测深水炸弹,鱼雷,水雷越界

	删除海洋越界是定时发生的,所以在run()中调用outOfBoundsAction()删除越界在
	outOfBoundsAction()中:
		遍历所有潜艇,判断若潜艇越界了,则将越界深水炸弹替换为最后一个元素,缩容
2)调用:

4、设计EnemyScore得分接口,ObserveSubmarine和TorpedoSubmarine实现此接口
设计EnemyAward奖励接口,MineSubmarine实现此接口


***错误的可能:
1、编译错误:只检查语法
2、异常:运行时发生
3、程序的运行

***如何调错:
1)快速锁定问题的方法
------先将功能全部注释掉,然后再一个个放开,放开哪个功能后出错,说明问题就出在哪个问题上
2)打桩:----先锁定问题出在哪,然后再打桩
System.out.println()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值