Reputation: 916
For Example if I Create array of object And assing data...
short version of problem. array[0].init("ce", 2) array[1].init("nh", 2)
Output... Of array[0] Will be same as array[1] But why? what's wrong? I need.. not same results
Here is code:
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;
}
}
}
Thank You for help
Upvotes: 2
Views: 791
Reputation: 106430
In class ulamek
:
Change:
public static String ch_v;
public static int x = 0, y = -5, y_max = 325;
to:
public String ch_v;
public int x = 0, y = -5, y_max = 325;
Declaring a variable or method static means that its value is available across all classes.
Upvotes: 2
Reputation: 7662
The fields in your ulamek
class are static
's
It means that they belong to the ulamek Type
, and not it's instances
(objects).
Alter it this way:
class ulamek
{
public String ch_v;
public int x = 0, y = -5, y_max = 325;
...
And it should work.
Upvotes: 2
Reputation: 500327
If a data member is static
, this means that it is shared by all instances of the class:
public static String ch_v;
public static int x = 0, y = -5, y_max = 325;
Remove the two static
modifiers.
Upvotes: 6