Можете ли вы показать нам больше кода? Мне кажется, что здесь происходит что-то еще.
int
переменные будут по умолчанию инициализироваться на 0 в Java, и если я использую ваш фрагмент и создаю экземпляр Ghost
, все его int
члены равны 0.
Так что из ваших комментариев, я думаю, что может быть проблема с вашим кодом, например, вы случайно устанавливаете direction
при использовании Ghost.setX
или Ghost.setY
.
В моей чрезвычайно простой реализации класса этот код тестирования работает точно так, как задумано.
Изменено с момента публикации кода
Хорошо, у меня есть класс на основе вашего кода. Я не вижу ничего плохого в других функциях, так как очень немногие классы действительно меняют direction
. Я удалил эти дополнительные функции, потому что они не изменили направление, кроме одной вещи, которая установила бы ее на 0.
Вам следует попробовать очень сокращенный контрольный пример, чтобы проверить, работает ли ваш код. Попробуйте это:
import junit.framework.Assert;
class Ghost
{
private int x, y, direction;
public int getX() { return x; }
public void setX(int x) { this.x = x; }
public int getY() { return y; }
public void setY(int y) { this.y = y; }
public int getDirection() { return direction; }
public void setDirection(int direction) { this.direction = direction; }
public static void main (String [] args)
{
Ghost g = new Ghost();
g.setX(10);
g.setY(20);
Assert.assertEquals(g.getDirection(), 0);
System.out.println(g.getX() + " " + g.getY() + " " + g.getDirection());
}
}
Здесь все еще работает, поэтому попробуйте этот код как есть. Это чисто ваш код, и если он работает (и должен), то есть другой код, например пользователь вашего класса, который что-то делает.
Автономно, ваш код должен нормально работать.
Использование отладчика
Вы знакомы с отладчиком? Если вы используете Eclipse или NetBeans, вы должны быть дружелюбны к использованию отладчиков, интегрированных в их среды. Это действительно должно помочь вам отследить, когда direction
изменит значения, поместив на него часы.
Использование отладчика выходит за рамки этого ответа; это то, что вы действительно должны прочитать и попробовать сами.
Вот ссылка для отладки в Eclipse: