This question already has answers here:
What's the difference between primitive and reference types?
(8个答案)
6年前关闭。
我弄乱了Java的Point2D.Double类,并遇到了一些问题,这些问题首先设置为等于另一个时更改了点的值。
这是Point在Java中的工作方式:
该代码的输出为:
注意,即使仅更改的点是point1,point2仍以值[0.0,0.0]结尾。
这再次是相同的代码,但带有原始整数:
该代码的输出为:
这样,似乎只有Point2D类在各个类之间都带有值。 setLocation函数的Point2D文档显示为:
将此Point2D的位置设置为指定的双精度坐标。
注意这个词
我实际上可以使用以下代码解决此问题:
但我仍然想了解为什么Point2D类以这种方式工作,还有哪些其他类具有相同的属性。
感谢您的阅读,我期待阅读您的回复。
您仅在创建一个“指针”,该指针指向SAME存储器作为第一个对象。
在第二个示例中,您将创建Point对象的两个不同实例。
请看我绘制不好的图像。
(8个答案)
6年前关闭。
我弄乱了Java的Point2D.Double类,并遇到了一些问题,这些问题首先设置为等于另一个时更改了点的值。
这是Point在Java中的工作方式:
/** Testing with Points */
System.out.println("Points: ");
// Create a new point:
Point2D.Double point1 = new Point2D.Double(1, 1);
System.out.println(point1);
// Create another new point, based on the old point
Point2D.Double point2 = point1;
System.out.println(point2);
// Change point1, print both again.
point1.setLocation(0, 1);
System.out.println(point1);
System.out.println(point2);
该代码的输出为:
Points: Point2D.Double[1.0, 1.0]Point2D.Double[1.0, 1.0]Point2D.Double[0.0, 1.0]Point2D.Double[0.0, 1.0]
注意,即使仅更改的点是point1,point2仍以值[0.0,0.0]结尾。
这再次是相同的代码,但带有原始整数:
/** Testing with Integers */
System.out.println("Integers: ");
// Create a new integer (primitive)
int integer1 = 1;
System.out.println(integer1);
// Create another new integer (primitive), based on the old int.
int integer2 = integer1;
System.out.println(integer2);
// Change integer1, print both again.
integer1 = 0;
System.out.println(integer1);
System.out.println(integer2);
该代码的输出为:
Integers: 1101
这样,似乎只有Point2D类在各个类之间都带有值。 setLocation函数的Point2D文档显示为:
将此Point2D的位置设置为指定的双精度坐标。
注意这个词
我实际上可以使用以下代码解决此问题:
Point2D.Double point2 = new Point2D.Double(point1.x, point1.y);
但我仍然想了解为什么Point2D类以这种方式工作,还有哪些其他类具有相同的属性。
感谢您的阅读,我期待阅读您的回复。
最佳答案
Point2D.Double是一个类。您只能创建该对象的一个实例。
因此,使用:
Point2D.Double point2 = point1;
您仅在创建一个“指针”,该指针指向SAME存储器作为第一个对象。
在第二个示例中,您将创建Point对象的两个不同实例。
请看我绘制不好的图像。
关于java - 为什么Point2D的值有时表现为静态? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21409657/
10-09 03:18