首页 > 其他分享 >004 关键字record

004 关键字record

时间:2022-12-19 19:44:35浏览次数:35  
标签:关键字 pointA return Point int record 004 public

以下这行代码可以写在一个单独的文件Point.java内,也可以写在某个函数内。

 1 record Point(int x, int y) { } 

它等价于如下代码:

 1 class Point {
 2     private final int x;
 3     private final int y;
 4 
 5     Point(int x, int y) {
 6         this.x = x;
 7         this.y = y;
 8     }
 9 
10     int x() { return x; }
11     int y() { return y; }
12 
13     public boolean equals(Object o) {
14         if (!(o instanceof Point)) return false;
15         Point other = (Point) o;
16         return other.x == x && other.y == y;
17     }
18 
19     public int hashCode() {
20         return Objects.hash(x, y);
21     }
22 
23     public String toString() {
24         return String.format("Point[x=%d, y=%d]", x, y);
25     }
26 }

还可以在其内增加成员方法,但不能增加成员变量。

 1 record Point(int x, int y) {
 2 
 3     public static void main(String[] args) {
 4         Point pointA = new Point(3,4);
 5         System.out.println(pointA);
 6 
 7         Point pointB = pointA.move(2,6);
 8         System.out.println(pointB);
 9 
10     }
11 
12     public Point move(int deltaX, int deltaY){
13         return new Point(x()+deltaX, y() + deltaY);
14     }
15 }

上面的代码将输出

Point[x=3, y=4]
Point[x=5, y=10]

更多的内容请参见 https://openjdk.org/jeps/395

标签:关键字,pointA,return,Point,int,record,004,public
From: https://www.cnblogs.com/java369/p/16992947.html

相关文章

  • Java笔记(5)——类的继承、访问控制、super关键字
      在类中,不写构造方法,相当于执行了默认的无参构造方法;写了有参构造方法,则只执行有参构造方法,默认的无参构造方法则会被屏蔽掉;若想拥有有参和无参构造方法,则同时显示地写出......
  • C#中seale关键字用法总结
    1.密封类与密封方法      如果所有的类都可以被继承,那么很容易导致继承的滥用,进而使类的层次结构体系变得十分复杂,这样使得开发人员对类的理解和使用变得十分困难,为......
  • C#之lock关键字 lock锁定语句
    lock下面的示例包含一个lockclassAccount{decimalbalance;privateObjectthisLock=newObject();publicvoidWithdraw(decimalamount)......
  • Java关键字(一)——instanceof
    目录​​1、obj必须为引用类型,不能是基本类型​​​​2、obj为null​​​​3、obj为class类的实例对象​​​​4、obj为class接口的实现类​​​​5、obj为class......
  • 004.查看tomcat版本信息
    查看tomcat版本信息想要查看当前使用的tomcat是哪个版本的,或者想要查看当前tomcat使用的jdk是什么版本的。需要先进入tomcat的文件夹目录,进入bin目录下,执行./version.sh......
  • (转载)C语言中volatile关键字的作用
    一.前言编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,1)在硬件上:引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并......
  • AGC004
    A-DivideaCuboid分三个面切即可,简单取\(\min\)即可。#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<vector>#include<al......
  • KB0004.如何进行DoraCloud版本升级?
     升级过程为:1).现有版本,进入维护模式,导出系统数据。  2).记录现当前版本DoraCloudVM的IP地址,子网掩码、网关、DNS信息,将VM关机。3).安装新版本DoraCloud,在向导的......
  • Python函数/动态参数/关键字参数
     1.函数#函数语法:#函数名规范:小谢字母开头,不同字母下划线隔开(字母数字下划线)#def函数名():#函数体:希望函数做的事情1.1.无参函数#无参函数defmusic():......
  • JavaScript中this关键字使用方法详解
       在面向对象编程语言中,对于this关键字我们是非常熟悉的。比如C++、C#和Java等都提供了这个关键字,虽然在开始学习的时候觉得比较难,但只要理解了,用起来是非常方便和意义......