Java: лучший тип для хранения ссылок на сетки - PullRequest
1 голос
/ 10 июня 2009

Я создаю объект на Java. Одним из его атрибутов является ссылка на сетку - целые числа x, y & z.

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

Ответы [ 2 ]

2 голосов
/ 10 июня 2009

Создать класс, похожий на запись, GridReference:

public class GridReference {

    public int x;

    public int y;

    public int z;

}

Вы можете создать его как:

GridReference gridReference = GridReference();

И назначить отдельные значения с помощью:

gridReference.x = 1;
gridReference.y = 0;
gridReference.z = 0;

Доступно через:

gridReference.x;
gridReference.y;
gridReference.z;

Вы можете преобразовать класс в более безопасный объект:

public class GridReference {

    private final int _x;

    private final int _y;

    private final int _z;

    public GridReference(int x, int y, int z) {
        _x = x;
        _y = y;
        _z = z;
    }

    public getX() {
        return _x;
    }

    public getY() {
        return _y;
    }

    public getZ() {
        return _z;
    }

}

И создать его как:

GridReference gridReference = new GridReference(1, 0, 0);

Назначение значений одновременно. К ним можно получить доступ через:

gridReference.getX();
gridReference.getY();
gridReference.getZ();

(Чтобы изменить значения, вам потребуется переназначить ссылку на новую GridReference.)

0 голосов
/ 10 июня 2009

Вы можете использовать для них массив

class MyClass { 
    private final int [] gridRef = new int[3];

    public MyClass( int x, int y, int z ) { 
        gridRef[0] = x;
        gridRef[1] = y;
        gridRef[2] = z;
    }
    public int getX() { 
        return gridRef[0];
    }
    public int getY() { 
        return gridRef[1];
    }
    public int getZ() { 
        return gridRef[2];
    }
}

Это был бы доступ только для чтения к ссылке на сетку.

Я не уверен, что это "лучше", хотя. Чего ты хочешь достичь?

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