передать массив в качестве аргумента - PullRequest
2 голосов
/ 11 ноября 2019

Я пытаюсь передать массив другому классу в качестве аргумента, но продолжаю получать сообщение об ошибке «ошибка: несовместимые типы: точка не может быть преобразована в int []»

первая часть моего кода:

public Circle(int n, int x, int y)
    {
        radius = n;
        counter++;
        center[0] = x;
        center[1] = y;


        Point center = new Point(center);


    }    

Точка - это класс, которому необходимо передать массив.

вторая часть кода:

public class Point 
{
    private int xCord;
    private int yCord;

    public Point (int [] center)

    {
        xCord = center[0];
        yCord = center[1];

Ответы [ 3 ]

1 голос
/ 11 ноября 2019

Это неясно для меня, однако оно должно явно вызывать ошибку в конструкторе класса круга.

center[0] = x; // center is an int array
center[1] = y;
Point center = new Point(center); // ?????
//     ^^^                ^^^^ Duplicate variable names

Исправьте это, изменив имя новой переменной Point.

0 голосов
/ 11 ноября 2019

Вы должны рассмотреть объект здесь. Имя переменной здесь дублируется. Поскольку центральные объекты содержат ссылку на массив, вы не можете сохранить одну и ту же переменную для хранения точечного объекта.

Вы можете соответствующим образом изменить свой код. Прикрепленный вами пример кода

public class Test {

    public static void main(String[] args) {
        Circle(1,2,3);

    }

    static void Circle(int n, int x, int y)
    {   int center[] = new int[2];
        //Do your operation and initialize the array
        center[0] = 25;
        center[1] = 26;
        Point pointObject = new Point(center);

    }   


}


class Point 
{
    private int xCord;
    private int yCord;

    public Point (int [] center)

    {
        xCord = center[0];
        yCord = center[1];

    }
}
0 голосов
/ 11 ноября 2019

Point center = new Point(center);
Дублирующая переменная
Изменить на
Point point = new Point(center);

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