java的record类

record类是JavaSE-16才支持的。
Java的一个record类是一组固定值的不可改变的、透明的载体。
java编译器可以自动为record生成构造函数、为所有字段生成getter函数、自动生成equals(Object obj)、hashCode()、toString()。

代码示例:
定义了一个Circle类,里边没有显式定义任何函数:

package com.thb;

public record Circle(int x, int y, int radius) {}

然后定义了一个Test2 进行调用:

package com.thb;

public class Test2 {	

	public static void main(String[] args) {
		Circle circle = new Circle(0, 0, 2);
		System.out.println("x = " + circle.x());
		System.out.println("y = " + circle.y());
		System.out.println("radius = " + circle.radius());
		System.out.println("circle object: " + circle);	
		
	}
}

输出结果:
在这里插入图片描述

也可以在record类中显示定义构造函数和普通函数:

package com.thb;

public record Circle(int x, int y, int radius) {
	public Circle(int x, int radius) {
		this(x, x, radius);
	}
	
	public double calculateArea() {
		return Math.PI * Math.pow(radius, 2);

	}
}


package com.thb;

public class Test2 {	

	public static void main(String[] args) {
		Circle circle = new Circle(0, 2);
		System.out.println("x = " + circle.x());
		System.out.println("y = " + circle.y());
		System.out.println("radius = " + circle.radius());
		System.out.println("circle object: " + circle);	
		System.out.println("area = " + circle.calculateArea());
		
	}
}

输出结果:
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值