Java教程是为JDK 8编写的。本页中描述的示例和实践不利用后续版本引入的改进,并可能使用不再可用的技术。
有关Java SE 9及后续版本中更新的语言功能的摘要,请参阅Java语言更改。
有关所有JDK版本的新功能、增强功能以及已删除或已弃用选项的信息,请参阅JDK发布说明。
问题1:一个实现了java.lang.CharSequence
接口的类必须实现哪些方法?
答案1: charAt
、length
、subSequence
和toString
。
问题2:下面的接口有什么问题?
public interface SomethingIsWrong { void aMethod(int aValue) { System.out.println("Hi Mom"); } }
答案2:它在接口中有一个方法实现。只有默认方法和静态方法有实现。
问题3:修复问题2中的接口。
答案3:
public interface SomethingIsWrong { void aMethod(int aValue); }
或者,您可以将aMethod
定义为默认方法:
public interface SomethingIsWrong { default void aMethod(int aValue) { System.out.println("Hi Mom"); } }
问题4:下面的接口是否有效?
public interface Marker { }
答案4:是的。不需要方法。空接口可用作类型,并标记不需要任何特定方法实现的类。有关有用的空接口示例,请参阅java.io.Serializable。
练习1:编写一个实现java.lang
包中的CharSequence
接口的类。您的实现应该将字符串反向返回。选择本书中的一个句子作为数据来使用。编写一个小的main
方法来测试您的类;确保调用所有四个方法。
答案1:请参阅CharSequenceDemo.java
练习2:假设您已经编写了一个时间服务器,该服务器周期性地向其客户端通知当前的日期和时间。编写一个接口,服务器可以使用该接口来强制执行特定的协议。
答案2:请参阅TimeClient.java
。