一、概述
在本教程中,我们将了解 Java 中记录类和最终类之间的区别。
2. 什么是记录?
记录类是充当不可变数据透明载体的特殊类。它们是不可变的类(所有字段都是final)并且是隐式的final类,这意味着它们不能被扩展。
在编写记录类时,我们需要牢记一些限制:
记录类声明包括名称、类型参数(如果记录是通用的)、包含记录组件的标头和主体:
public record Citizen (String name, String address) {}复制
然后,Java 编译器会自动生成private、final字段、getter、公共构造函数以及equals、hashCode和toString方法。
此外,我们可以将实例方法以及静态字段和方法添加到记录体中:
public record USCitizen(String firstName, String lastName, String address) {
static int countryCode;
// static initializer
static {
countryCode = 1;
}
public static int getCountryCode() {
return countryCode;
}
public String getFullName() {
return firstName + " " + lastName;
}
}复制
上面的记录包含一个静态字段、一个静态方法和一个实例方法。
3. 什么是期末班?
期末班不能延期。它们使用final关键字声明:
final class Rectangle {
private double length;
private double width;
// Rest of the body
}复制
在这里,我们不能创建另一个扩展Rectangle类的类,因为它是最终类。
4.有什么区别?
记录本身就是最终课程。但是,记录类与常规最终类相比有更多限制。另一方面,记录在某些情况下使用起来更方便,因为它们可以在一行中声明,编译器会自动生成其他所有内容。如果我们需要一个不可变且不会从其他类继承的简单数据载体,我们可以使用记录。
5.总结
在这篇简短的文章中,我们了解了 Java 中记录类和最终类之间的区别。
与往常一样,本教程的完整源代码可在GitHub上获得。
Show Disqus Comments
Post Directory
扫码关注公众号:Taketoday
发送 290992
即可立即永久解锁本站全部文章