gpt4 book ai didi

java - Java 日历类中不影响其他对象的静态变量

转载 作者:行者123 更新时间:2023-12-02 03:23:19 26 4
gpt4 key购买 nike

既然Java中的Calendar类有DATE等静态数据字段,为什么修改静态字段时其他对象不会改变呢?我制作了两个不同的公历,并认为静态数据字段更改了所有对象的值,而不是一个。

import java.util.Calendar;
import java.util.GregorianCalendar;

public class TEST {
public static void main(String[] args) {

GregorianCalendar cal = new GregorianCalendar();

System.out.println(cal.get(Calendar.DATE));

GregorianCalendar cal2 = new GregorianCalendar();

cal2.set(Calendar.DATE, 12);

System.out.println(cal2.get(Calendar.DATE));
System.out.println(cal.get(Calendar.DATE));

}
}

最佳答案

Calendar.DATE不是静态字段,它是一个静态变量,用于引用您想要在特定 Calendar 实例中设置/获取哪种类型的值。

如果你看actual source code of java.util.Calendar您会看到它有一个内部 int 数组,用于保存所有值,即日、月、年等。

Calendar.DATE 只是引用该数组的第五个元素的好方法。

<小时/>

Java 8 源代码中的成员声明。

/**
* Field number for <code>get</code> and <code>set</code> indicating the
* day of the month. This is a synonym for <code>DAY_OF_MONTH</code>.
* The first day of the month has value 1.
*
* @see #DAY_OF_MONTH
*/
public final static int DATE = 5;

关于java - Java 日历类中不影响其他对象的静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39321813/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com