Java在线运行

版本:

所属目录
点击了解高性能代码运行API
运行结果
教程手册
代码仓库
极速运行
终端运行
图形+终端

                        
以下是用户最新保存的代码
PoC链,为主类 发布于:2024-09-20 19:52 保存一版本 发布于:2024-09-19 20:04 链表的简单实现 发布于:2024-09-19 17:26 为了实现这个需求,我们需要编写一个 Java 方法来找出使表达式 x[i] - x[i+1] + x[i+2] - ... 结果最接近数组中位数的索引 i。如果有多个索引满足条件,则返回最大的索引。 发布于:2024-09-18 19:15 测试ibus协议校验码 发布于:2024-09-18 13:43 ## 测试代码-打印乘法口诀 发布于:2024-09-12 17:22 我的世界模组编辑 发布于:2024-09-09 20:32 以太网连接 发布于:2024-09-10 21:06 map的使用方法,遍历 发布于:2024-09-02 19:59 插入排序算法 发布于:2024-09-02 13:45 选择排序算法 发布于:2024-09-02 13:44 基准值最大值的快速排序 发布于:2024-09-01 16:56 基准值最小处的快速排序 发布于:2024-09-01 16:37 冒泡排序算法 发布于:2024-09-03 10:58 裁剪绳子(饿了么) 发布于:2024-08-30 16:14 选择排序法 发布于:2024-08-29 20:17 java理练代码 发布于:2024-08-27 14:29 选择排序测试 发布于:2024-08-27 14:33 调用equals方法 发布于:2024-08-25 14:38 输出100以内,除了末尾为3,5,7的整数 发布于:2024-08-25 13:43 递归算阶乘 发布于:2024-08-24 15:02 定义一个方法并运用 发布于:2024-08-24 14:13 年薪计算器 发布于:2024-08-24 14:00 19、最长子字符串 发布于:2024-08-20 16:44 首尾标记法 发布于:2024-08-20 10:21 大疆2 无人机规划飞行策略 时间限制:3000MS589824KB内存限制:题目描述:你负责设计一套无人机的路径规划算法。无人机需要从起点飞到终点,并且在飞行过程中需要经过若干个中继站点。每个站点之间有一定的距离,且无人机的电池续航有限,每次飞行的距离不能超过电池的最大续航距离D。你的任务是找到一条从起点到终点的路径,使得经过的中继站点数量最少。 输入描述 一个长度为n的数组 stations:第一行为一个整数n,接下来一行为n个空格分隔的整数,表示每个中鲚烹掳戍揳謙斋点到起点的距离。一个整数 D,表示无人机的最大续航距离。 输出描述 一个整数,表示从起点到终点的最少中继站点数量。如果无法到达终点,返回-1 发布于:2024-08-18 19:33 数组的查找 发布于:2024-08-15 21:17 8、cpu算力分配 发布于:2024-08-15 17:30 5、API负载统计 发布于:2024-08-13 17:26 测试 List<Integer>.get方法 发布于:2024-08-10 12:34 测试代码块 发布于:2024-08-07 11:35 讯飞星火编写的聊天平台 发布于:2024-08-06 21:37 自动门 校验码 发布于:2024-08-06 10:27 JAVA链表实现 发布于:2024-08-02 13:53 20240801额度策略 发布于:2024-08-01 20:13 递归实现斐波那契数和猴子吃桃问题 发布于:2024-07-31 18:01 测试时间取整 发布于:2024-07-31 16:19 封装性1,动物 发布于:2024-07-31 14:38 ## Java场景编程题: **三个运动员一起赛跑,裁判员等待3秒打响发令枪,运动员同时开始赛跑,使用sleep随机数来模拟赛跑过程,等待所有运动员都抵达终点后统计运动员排名。** 解析:考察JUC工具类的使用,题目拆解如下: 1. 三个运动员一起赛跑可使用多线程模拟 2. 等待裁判员发令同时开始赛跑可以使用CountDownLatch countDown() 从1减少至0时,唤醒线程同时开始执行任务 3. sleep随机数使用Random类的nextInt函数 4. 等待所有运动员抵达终点使用CountDownLatch count = 线程总线,在每个线程中 countDown() 自减1,减至0代表所有线程运行完成 5. 统计运动员排名使用冒泡排序法对运动员成绩进行排名 发布于:2024-07-30 16:59 致远上传文件demo 发布于:2024-07-30 09:29 String resourceName = "products/iaAmyXG935"; String expirationTime ="2524371328"; String signatureMethod = SignatureMethod.MD5.name().toLowerCase(); String accessKey = "OUdkSFZtb29oUnA0TlFIWGVLRk5Icng2U1VlbElOUE4="; 发布于:2024-07-30 05:41 # 测试scanner代码的 发布于:2024-07-26 10:13 去除文件名的后缀<br/> .doc<br/> .docx<br/> .xls<br/> 等 发布于:2024-07-24 14:52 去除字符串中的空格 发布于:2024-07-24 11:38 项目使用测试 发布于:2024-07-23 17:31 Java字符串分割循环 发布于:2024-07-20 17:30 关于商品的链表实现 发布于:2024-07-19 15:19 des加密 发布于:2024-07-17 10:16 学生管理系统 发布于:2024-07-16 15:21 for循环嵌套/打印一个菱形 发布于:2024-07-10 21:20 [更多]
显示目录

接口



学习嵌入式的绝佳套件,esp8266开源小电视成品,比自己去买开发板+屏幕还要便宜,省去了焊接不当搞坏的风险。 蜂鸣版+触控升级仅36元,更强的硬件、价格全网最低。

点击购买 固件广场

Java 接口


接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。

接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。

除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。

接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在Java中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。

接口与类相似点:

  • 一个接口可以有多个方法。
  • 接口文件保存在.java结尾的文件中,文件名使用接口名。
  • 接口的字节码文件保存在.class结尾的文件中。
  • 接口相应的字节码文件必须在与包名称相匹配的目录结构中。

接口与类的区别:

  • 接口不能用于实例化对象。
  • 接口没有构造方法。
  • 接口中所有的方法必须是抽象方法。
  • 接口不能包含成员变量,除了static和final变量。
  • 接口不是被类继承了,而是要被类实现。
  • 接口支持多重继承。

接口的声明

接口的声明语法格式如下:

[可见度] interface 接口名称 [extends 其他的类名] {
        // 声明变量
        // 抽象方法
}

Interface关键字用来声明一个接口。下面是接口声明的一个简单例子。

/* 文件名 : NameOfInterface.java */
import java.lang.*;
//引入包

public interface NameOfInterface {
   //任何类型 final, static 字段
   //抽象方法
}

接口有以下特性:

  • 接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字。
  • 接口中每一个方法也是隐式抽象的,声明时同样不需要abstract关键子。
  • 接口中的方法都是公有的。

实例

/* 文件名 : Animal.java */
interface Animal {

   public void eat();
   public void travel();
}

接口的实现

当类实现接口的时候,类要实现接口中所有的方法。否则,类必须声明为抽象的类。

类使用implements关键字实现接口。在类声明中,Implements关键字放在class声明后面。

实现一个接口的语法,可以使用这个公式:

... implements 接口名称[, 其他接口, 其他接口..., ...] ...

实例

/* 文件名 : MammalInt.java */
public class MammalInt implements Animal{

   public void eat(){
      System.out.println("Mammal eats");
   }

   public void travel(){
      System.out.println("Mammal travels");
   } 

   public int noOfLegs(){
      return 0;
   }

   public static void main(String args[]){
      MammalInt m = new MammalInt();
      m.eat();
      m.travel();
   }
}

以上实例编译运行结果如下:

Mammal eats
Mammal travels

重写接口中声明的方法时,需要注意以下规则:

  • 类在实现接口的方法时,不能抛出强制性异常,只能在接口中,或者继承接口的抽象类中抛出该强制性异常。
  • 类在重写方法时要保持一致的方法名,并且应该保持相同或者相兼容的返回值类型。
  • 如果实现接口的类是抽象类,那么就没必要实现该接口的方法。

在实现接口的时候,也要注意一些规则:

  • 一个类可以同时实现多个接口。
  • 一个类只能继承一个类,但是能实现多个接口。
  • 一个接口能继承另一个接口,这和类之间的继承比较相似。

接口的继承

一个接口能继承另一个接口,和类之间的继承方式比较相似。接口的继承使用extends关键字,子接口继承父接口的方法。

下面的Sports接口被Hockey和Football接口继承:

// 文件名: Sports.java
public interface Sports {
   public void setHomeTeam(String name);
   public void setVisitingTeam(String name);
}

// 文件名: Football.java
public interface Football extends Sports {
   public void homeTeamScored(int points);
   public void visitingTeamScored(int points);
   public void endOfQuarter(int quarter);
}

// 文件名: Hockey.java
public interface Hockey extends Sports {
   public void homeGoalScored();
   public void visitingGoalScored();
   public void endOfPeriod(int period);
   public void overtimePeriod(int ot);
}

Hockey接口自己声明了四个方法,从Sports接口继承了两个方法,这样,实现Hockey接口的类需要实现六个方法。

相似的,实现Football接口的类需要实现五个方法,其中两个来自于Sports接口。


接口的多重继承

在Java中,类的多重继承是不合法,但接口允许多重继承,。

在接口的多重继承中extends关键字只需要使用一次,在其后跟着继承接口。 如下所示:

public interface Hockey extends Sports, Event

以上的程序片段是合法定义的子接口,与类不同的是,接口允许多重继承,而 Sports及 Event 可能定义或是继承相同的方法


标记接口

最常用的继承接口是没有包含任何方法的接口。

标识接口是没有任何方法和属性的接口.它仅仅表明它的类属于一个特定的类型,供其他代码来测试允许做一些事情。

标识接口作用:简单形象的说就是给某个对象打个标(盖个戳),使对象拥有某个或某些特权。

例如:java.awt.event包中的MouseListener接口继承的java.util.EventListener接口定义如下:

package java.util;
public interface EventListener {}

没有任何方法的接口被称为标记接口。标记接口主要用于以下两种目的:

  • 建立一个公共的父接口:

    正如EventListener接口,这是由几十个其他接口扩展的Java API,你可以使用一个标记接口来建立一组接口的父接口。例如:当一个接口继承了EventListener接口,Java虚拟机(JVM)就知道该接口将要被用于一个事件的代理方案。

  • 向一个类添加数据类型:

    这种情况是标记接口最初的目的,实现标记接口的类不需要定义任何接口方法(因为标记接口根本就没有方法),但是该类通过多态性变成一个接口类型。

由JSRUN为你提供的Java在线运行、在线编译工具
        JSRUN提供的Java 在线运行,Java 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。
yout