Java 在实现类的构造函数中使用接口常量

Java 在实现类的构造函数中使用接口常量,java,interface,constants,Java,Interface,Constants,我的老师给了我一个关于我真的不知道如何处理接口的练习。我得到了一个接口,并被告知实现一个实现该接口的类书 类书应该有属性isAvailable、name和rating 我的问题是,在本练习中,当我在main方法中创建book实例时,在构造函数中编写评级时,我需要保证评级的编写方式与在接口中命名的变量相同?如果我写smth,那么这将是一个错误,因为我没有使用我应该使用的接口常量?我不确定我是否理解并实现了book类 public class Book implements BookService

我的老师给了我一个关于我真的不知道如何处理接口的练习。我得到了一个接口,并被告知实现一个实现该接口的类书

类书应该有属性isAvailable、name和rating

我的问题是,在本练习中,当我在main方法中创建book实例时,在构造函数中编写评级时,我需要保证评级的编写方式与在接口中命名的变量相同?如果我写smth,那么这将是一个错误,因为我没有使用我应该使用的接口常量?我不确定我是否理解并实现了book类

public class Book implements BookService {

private String name;
private String rating;
private boolean isAvailable;

private final boolean DEFAULT_AVAILABILITY = true;
private final String DEFAULT_NAME = "default_name";

public Book(String name, String rating, boolean isAvailable) {
    this.name = name;
    this.rating = rating;
    this.isAvailable = isAvailable;
}

public Book() {    
    this.name = DEFAULT_NAME;
    this.rating = DEFAULT_RATING;
    this.isAvailable = DEFAULT_AVAILABILITY;
}

public boolean validateAvailability(){
    return isAvailable;
}
}

public interface BookService{

public static final String ONE_STAR = "*";
public static final String TWO_STARS = "**";
public static final String THREE_STARS = "***";
public static final String FOUR_STARS = "****";
public static final String FIVE_STARS = "*****";
public static final String DEFAULT_RATING = ONE_STAR;
public abstract boolean validateAvailability();  

}

在创建book对象时的main方法中,将BookService.(rating)作为参数传递

例如:

Book myBook = new Book(name, BookService.THREE_STARS, true);
根据您获取输入的方式,您可能希望编写一个开关案例,将用户输入更改为这些常量之一,然后可以执行以下操作

Book myBook = new Book(name, rating, true);

其中“额定值”已指定其中一个常数的值

界面
仅要求您验证可用性。专业提示:将
DEFAULT\u NAME
更改为您教授引用最多的Java书籍,以获得额外分数。