Metoda ktora stworzy instancje innej klasy

0

Witam, mam spory problem z stworzeniem metody klasy A ktora przy uruchomieniu stworzy instancje klasy B

public void doSomething()
{
ClassB cos = new ClassB();
}

nie dziala, mysle ze scope tej metody jest problemem wiec chcialbym napisac metode dla klasy A ktora bedzie w stanie wyslac wiadomosc do klasy B by ta sama stworzyla swoja instancje. Jest taka mozliwosc?

0

Co znaczy "nie działa"? Kod jest poprawny i stworzy instancję klasy classB, niestety ta instancja będzie nieprzydatna ponieważ zmienna cos jest zmienną lokalną metody doSomething.

1

Otóż to (jak napisał bogdans). Jeżeli chcesz korzystać z instancji klasy B zadeklarowanej i zainicjalizowanej (instancji) w metodzie klasy A poza obrębem tej metody, to musisz skorzystać np. z określenia jaką wartość ma zwracać ta metoda oraz słówka "return". Jeżeli ma to być tylko jeden obiekt będący instancją klasy B, to możesz napisać po prostu:

public class ClassA {

     public static ClassB createInstanceOfClassB() {
          ClassB inst = new ClassB();
          return inst;
     }
     
     public static void main(String args[]) {
          ClassB inst = createInstanceOfClassB();
          inst.writeSomethingOnTheScreen("One Two Three");
     }
}

public class ClassB {
     
     ClassB() {
          System.out.println("In ClassB Constructor");
     }
     
     public void writeSomethingOnTheScreen(String text) {
          System.out.println(text);
     }
}

Konsola oczywiście wypluje dwie linijki tekstu: 1) "In ClassB Constructor" oraz 2) "One Two Three".

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