Java 在对象数组中=所有元素都相同。。。分配数据后
例如,如果我创建对象的数组 和正在处理的数据 问题的简短版本。 数组[0]。初始化(“ce”,2) 数组[1]。init(“nh”,2) 输出。。。数组[0] 将与数组[1]相同 但是为什么呢?怎么了?我需要。。不一样的结果 以下是代码:Java 在对象数组中=所有元素都相同。。。分配数据后,java,arrays,object,Java,Arrays,Object,例如,如果我创建对象的数组 和正在处理的数据 问题的简短版本。 数组[0]。初始化(“ce”,2) 数组[1]。init(“nh”,2) 输出。。。数组[0] 将与数组[1]相同 但是为什么呢?怎么了?我需要。。不一样的结果 以下是代码: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; import java.lang.Math; public class Gra_ul
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.lang.Math;
public class Gra_ulamki {
/**
* @param args the command line arguments
*/
public static ulamek[] tab_ulamkow;
public static void main(String[] args)
{
tab_ulamkow = new ulamek[30];
tab_ulamkow[0] = new ulamek();
tab_ulamkow[0].init("dd", 5);
tab_ulamkow[1] = new ulamek();
tab_ulamkow[1].init("dde", 8);
System.out.println("poz x --" + tab_ulamkow[0].x + "-- y poz " + tab_ulamkow[0].y);
System.out.println("poz x --" + tab_ulamkow[1].x + "-- y poz " + tab_ulamkow[1].y);
// TODO code application logic here
//new GUI();
//new GUI();
}
}
class ulamek
{
public static String ch_v;
public static int x = 0, y = -5, y_max = 325;
public void init(String a, int number)
{
this.ch_v = a;
// przypisanie x
this.x = number;
}
public void move()
{
// restart pozycji w osi y
if(this.y < y_max)
{
this.y += +1;
}
else
{
this.y = -5;
}
}
}
import java.awt.*;
导入java.awt.event.*;
导入javax.swing.*;
导入java.util.*;
导入java.lang.Math;
公共级格拉乌乌兰基{
/**
*@param指定命令行参数
*/
公共静态ulamek[]选项卡_ulamkow;
公共静态void main(字符串[]args)
{
tab_ulamkow=新乌拉梅克[30];
tab_ulamkow[0]=新的ulamek();
tab_ulamkow[0]。初始(“dd”,5);
tab_ulamkow[1]=新的ulamek();
tab_ulamkow[1]。初始(“dde”,8);
System.out.println(“poz x--”+tab_-ulamkow[0].x+“--y-poz”+tab_-ulamkow[0].y);
System.out.println(“poz x--”+tab_-ulamkow[1].x+“-y poz”+tab_-ulamkow[1].y);
//此处的TODO代码应用程序逻辑
//新GUI();
//新GUI();
}
}
乌拉梅克类
{
公共静态字符串CHU v;
公共静态整数x=0,y=-5,y_max=325;
公共void init(字符串a,整数)
{
这是chu v=a;
//przypisanie x
x=数字;
}
公开作废动议()
{
//重新启动pozycji w osi y
如果(此.y
感谢您的帮助如果数据成员是静态的,这意味着它由类的所有实例共享:
public static String ch_v;
public static int x = 0, y = -5, y_max = 325;
删除两个
static
修饰符。您的ulamek
类中的字段是static
这意味着它们属于ulamek类型
,而不是实例
(对象)
这样修改:
class ulamek
{
public String ch_v;
public int x = 0, y = -5, y_max = 325;
...
它应该会起作用。在课堂上
ulamek
:
更改:
public static String ch_v;
public static int x = 0, y = -5, y_max = 325;
致:
声明变量或方法静态意味着它的值在所有类中都可用。
static
意味着共享。;)最好不要在构造函数中设置静态字段。你介意回答吗?
public String ch_v;
public int x = 0, y = -5, y_max = 325;