Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建新对象时,静态值更改为第一个值_Java_Variables_Object_Static - Fatal编程技术网

Java 创建新对象时,静态值更改为第一个值

Java 创建新对象时,静态值更改为第一个值,java,variables,object,static,Java,Variables,Object,Static,我有两个静态整数值,我正在画微型圆圈,用于在框架上创建字母的数字表示, 每封信我只需要使用class。我的问题是,在Draw类中开始时为X:100 Y:100的坐标在创建对象draw2后具有相同的值,但它应该是X:165 Y:100。在Draw类中,这些数字正在增加。我如何解决这个问题 JFrame frame = new JFrame("test"); frame.setVisible(true); frame.setSize(800, 600); frame.

我有两个静态整数值,我正在画微型圆圈,用于在框架上创建字母的数字表示, 每封信我只需要使用class。我的问题是,在Draw类中开始时为X:100 Y:100的坐标在创建对象draw2后具有相同的值,但它应该是X:165 Y:100。在Draw类中,这些数字正在增加。我如何解决这个问题

    JFrame frame = new JFrame("test");
    frame.setVisible(true);
    frame.setSize(800, 600);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Draw draw = new Draw('A');
    frame.add(draw);
    Draw draw2 = new Draw(' ');
    frame.add(draw2);
绘画课

public class Draw  extends JPanel{
boolean[][] letterArray;
static int X = 100, Y = 100;

静态变量绑定到类。与普通成员变量不同,普通成员变量绑定到其所属实例

class ExampleA {
    static int value; // a class member
}

class ExampleB {
    int value;  // an object member
}

ExampleA a1 = new ExampleA(), a2 = new ExampleA();
ExampleA.value = 10;
System.out.println("a1.value=" + a1.value);  // 10
System.out.println("a2.value=" + a2.value);  // 10

a1.value = 25;  // changes ExampleA.value really
System.out.println("a1.value=" + a1.value);  // 25
System.out.println("a2.value=" + a2.value);  // 25

ExampleB b1 = new ExampleB(), b2 = new ExampleB();
b1.value = 5;
b2.value = 10;
System.out.println("b1.value=" + b1.value);  //  5
System.out.println("b2.value=" + b2.value);  // 10

换句话说:
ExampleA
的所有实例共享相同的
变量。但是
ExampleB
的每个实例都有自己的
value
变量。

欢迎使用堆栈溢出。不幸的是,你的描述很不清楚。也不清楚为什么变量是静态的。请发布一个简短但完整的问题演示,并解释您实际试图实现的目标。我必须在课堂上保留cordinate,我的X cordinate必须更改,因为我必须从Draw类创建12个对象,每个对象只创建一个数字字母表示。这是我们的家庭作业,这是我们想要的。我恐怕还不清楚为什么需要静态变量。我将在创建
Draw
对象时指定位置。虽然你现在发布了更多的代码,但它远不是一个简短但完整的程序。这仍然不是一个,你仍然没有正确解释为什么你认为你需要静态变量。主题可以是delete。我正在使用这个属性,但当我创建一个实例时,静态值在这个项目中再次获得100值,但我尝试了另一个类,它正常工作