[英]Write a method named isPrime, which takes an integer as an argument and returns true if the argument is a prime number
[英]Writing a method isAbleToFly(), which takes no argument and returns true or false?
我正在編寫一個名為 Launchable 的界面。 Launchable 接口指定了三個方法:launch(),不帶參數,不返回值;isAbleToFly(),不帶參數,返回 true 或 false;land(),不帶參數,不返回值。
這是我為 isAbleToFly 所做的嘗試:
public interface Launchable
{
public void launch();
public boolean isAbleToFly();
return true
public void land();
}
但它說類型的非法開始返回true?
boolean isAbleToFly()
作為接口聲明看起來不錯,但您可能不想在接口中聲明實現( return true
)。 如果您使用的是 Java 8 或更高版本,您可以為您的方法聲明一個默認實現(更多信息如下)。
您將需要創建一個擴展該接口的類,然后才添加實現。 如果您想要一個在實現其他方法的同時為某些方法定義契約的結構,請查看抽象類。 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();
}
}
可運行示例在這里
==== 編輯接口中的默認方法 ===
對於 Java 8 或更高版本,現在您可以為接口聲明默認方法,如下例所示。 根據文檔,用例是在您改進接口時為舊代碼提供向后兼容性,因此它可能不是您想要的。
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();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.