小chen的java学习笔记--接口练习

本文介绍了如何通过实现Comparable接口,赋予不同类(如学生、新闻、商品)比较能力。首先定义了一个包含compareTo()方法的Comparable接口,然后分别在学生类、新闻类中实现该接口,根据特定属性进行比较。在测试类中,创建对象并进行比较,展示了接口多态性的应用。此设计模式常见于排序和比较操作中。
摘要由CSDN通过智能技术生成
/*
    需求说明:学生类,新闻类,商品类虽然是完全不同的类,但是都具有比较的能力,比如可以比较两个学生的大小,但需要指定比较的依据是学号、姓名还是成绩等。
实现思路及关键代码:
将比较的能力定义为接口,让学生、新闻、商品类都实现该接口。
1)定义接口Comparable,其中包含唯一的方法int compareTo(Object obj);返回值>0,表示大于,返回值=0,表示等于,返回值<0,表示小于。
2)定义学生类,包括学号、姓名、年龄和分数,实现Comparable接口,实现比较;
3)定义新闻类,包括编号(int类型)、标题、内容和点击数,实现Comparable接口,实现比较;
4)定义测试类,分别创建两个学生对象、新闻对象,进行比较并输出结果。
     */

1、分析题意,找到需要定义的内容和个数

根据题意,我们可以看出,需要定义一个接口(Comparable),三个类(Student、News、Goods),接口包括唯一的方法int compareTo(Object obj);通过方法判断返回值的类型,如果返回值>0,表示大于,返回值=0,表示等于,返回值<0,表示小于。

2、创建一个名为Comparable的接口,实现int compareTo(Object obj)的方法;

代码如下:

注意:Object 是 Java 类库中的一个特殊类,也是所有类的父类。 也就是说,Java 允许把任何类型的对象赋给 Object 类型的变量。 当一个类被定义后,如果没有指定继承的父类,那么默认父类就是 Object 类。

3、创建一个名为名为News的类使用Comparable的接口

 因为在int compareTo(Object obj);方法中,返回值是int类型,所以我们可以直接用两个新闻的点击数的差来判断,大于0时,返回大于,小于0时返回小于,等于0时返回等于。

return this.click-news.click;

注意:在 Java 中强制类型转换分为基本数据类型和引用数据类型两种,引用数据类型的强制类型转换。 在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需要强制转换,因此我们需要使用强制转换将obj类型转换为我们需要的news类型。

4、接下来我们来编写测试类

新建两个对象news和news1,调用compareto的方法进行比较,通过方法的返回值来判断输出。

 5、最后编译运行

 其他两个类也是同样的过程,因此省略了。

6、总结

接口的特点:
用 interface 来定义。

接口中的所有成员变量都默认是由public static final修饰的。

接口中的所有方法都默认是由public abstract修饰的。

接口没有构造方法。构造方法用于创建对象

实现接口的类中必须提供接口中所有方法的具体实现内容。

多个无关的类可以实现同一个接口

一个类可以实现多个无关的接口

与继承关系类似,接口与实现类之间存在多态性

接口也可以继承另一个接口,使用extends关键字。

实现接口的类中必须提供接口中所有方法的具体实现内容。

多个无关的类可以实现同一个接口

一个类可以实现多个无关的接口

与继承关系类似,接口与实现类之间存在多态性
 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值