java创建接口
‘壹’ java中如何动态创建接口的实现方法
有很多应用场景,用到了接口动态实现,下面举几个典型的应用:
1、mybatis / jpa 等orm框架,可以在接口上加注解进行开发,不需要编写实现类,运行时动态产生实现。
2、bbo等分布式服务框架,消费者只需要引入接口就可以调用远程的实现,分析源代码,其实在消费端产生了接口的代理实现,再由代理调用远程接口。
3、spring aop 这是最典型的动态代理了。
创建接口的动态实现,有二种最常用的方式:JDK动态代理和CGLIB动态代理。
‘贰’ Java新手,请教如何写一个接口
public interface IntStack {
public void push(int x);
public int pop();
public void show();
}
public class MyIntStack implements IntStack {
private int[] arrStack;
public MyIntStack(int length) {
arrStack = new int[length];
for( int i=0;i<length;i++ )
arrStack[i]=-1;
}
public void push(int x) {
System.out.println(x);
}
public int pop() {
System.out.println("pop");
}
public void show(){
System.out.println("show");
}
}
‘叁’ JAVA, 怎么创建这个接口求教
接口只能是抽象的,任何接口都是抽象接口。抽象接口里面只能是方法的声明,方法的具体操作由继承他的类来具体实现。
首先你需要创建一个接口:
public interface Actionlistener{
public abstract void actionPerformed(ActionEvent event);
}
然后实例去继承:
public abc implements Actionlistener{
方法的重新;
}
‘肆’ java接口的创建和使用
interfaceShapeArea{
publicfloatgetArea();
}
{
privatefloatx;//长
privatefloaty;//宽
Rectangle(floatx,floaty){
System.out.println(this);
this.x=x;
this.y=y;
}
@Override
publicfloatgetArea(){
//TODOAuto-generatedmethodstub
System.out.println((float)(x*y));
return(float)(x*y);
}
}
{
Square(floatx,floaty){
super(x,y);
//TODOAuto-generatedconstructorstub
}
}
{
privatefloatr;//半径
Circle(floatr){
this.r=r;
}
@Override
publicfloatgetArea(){
//TODOAuto-generatedmethodstub
System.out.println((float)(Math.PI*r*r));
return(float)(Math.PI*r*r);
}
}
publicclassTest{
publicstaticvoidmain(String[]args){
newSquare(2,2).getArea();
newCircle(2).getArea();
}
}
‘伍’ java定义接口时需要使用的关键字是
interface
java定义接口时需要使用的关键字是interface。Java 接口的定义方式与类基本相同,不过接口定义使用的关键字是 interface,接口的主要用途就是被实现类实现,一个类可以实现一个或多个接口,继承使用 extends 关键字,实现则使用 implements 关键字。因为一个类可以实现多个接口,这也是 Java 为单继承灵活性不足所作的补充。java定义接口时需要使用的关键字是interface。
(5)java创建接口扩展阅读:
Java接口和Java抽象类最大的一个区别,就在于Java抽象类可以提供某些方法的部分实现,而Java接口不可以,这大概就是Java抽象类唯一的优点吧,但这个优点非常有用。
如果向一个抽象类里加入一个新的具体方法时,那么它所有的子类都一下子都得到了这个新方法,而Java接口做不到这一点,如果向一个Java接口里加入一个新方法,所有实现这个接口的类就无法成功通过编译了,因为你必须让每一个类都再实现这个方法才行,这显然是Java接口的缺点。
‘陆’ java怎么定义一个接口
java中接口的定义和接口的实现
1.接口的定义
使用interface来定义一个接口。接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成。定义接口的基本格式如下:
[修饰符] interface 接口名 [extends 父接口名列表]{
[public] [static] [final] 常量;
[public] [abstract] 方法;
}
修饰符:可选,用于指定接口的访问权限,可选值为public。如果省略则使用默认的访问权限。
接口名:必选参数,用于指定接口的名称,接口名必须是合法的Java标识符。一般情况下,要求首字母大写。
extends 父接口名列表:可选参数,用于指定要定义的接口继承于哪个父接口。当使用extends关键字时,父接口名为必选参数。
方法:接口中的方法只有定义而没有被实现。
例如,定义一个用于计算的接口,在该接口中定义了一个常量PI和两个方法,具体代码如下:
1 public interface CalInterface
2 {
3 final float PI=3.14159f;//定义用于表示圆周率的常量PI
4 float getArea(float r);//定义一个用于计算面积的方法getArea()
5 float getCircumference(float r);//定义一个用于计算周长的方法getCircumference()
6 }
注意:
与Java的类文件一样,接口文件的文件名必须与接口名相同。
2.接口的实现
接口在定义后,就可以在类中实现该接口。在类中实现接口可以使用关键字implements,其基本格式如下:
[修饰符] class <类名> [extends 父类名] [implements 接口列表]{
}
修饰符:可选参数,用于指定类的访问权限,可选值为public、abstract和final。
类名:必选参数,用于指定类的名称,类名必须是合法的Java标识符。一般情况下,要求首字母大写。
extends 父类名:可选参数,用于指定要定义的类继承于哪个父类。当使用extends关键字时,父类名为必选参数。
implements 接口列表:可选参数,用于指定该类实现的是哪些接口。当使用implements关键字时,接口列表为必选参数。当接口列表中存在多个接口名时,各个接口名之间使用逗号分隔。
在类中实现接口时,方法的名字、返回值类型、参数的个数及类型必须与接口中的完全一致,并且必须实现接口中的所有方法。例如,编写一个名称为Cire的类,该类实现5.7.1节中定义的接口Calculate,具体代码如下:
1 public class Cire implements CalInterface
2 {
3 public float getArea(float r)
4 {
5 float area=PI*r*r;//计算圆面积并赋值给变量area
6 return area;//返回计算后的圆面积
7 }
8 public float getCircumference(float r)
9 {
10 float circumference=2*PI*r; //计算圆周长并赋值给变量circumference
11 return circumference; //返回计算后的圆周长
12 }
13 public static void main(String[] args)
14 {
15 Cire c = new Cire();
16 float f = c.getArea(2.0f);
17 System.out.println(Float.toString(f));
18 }
19 }
在类的继承中,只能做单重继承,而实现接口时,一次则可以实现多个接口,每个接口间使用逗号“,”分隔。这时就可能出现常量或方法名冲突的情况,解决该问题时,如果常量冲突,则需要明确指定常量的接口,这可以通过“接口名.常量”实现。如果出现方法冲突时,则只要实现一个方法就可以了。下面通过一个具体的实例详细介绍以上问题的解决方法。
‘柒’ java创建接口编程怎么写代码
interface Bike{
public void radio();
}
interface Car{
public void tv();
}
interface Dt{
public void music();
}
public class InterfaceDemo implements Bike,Car,Dt{
public void radio() {
System.out.println("可以听广播");
}
public void tv() {
System.out.println("可以看电视");
}
public void music() {
System.out.println("可以听音乐");
}
public static void main(String args[])
{
InterfaceDemo m=new InterfaceDemo();
m.radio();
m.tv();
m.music();
}
}
‘捌’ java 关于接口的创建
你如果要把Test和接口建在一个包里面,那么就不需要import
要用的话先编译Aaa。java文件,将其放在一个a(包名)文件夹下面,然后在a所在的路径下下面编译Test,将Test.java放在与a同文件夹下面。注意,javac的当前目录一定要在a文件夹所在的目录。
‘玖’ java如何写一个接口
非常简单,基础语法:
public interface 接口名 {
常量定义;
抽象方法定义;
default 方法定义;
}
即使你在接口中不定义任何方法,也是可以的。
‘拾’ java如何创建一个简单的http接口
1.修改web.xml文件
<!-- 模拟HTTP的调用,写的一个http接口 --> <servlet> <servlet-name>TestHTTPServer</servlet-name> <servlet-class>com.atoz.http.SmsHTTPServer</servlet-class> </servlet> <servlet-mapping> <servlet-name>TestHTTPServer</servlet-name> <url-pattern>/httpServer</url-pattern> </servlet-mapping>
2.新建SmsHTTPServer.java文件
package com.atoz.http;
import java.io.IOException; import java.io.PrintWriter;
import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
import com.atoz.action.order.SendSMSAction; import com.atoz.util.SpringContextUtil;
public class SmsHTTPServer extends HttpServlet { private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); PrintWriter out = response.getWriter(); String content = request.getParameter("content"); //String content = new String(request.getParameter("content").getBytes("iso-8859-1"), "utf-8"); String mobiles = request.getParameter("mobiles"); String businesscode = request.getParameter("businesscode"); String businesstype = request.getParameter("businesstype"); if (content == null || "".equals(content) || content.length() <= 0) { System.out.println("http call failed,参数content不能为空,程序退出"); } else if (mobiles == null || "".equals(mobiles) || mobiles.length() <= 0) { System.out.println("http call failed,参数mobiles不能为空,程序退出"); } else { /*SendSMSServiceImpl send = new SendSMSServiceImpl();*/ SendSMSAction sendSms = (SendSMSAction) SpringContextUtil.getBean("sendSMS"); sendSms.sendSms(content, mobiles, businesscode, businesstype); System.out.println("---http call success---"); } out.close(); }
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }
3.调用http接口
String content = "测试"; content = URLEncoder.encode(content, "utf-8"); String url = "http://localhost:8180/atoz_2014/httpServer?content=" + content + "&mobiles=15301895007"; URL httpTest; try { httpTest = new URL(url); BufferedReader in; try { in = new BufferedReader(new InputStreamReader( httpTest.openStream())); String inputLine = null; String resultMsg = null; //得到返回信息的xml字符串 while ((inputLine = in.readLine()) != null) if(resultMsg != null){ resultMsg += inputLine; }else { resultMsg = inputLine; } in.close(); } catch (MalformedURLException e) { e.printStackTrace(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
打字不易,望采纳,谢谢