`
lantian_123
  • 浏览: 1365315 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

谈谈接口

    博客分类:
  • Java
 
阅读更多

 

接口

一、此接口非彼接口

   接口有两种定义:一种是我们常说的API(application program interface)应用程序接口,这类接口是有应用服务提供商或第三方软件厂商提供。如Java就提供了不少非常强大的API,各种开放应用平台也纷纷提供自己的API接口供程序员使用。第二种就是我们接下来重点要说的Java语言规范中提供的一种特性(Interface)

 

二、什么是接口(Interface

 

   通俗的讲接口就是一种规范,生活中的一个例子就是我们的每个人都在用的插线板,插线板定义了有两孔的插孔,三孔插孔、或者其他特殊的插孔,各种电器只要按照插线板的规范去制作就肯定可以接上电源。而插线板也根本不需要知道具体知道是什么东西接在我这个插孔中。

 

   Java语言规范中对接口的定义:一个接口就是一些方法特征的集合,所谓的方法特征就是指该方法只有描述而没有具体实现怎么做,好比一个乘法计算的方法只是申明一下,但并不去解决怎么把这个乘法算法的过程和结果写出来。接口就是一种抽象化的表现,但他比抽象类更抽象。(了解抽象类可以看以后写的博客或者查阅其它资料)。我们可以把电影中角色和演员分别比作接口和具体的实现类。

 

三、接口定义:

 

public interface Expression{
		public static final int num1 =1;
		public static final int num2 =2;
		boolean getResult();
}
   

四、接口的一些特性:

   1、接口中的方法的声明默认是public abstract修饰的。

   2、接口中可以包含有public static final 修饰的常量。

   3、一个类可以实现多个接口。

 

五、接口的用途:

   接口在Java语言中有着举足轻重的地位,几乎所有框架的设计都离不开接口,那它究竟用什么做用呢?

   其实接口是对Java多态特性一种很好的实现。我们来设想有这样一个情景:老师一天给学生分配一个任务就是为一个软件实现一个乘法的功能,于是该同学很快就开始写好了如下一个类:

 

public class Client{
    public static void cacl(int num1,int num2){
        System.out.println(num1*num2);
    }
}
   

如果系统不再需升级,此方法无疑是最好的一种方式,但是我们总是会不安于现状,突然几天后老师根据客户的需要又要求我们实现一个除法的功能,我们只好勉为其难的添加了一个新类,然后修改了下Client,变成了如下:

 

public class Client{
       public static void cacl(int num1,int num2,String opt){
        if("*".equals(opt)){
            System.out.println(num1*num2);
        }else if("/".equals(opt)){
            Sysetm.out.println(num1/num2);
        }
    }
}
 

 

设想一下,如果以后老师还有更多的需求,我们就的写上长长的一段if else 语句来判断了,这可不是一个很好的设计。于是乎接口派上用场了。看看下面的代码:

 

public interface Expression{
    int result(int num1,int num2);
}
 
public class multiExpression implements Expression{
   
    public int result(int num1,int num2){
        return num1*num2;
    }
   
}
 
public class Division implements Expression{
 
    public int result(int num1,int num2){
        return num1/num2;
    }
}
 
public class Client{
    public static void cacl(Expression exp,int num1,int num2){
        System.out.println(exp.result(num1,num2));
    }
}
 

 

我们发现Client类中只有一行代码了,非常的精简,以后在有其他的计算需求,我只需写一个新的类就行。根本的不用去修改Client类了。

   接口同时使用在很多种设计模式上。(最后写完这文章,发现一点都不深入,暂且适用于入门读者吧)。

分享到:
评论

相关推荐

    第13讲 谈谈接口和抽象类有什么区别?1

    在Java编程语言中,接口(Interface)和抽象类(Abstract Class)都是面向对象设计的关键概念,它们用于实现抽象和多态性,但它们之间存在显著的区别。 接口是对行为的抽象,它只包含抽象方法(没有方法体的方法)...

    C#初学接口的经典范例

    首先,我们来谈谈接口。在C#中,接口使用`interface`关键字定义,它只包含方法、属性、索引器和事件的签名,但不包含它们的实现。这使得接口成为一种纯抽象的概念,强制任何实现接口的类提供具体实现。例如: ```...

    第十三节 抽象类 接口.docx

    接下来,我们谈谈接口。接口在Java中是一种完全抽象的类型,它只包含常量和抽象方法,不包含任何字段或实现。接口的作用类似于合同或规范,定义了一组必须遵循的方法,实现接口的类必须提供这些方法的具体实现。这与...

    Java抽象类和接口综合练习设计门禁系统 含源码

    接下来,我们谈谈接口。接口在Java中是完全抽象的,它只包含常量和抽象方法。它允许类实现多个行为,实现了多继承的效果。在门禁系统中,可能存在一个`AccessControlInterface`接口,定义了如`authenticate()`(认证...

    接口与通信实验程序源代码(2011年7月版)

    首先,我们来谈谈接口。在计算机科学中,接口可以指代硬件接口和软件接口。硬件接口是指物理设备与计算机系统之间的连接点,如USB、串口或并口,使得数据能传输到或从设备中读取。软件接口则是在不同软件模块之间...

    Java学习笔记---15.面向对象编程10-Java中final关键字,抽象类与接口

    最后,我们来谈谈接口(Interface): 接口在Java中是一种完全抽象的类型,它只包含抽象方法和常量。接口是实现多继承的手段,因为Java不支持类的多继承,但一个类可以实现多个接口。接口的声明使用`interface`...

    Android中ListView适配器中的view重用和接口回调

    接下来,我们谈谈接口回调。在ListView中,我们经常需要在用户与列表项交互时执行某些操作,如点击事件。这时,我们可以定义一个接口并在适配器中实现,通过回调通知宿主Activity或Fragment。例如,我们可以创建一个...

    apidemo-java.zip

    首先,我们来谈谈接口加密。接口加密是为了防止未经授权的访问和数据篡改,通常采用HTTPS、RSA、AES等加密算法。在Java中,可以使用Java Cryptography Extension (JCE)框架来实现这些加密操作。HTTPS是HTTP协议的...

    .net 三层工厂模式

    接下来,我们谈谈接口映射。接口映射是将业务逻辑层与数据访问层之间的通信接口化的过程。在本案例中,`IDataAccess`接口可能包含诸如`ExecuteNonQuery`、`ExecuteReader`等方法,这些方法分别对应数据库的增删改查...

    unittest.zip

    接着,我们谈谈接口测试。接口测试关注的是系统组件间的交互,尤其是通过API(应用程序编程接口)进行的数据交换。这包括内部模块间的接口,以及系统与其他系统间的外部接口。接口测试能确保数据传输的正确性,并且...

    Listview中的Button实现点击事件

    首先,我们来谈谈接口回调的方式。这种方式适用于父组件(如Activity或Fragment)需要监听子组件(如ListView中的Button)的事件。步骤如下: 1. **定义接口**:创建一个接口,例如`OnItemClickListener`,包含一个...

    京东30分钟接口.rar

    首先,让我们谈谈“京东接口”。京东作为一个大型电商平台,其背后有着复杂的业务逻辑和众多的服务。接口是这些服务之间相互协作的桥梁,例如商品查询、订单处理、物流跟踪等。"30分钟接口"可能指的是一个特定的业务...

    接口测试软件-简洁好用

    接下来,我们来谈谈如何选择和使用接口测试工具。"测试工具"这个文件名暗示了我们可能会使用到的是一种通用的测试工具,可能是像Postman、JMeter或者SoapUI这样的工具。这些工具都提供了以下功能: 1. 请求构造:...

    接口回调demo

    接下来,我们谈谈反射。反射是Java的一种强大的特性,它允许我们在运行时动态地获取类的信息(如类名、字段、方法等)并进行操作。通过反射,我们可以在运行时创建对象、调用方法、访问和修改字段,甚至检查和实现...

    COM接口和DLL接口函数查看器.zip

    接下来,我们谈谈DLL(Dynamic Link Library)接口函数。DLL是一种共享库机制,它可以包含可执行代码和数据,供多个程序同时使用。DLL接口函数是指DLL文件中导出的函数,这些函数可供其他应用程序调用,实现功能扩展...

    cardhunt:步枪通过一些卡

    卡寻通过展示Magic:从收集数据来演示React.js。为什么React这么好? 这只是视图层。 它强烈执行良好的绑定惯例。 将浏览器中的重排保持在...让我们来谈谈接口程序的最纯形式没有接口。 域是一个代码核。 但是,为了

    接口与委托(在别人的帮助下理解的)

    接下来,我们来谈谈“委托”。委托在C#中类似于函数指针,它允许我们将方法作为参数传递,或者存储在变量中。这使得我们可以动态地调用不同的方法,实现回调或者事件处理。委托类型使用`delegate`关键字声明,通常...

    计算机常用接口手册.rar

    首先,我们来谈谈串行接口,如RS-232,这是最早的串行通信标准之一,用于连接计算机和外部设备,如调制解调器。它定义了数据传输速率、信号电平以及数据线的布局。虽然速度相对较慢,但因其简单性和通用性,至今仍在...

    工厂模式与面向接口配合实现深度解耦

    在Java和C#的编程世界里,并没有出现像C++那样的多脉继承,它们只支持单一的继承,或者多级继承,这一变化最大的影响,我觉得是大大的降低了编程的...今天就来谈谈我对Java中面向接口编程的看法,以及个人的一些改进。

Global site tag (gtag.js) - Google Analytics