Java 创建新对象时,静态值更改为第一个值
我有两个静态整数值,我正在画微型圆圈,用于在框架上创建字母的数字表示, 每封信我只需要使用class。我的问题是,在Draw类中开始时为X:100 Y:100的坐标在创建对象draw2后具有相同的值,但它应该是X:165 Y:100。在Draw类中,这些数字正在增加。我如何解决这个问题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.
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值,但我尝试了另一个类,它正常工作