例如,如果我创建对象数组 并提供数据......
短版问题。 array [0] .init(“ce”,2) array [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_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;
}
}
}
感谢您的帮助
答案 0 :(得分:6)
如果数据成员是static
,这意味着该类的所有实例都共享它:
public static String ch_v;
public static int x = 0, y = -5, y_max = 325;
删除两个static
修饰符。
答案 1 :(得分:2)
ulamek
课程中的字段为static
这意味着它们属于ulamek Type
,而不是instances
(对象)。
以这种方式改变:
class ulamek
{
public String ch_v;
public int x = 0, y = -5, y_max = 325;
...
它应该有用。
答案 2 :(得分:2)
在课程ulamek
中:
变化:
public static String ch_v;
public static int x = 0, y = -5, y_max = 325;
为:
public String ch_v;
public int x = 0, y = -5, y_max = 325;
声明变量或方法静态意味着它的值可用于所有类。