Как связать объект друг с другом с помощью Java - PullRequest
0 голосов
/ 04 марта 2019

У меня есть классы ниже, и у него есть несколько объектов.Мне нужно связать эти объекты друг с другом, используя java.

class Test{
    int value = 0;

    public Test(int value){
        this.value = value;
    }

    public static void main(String[] arg){
        //creating three objects
        Test test1 = new Test(10);
        Test test2 = new Test(60);
        Test test3 = new Test(80);
    }
}

Как я могу связать объекты test1, test2, test3 друг с другом?.

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

«Ссылки» называются ссылками в Java.Если объект должен указывать на другой объект, ему нужно поле для хранения этой ссылки как части его внутреннего состояния.

Поле должно быть того же типа, что и класс.Вы можете заполнить это поле через установщик, через конструктор и т. Д.

class Test{
    int value = 0;
    Test neighbour;

    public Test(int value){
        this.value = value;
    }

    public void setNeighbour(Test neighbour) {
        this.neighbour = neighbour;
    }

    public static void main(String[] arg){
        //creating three objects
        Test test1 = new Test(10);
        Test test2 = new Test(60);
        Test test3 = new Test(80);

        test3.setNeighbour(test2);
    }
}

test3 теперь имеет «ссылку» на test2 и может вызывать его методы.

0 голосов
/ 04 марта 2019

Если вы хотите один связанный список:

public class Test {

    private int value = 0;

    private Test next;

    public Test(int value){
        this(value, null);
    }

    public Test(int value, Test next){
        this.value = value;
        this.next = next;
    }

    public int getValue() {
        return value;
    }

    public void setValue(int value) {
        this.value = value;
    }

    public Test getNext() {
        return next;
    }

    public void setNext(Test next) {
        this.next = next;
    }

    public static void main(String[] arg){
        Test test1 = new Test(10);

        // via constructor
        Test test2 = new Test(60, test1);

        // via setter
        Test test3 = new Test(80);
        test3.setNext(test2);

        System.out.println(test3.getNext().getNext().getValue());
    }
}

В этом примере 'next' - это ссылка на объект Test.Вы можете назначить значение для ссылки через конструктор или метод установки.

Объект является экземпляром класса или массивом.

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

Обратите внимание, что test1, test2, test3 также являются ссылками.Оператор 'new' создает новый экземпляр класса Test и возвращает ссылку на созданный объект.

Если ваша цель не заключается в создании самой структуры связанного списка, просто используйте LinkedList или любую другую коллекциюот JDK.

...