0

Это сложная проблема, поэтому я сделаю все возможное.Проблемы с интерфейсами и параметрами объектов

В основном моя программа имеет два конкретных класса: MovablePoint и MovableCircle. Оба реализуют интерфейс Movable, который имеет четыре метода: moveUp Down left right.

Теперь, когда я застрял в том, что когда я создаю свой MovableCircle, мне нужно использовать переменную экземпляра MovablePoint для представления центра круга. Однако мне также нужен конструктор MovableCircle для выполнения 5 параметров: int x, int y, int xSpeed, int ySpeed, int radius. Первые 4 параметра являются «центром» круга, и они должны быть созданы экземпляром MovablePoint.

Вот что у меня есть:

public class MovableCircle implements Movable { 
private int radius; 
private int y; 
private int x; 
private int xSpeed; 
private int ySpeed; 
public MovablePoint circleCenter; 

public MovableCircle (int x, int y, int xSpeed, int ySpeed, int radius) { 
    this.radius = radius; 
    this.x = circleCenter.getX(); 
    this.y = circleCenter.getY(); 
    this.xSpeed = circleCenter.getxSpeed(); 
    this.ySpeed = circleCenter.getySpeed(); 
} 

Здесь также код MovablePoint, если это помогает:

public class MovablePoint implements Movable{ 
private int x; 
private int y; 
private int xSpeed; 
private int ySpeed; 

public MovablePoint(int x, int y, int xSpeed, 
     int ySpeed) { 
    this.x = x; 
    this.y = y; 
    this.xSpeed = xSpeed; 
    this.ySpeed = ySpeed; 
} 

Очевидно, есть больше кода, за то, что я писал, но я довольно положительны я правильно закодировали методы класса. Я считаю, что моя проблема заключается в том, что мне нужно создать экземпляр центра MovableCircle с помощью MovablePoint, но я не уверен, как его исправить. Спасибо за вашу помощь, и я прошу прощения, если эта проблема легко решается, и я просто не обращая внимания ..

+1

Кажется, вы можете уменьшить переменные экземпляра для 'MovableCircle' просто' int radius; MovablePoint circleCenter; '. Не нужно дублировать поля, которые уже есть. Вы можете вызвать 'new MovablePoint (x, y, xs, ys);' из конструктора круга. – Thilo

+0

Ах, да, я вижу сейчас, я думаю, что я просто неправильно понял указания, которые мне дали. Спасибо @Thilo – ryan

ответ

1

Как о чем-то вроде:

public class MovableCircle implements Movable { 
    private int radius; 
    private MovablePoint circleCenter; 

    public MovableCircle (int x, int y, int xSpeed, int ySpeed, int radius) { 
     this.radius = radius; 
     this.circleCenter = new MovablePoint(x, y, xSpeed, ySpeed); 
    } 
+0

Спасибо @jas! это определенно помогло – ryan