我正在编写一个名为Launchable的界面。Launchable接口指定了三个方法:launch(),不带参数且不返回值;isAbleToFly(),不带参数且不返回true或false;以及land(),不带参数且不返回值。
这是我为isAbleToFly尝试的:
public interface Launchable
{
public void launch();
public boolean isAbleToFly();
return true
public void land();
}
但它说非法启动类型返回真的吗?
boolean isAbleToFly()
看起来很好,但您可能不想在接口中声明实现(return true
)。如果您使用的是Java8或更高版本,那么可以为您的方法声明一个默认实现(更多信息见下文)。
您需要创建一个扩展该接口的类,然后才添加实现。如果您想要一种结构,在实现其他方法的同时为某些方法定义一个契约,那么可以看看抽象类。https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html
interface Launchable {
void launch();
boolean isAbleToFly();
void land();
}
class LandThing implements Launchable {
public void launch() {
System.out.println("¯\\_(ツ)_/¯");
}
public boolean isAbleToFly() {
return false;
}
public void land() {
System.out.println("¯\\_(ツ)_/¯");
}
}
class Playground {
public static void main(String[ ] args) {
Launchable landThing = new LandThing();
System.out.println("Can landThing fly?: " + landThing.isAbleToFly());
landThing.land();
}
}
这里有一个可运行的示例
==编辑界面中的默认方法===
对于Java8或更高版本,现在可以为接口声明默认方法,如下例所示。根据文档,用例是在您开发接口时为旧代码提供向后兼容性,因此它可能不是您想要的。
interface Launchable {
void launch();
default boolean isAbleToFly() {
return true;
};
void land();
}
class FlyThing implements Launchable {
public void launch() {
System.out.println("¯\\_(ツ)_/¯");
}
// Notice that we will be using the default implementation of isAbleToFly here
public void land() {
System.out.println("¯\\_(ツ)_/¯");
}
}
class LandThing implements Launchable {
public void launch() {
System.out.println("¯\\_(ツ)_/¯");
}
public boolean isAbleToFly() {
return false;
}
public void land() {
System.out.println("¯\\_(ツ)_/¯");
}
}
class Playground {
public static void main(String[ ] args) {
Launchable landThing = new LandThing();
Launchable flyThing = new FlyThing();
System.out.println("Can landThing fly?: " + landThing.isAbleToFly());
System.out.println("Can flyThing fly?: " + flyThing.isAbleToFly());
landThing.land();
}
}
因此,作为家庭作业,我的任务是编写包含5种静态方法的代码。其中两人要求提供以下内容: “编写一个以整数X为参数的方法,如果X为偶数,则返回true;如果X为奇数,则返回false。” 和 “编写一个以正整数N为参数的方法,如果N是素数,则返回true,否则返回false。假设N 我不清楚我是否需要打印出正确或错误的方法。在我将println添加到方法调用之前,它们显然没有打印。所以我想我有两个问题
我正在使用JavaFX8开发一个Java8桌面应用程序。 我在MainApp类(扩展application类的类)中有这个方法。 我会这样使用它: 有什么方法可以实现这种行为吗?
我试图解决这个问题:编写一个递归方法,返回作为int类型参数传递给它的整数中的位数。允许使用正参数和负参数。例如,-120有三个数字。 这是我的代码,但当我试图通过121时,我总是得到1:
请编写一个名为lastElement的函数,该函数接受单个数组参数。函数应返回数组的最后一个元素(不删除该元素)。如果数组为空,则函数应返回null。 lastElement([3,5,7])//7 lastElement([1])//1 lastElement([])//null 我对最后一部分感到困惑,如果数组为空,函数将返回null。
本文向大家介绍Python实现接受任意个数参数的函数方法,包括了Python实现接受任意个数参数的函数方法的使用技巧和注意事项,需要的朋友参考一下 这个功能倒也不是我多么急需的功能,只是恰好看到了,觉得或许以后会用的到。功能就是实现函数能够接受不同数目的参数。 其实,在C语言中这个功能是熟悉的,虽说实现的形式不太一样。C语言中的main函数是可以实现类似的功能的,可以通过这种方式实现一个支持命令行
我一直在和一个朋友练习面试问题,他把他编的这道题扔给我: 给定一个方法来告诉您一个字符串是否有效,请编写一个方法来获取一个字符串,并返回最长的有效子字符串(而不对字符重新排序)。 > 检查输入字符串 检查的所有子集,使用== 以此类推,直到检查所有长度为1的子集,然后返回false 但不幸的是,我很难理解。 最好的解决方案是在所有子集中进行深度优先的递归迭代,并从那里返回最长的有效字符串吗?