2013-10-07 4 views
1

Я делаю простую программу для перемещения мяча, но, к сожалению, он не двигается, когда я ставлю значения x = 5 и y = 4 после запуска программы, это показывает «Ball @ (0.0,0.0) "на консоли, пожалуйста, помогите, где моя ошибка.делает простой класс шара для движущегося шара, но не движется

public class Ball 
{ 
    private double x,y; //private variables... 

//creating constructors.. 
public void Ball(double x, double y) 
{ 
    this.x=x; 
    this.y=y; 
} 
public void Ball() 
{ 
    x=5.0; 
    y=4.0; 
} 
//getter and setter for private variables.... 
public double getX() 
{ 
    return x; 
} 
public void setX() 
{ 
    this.x=x; 
} 
public double getY() 
{ 
    return y; 
} 
public void setY() 
{ 
    this.y=y; 
} 
public void setXY(double x, double y) 
{ 
    this.x=x; 
    this.y=y; 
} 
public void move(double Xdisp, double Ydisp) 
{ 
    x+=Xdisp; 
    y+=Xdisp; 
} 
public String toString() 
{ 
    return "Ball @ ("+x+","+y+")"; 
} 
public static void main(String[] args) 
{ 
    Ball b=new Ball(); 
    System.out.println(b); 
} 

}

ответ

1

Вы не имеете constructors, таким образом, один по умолчанию который ничего не делает для x и y.

Для того, чтобы иметь то, что вы намеревались, вы должны предоставить конструктор (Вы почти там), просто удалите void модификатор:

общественности недействительным Болл()

сейчас, это конструктор. Обратите внимание, что вы должны сделать то же самое для другого конструктора, который должен быть конструктором.

+0

maroun: thanks :) –

+0

@AnubhavSharma Добро пожаловать :) Рад помочь. – Maroun

1

void Удалить ключевое слово из конструктора Ball, чтобы x и y быть присвоены значения

public Ball() { 
    x = 5.0; 
    y = 4.0; 
} 
+0

ну, вы были правы ... спасибо .. вы можете мне сказать почему? –

+0

Конструкторы не имеют типа возврата, у вас есть метод, который не называется – Reimeus

+0

Reimeus @ thanks :) –

0

public void Ball() Должно быть конструктором.

public Ball() 
{ 
    x=5.0; 
    y=4.0; 
} 

Но вы написали как метод. Также нет никакого параметра в заданном методе, должен быть как

public void setX(double x) 
{ 
    this.x=x; 
} 
public void setY(double y) 
{ 
    this.y=y; 
} 
+0

Нет, это не обязательно .. –

Смежные вопросы