Метод Publi c для перемещения 3 объектов, но их выравнивание - PullRequest
0 голосов
/ 18 января 2020

Я пытаюсь написать публичные c имена методов экземпляра move ()

Требуется два целочисленных аргумента, которые показывают сумму, необходимую объектам для изменения значений xPos и yPos.

Я не хочу, чтобы метод возвращал значение.

Я сделал это ниже, но получаю следующее сообщение об ошибке?

Компиляция ошибка (18.01.2020 15:16:31) Ошибка: строка 1 - перемещение метода в классе StickFigure не может быть применено к данным типам; Обязательно: аргументы не найдены: int, int Причина: фактические и формальные списки аргументов различаются по длине

Могу ли я получить некоторые указания, в которых я ошибаюсь.

/*Instance variables*/   
 private int xPos;
 private int yPos;

 private Circle head;
 private Triangle body;
 private Rectangle leg;


 public person()
 {
  super(); 
  this.head = new Circle(30, OUColour.PINK);
  this.body = new Triangle (50, 50, OUColour.RED);
  this.leg = new Rectangle (6, 50, OUColour.PINK);
  this.setXPos(25);
  this.setYPos(220);
  this.alignAll();
  }   


  public void setXPos(int newPos)
  {
  this.xPos = newPos;

  this.body.setXPos(newPos);//part (b)(iii)
  }


  public int getXPos()
  {
  return this.xPos; 
  }


  public void setYPos(int newPos)
  {
  this.yPos = newPos;

  this.body.setYPos(newPos);//part (b)(iii)
  }


  public int getYPos()
  {
  return this.yPos;
  }  

  public Circle getHead()
  {
   return this.head;   
}

public Triangle getBody() 
{
   return this.body;   
}

public Rectangle getLeg() 
{
   return this.leg;   
}


public void alignHead() 
{
   this.head.setXPos(this.body.getXPos() + (this.body.getWidth() - this.head.getDiameter())/2);
   this.head.setYPos(this.body.getYPos() - this.head.getDiameter());
  }  

public void alignBody()
{
   this.body.setXPos(25);
   this.body.setYPos(220);
  }

public void alignLeg()
{
   this.leg.setXPos(this.body.getXPos() + (this.body.getWidth() - this.leg.getWidth())/2);
   this.leg.setYPos(this.body.getYPos() + this.leg.getHeight());
  }

public void alignAll()
{
   this.alignBody();
   this.alignHead();      
   this.alignLeg();

  }

   public void move(int newxPos, int newyPos)
   {
   this.body.setXPos(xPos + newxPos);
   this.body.setYPos(yPos + newyPos);
   this.alignAll();
   this.delay(20);
    }

1 Ответ

0 голосов
/ 18 января 2020

Если вы хотите, чтобы метод move принимал аргументы, вы должны объявить его:

public void move(int xPos, int yPos)

вместо

public void move()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...