Tablica referencji

0

Witam

Przepraszam, że zwracam się do Was z takim banałem, ale mimo największych starań nie jestem w stanie sobie poradzić z pewnym zadaniem.

Otóż mam kod:

public class Konstruktor {
    public static void main(String[] args) {
        Klasa1 k1 = new Klasa1("Hello Przeciążony konstruktor");
        Klasa1 k2 = new Klasa1();
    }
}

class Klasa1 {
    Klasa1() {
        System.out.println("Hello Constructor");
    }
    Klasa1(String s) {
        System.out.println(s);
    }
}

I teraz muszę utworzyć tablicę referencji do obiektów klasy, stworzonej w podanym kodzie, ale nie wolno mi tworzyć obiektów w celu przypisania elementom tablicy. Innymi słowy podczas wywoływania programu nie mogą zostać wypisane komunikaty konstruktorów.

Próbowałem

public class Konstruktor {
    public static void main(String[] args) {
        Klasa1[] x = new Klasa1[] {new Klasa1(), new Klasa1("sss")};
    }
}

ale niestety komunikaty są nadal wypisywane.

0

Czyli chodzi po prostu o utworzenie tablicy z pustymi referencjami?

cos takiego?

Klasa1[] tab = new Klasa1[10];
0

Zmienną będącą tablicą referencji tworzysz tak jak to robiłeś:
Klasa1[] tablica = new Klasa1[30];
Tutaj będzie to tablica trzydziestoelementowa. Jest to tablica pustych referencji (null) ponieważ nie ma inicjatora. To co zrobiłeś, to zainicjowałeś klasę elementami, które wywołały swoje konstruktory, skąd wzięły się napisy.
Możesz też wcześniej utworzyć obiekty, które potrzebujesz, a potem użyć inicjatora aby wpisać do tablicy wyłącznie referencje. Np.:

public class Konstruktor {
    public static void main(String[] args) {
        Klasa1 k1 = new Klasa1("Hello Przeciążony konstruktor");
        Klasa1 k2 = new Klasa1();
        Klasa1[] tablica = new Klasa1[30] { k1, k2, k1, k2, k1, k2, k1, k2 };
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1