当前位置: 首页 > news >正文

天津专门做网站的公司/南通做网站推广的公司

天津专门做网站的公司,南通做网站推广的公司,wap网站做微信小程序,郑州网站建设公司排行这里将自己学习java及其应用的一些笔记、积累分享一下,如果涉及到了文章、文字侵权,请联系我删除或调整。 一、接口 1.1 概述 接口的作用:结构设计工具,用来解耦合、隔离实现 可以理解为,接口是极端的抽象类 用 int…

这里将自己学习java及其应用的一些笔记、积累分享一下,如果涉及到了文章、文字侵权,请联系我删除或调整。


一、接口

1.1 概述

  • 接口的作用:结构设计工具,用来解耦合、隔离实现
  • 可以理解为,接口是极端的抽象类

interface 代替 class

implements 代替 extends

1.2 接口中只能定义

  • 公开的常量
  • 公开的抽象方法
  • 公开的内部类、内部接口

1.3 类可以实现多个接口

  • 一个类只能有一个父类,但可以实现多个接口

class A implements X,Y,Z {

}

class A extends B implements X,Y,Z {

}

1.4接口之间继承,可以继承多个

interface A extends X,Y,Z {

}

1.5 练习:变形金刚

在此,我们先定义一个“武器”接口,同时将武器的一般通用功能或特点抽象为接口方法,例如kill(), getName(), getType()。

package 接口_变形金刚;
/**	定义接口,主要就是定义抽象方法 */
public interface Weapon {// public static final,在接口中可以省略不写// 定义公开的常量public static final int TYPE_COLD = 0;public static final int TYPE_HOT = 1;public static final int TYPE_NUCLEAR = 2;/*接口定义的抽象方法*/// 接口中定义的方法默认是public abstract,可以省略不写void kill();String getName();int getType();
}

完成了接口的定义,接下来,我们来创造具体的武器,例如刀剑、枪炮、棍棒等。

package 接口_变形金刚;
/**	武器:剑(鲨齿剑) */
public class Sword implements Weapon{@Overridepublic void kill() {System.out.println("横贯八方!");}@Overridepublic String getName() {return "鲨齿剑";}@Overridepublic int getType() {return Weapon.TYPE_COLD;}
}
package 接口_变形金刚;public class AK47 implements Weapon {@Overridepublic void kill() {System.out.println("当!当当当!");}@Overridepublic String getName() {return "银狐狙击炮!";}@Overridepublic int getType() {return Weapon.TYPE_HOT;}
}
package 接口_变形金刚;public class Lyb implements Weapon {@Overridepublic void kill() {System.out.println("打狗!");}@Overridepublic String getName() {return "打狗棒";}@Overridepublic int getType() {return Weapon.TYPE_NUCLEAR;}
}

至此,我们已经创建了3个具体武器,并且实现了相应的“武器”应该具备的方法。换句话说,我们已经完成了接口和接口实现类的编写,接下来就是怎么使用它们了。

我们接下来开始编写“变形金刚”,并且把设计的接口使用起来。

package 接口_变形金刚;
/**	变形金刚使用Weapon接口 */
public class Transformer{// 使用Weapon接口,则需要将Weapon定义为一个成员// w默认值是nullprivate Weapon w;// 基于多态,三种武器都可以向上转型,保存在“父类”对象// 进攻public void attack() {System.out.println("金刚进攻!");// 判断是否有装配武器if(w == null) {System.out.println("用牙咬!");return;}// 有武器,将武器类别代码转换成字符串的类别名String s = "";switch(w.getType()) {case Weapon.TYPE_COLD: s = "冷兵器";break;case Weapon.TYPE_HOT: s = "热兵器";break;case Weapon.TYPE_NUCLEAR: s = "核武器";break;}// 显示进攻消息,例如:使用冷兵器鲨齿剑攻击!System.out.println("使用"+s+w.getName()+"攻击!");// 调用kill(),执行进攻动作w.kill();}// 人为设置武器对象public void setWeapon(Weapon w) {this.w = w;}
}

在此,我们将“武器”接口使用在了“变形金刚”类中,这样基于多态的原理,变形金刚就可以使用这个武器接口来“对接”多种武器实例,从而实现了解耦。接下来,我们测试一下。

package 接口_变形金刚;import java.util.Random;
import java.util.Scanner;public class Test1 {public static void main(String[] args) {// 创建变形金刚对象Transformer t = new Transformer();// 创建武器对象Sword s = new Sword();AK47 a = new AK47();Lyb l = new Lyb();System.out.println("回车继续!");while(true) {new Scanner(System.in).nextLine();// 随机武器类别int r = new Random().nextInt(4);// 依据随机类别,装配武器switch(r) {case 0: t.setWeapon(s);break;// 装配武器鲨齿剑,冷兵器case 1: t.setWeapon(a);break;// 装配武器银狐狙击炮,热兵器case 2: t.setWeapon(l);break;// 装配武器打狗棒,核武器case 3: t.setWeapon(null);break;// 默认无武器}// 变形金刚进攻t.attack();}		}
}

 

http://www.lbrq.cn/news/1050175.html

相关文章:

  • 建设旅游网站目标客户分析/如何创建网站
  • 网站制作可能出现的问题/产品50个关键词
  • wordpress 公网贷款/优化大师免费下载安装
  • wordpress邮箱qq接入/企业seo网站营销推广
  • 云服务器可以做网站/seo零基础教学视频
  • 幻日网站建设/官网整站优化
  • 衢州网站推广/上海职业技能培训机构一览表
  • java 网站开发 教程/码迷seo
  • 我的世界大橙子做皮肤的网站/网络营销的新特点
  • 全景网站开发多少钱/做销售记住这十句口诀
  • 因网站开发需要/品牌策划包括哪几个方面
  • 贵阳市做网站的公司/百度怎么联系客服
  • 南通做网站推广的公司/seo也成搜索引擎优化
  • 为什么选择做游戏网站/站长之家
  • 代做毕设哪个网站靠谱/网络舆情分析报告范文
  • 网站制作预付款会计分录/免费顶级域名注册
  • 在线做ps是什么网站/上海优化seo排名
  • 容桂低价网站建设/百度搜索app下载
  • 白云区建网站/seo策略
  • wordpress 美食主题/百度搜索优化建议
  • 网站开发需要哪些工程师/百度广告投放价格表
  • 自己做黑彩网站/广告营销方式有哪几种
  • 用竹片做的网站/营销模式和营销策略
  • 电商网站管理系统模板下载/徐州做网站的公司
  • 做网站需要哪些东西和步骤/怎样有效的做网上宣传
  • 筑巢网站建设/全网营销是什么
  • 签约做网站模板/百度登录首页
  • 用pc做网站服务器为什么不如云主机/网站推广如何引流
  • 合肥网络公司网站建设/兰州seo快速优化报价
  • 柳州建设厅官方网站/搜狗搜索旧版本
  • 机器学习——TF-IDF 衡量词语在文档中重要程度
  • 人工智能技术发展历史演变
  • react 常用组件库
  • 使用 Ansys Discovery 进行动态设计和分析
  • ​​​​​​​【Datawhale AI夏令营】多模态RAG财报问答挑战赛:学习笔记与上分思考
  • 【JavaEE】(11) 前端基础三件套