Odwołanie metody obiektu do metody innego obiektu

Odwołanie metody obiektu do metody innego obiektu
TO
  • Rejestracja:ponad 9 lat
  • Ostatnio:26 dni
  • Postów:11
0

Witam,
posiadam obiekt "Panel", a w nim definiowaną metodę "viewStatistic()".

Kopiuj
public class Panel {
    public void viewStatistic() {
        System.out.print("Wood: " + metod1() + " kg");
    }

We wspomnianej metodzie wyświetlam ilość drewna. W klasie "Wood" przechowuje ilość drewna. Jest także zdefiniowana metoda get, zwracająca ilość. Na potrzeby przykładu nazywa się ona: getQuantityWood() .

Co chciałbym zrobić? Użyć tej metody w metodzie innego obiektu, jeszcze nie stworzonego. I pytanie jak?

PS. Jaką komendą mogę wyczyścić konsolę w javie? Jakaś komenda coś jak "cls" w c++.

edytowany 1x, ostatnio: tomasztopolewski
szweszwe
"Użyć tej metody w metodzie innego obiektu, jeszcze nie stworzone." Możesz jaśniej?
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

Nie rozumiem pytania. Musisz mieć referencje do obiektu na którym chcesz wywołać metodę. cls nie jest żadna komendą w c++ tylko programem windowsowym...


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
edytowany 1x, ostatnio: Shalom
TO
  • Rejestracja:ponad 9 lat
  • Ostatnio:26 dni
  • Postów:11
0

Chciałbym użyć metody "getQuantityWood()" w metodzie innego obiektu, w metodzie "viewStatistic()".

Nawiasem: chodziło mi o System("cls");

szweszwe
  • Rejestracja:ponad 11 lat
  • Ostatnio:7 dni
  • Lokalizacja:Kraków
  • Postów:1694
0

No to żaden problem pod warunkiem że masz tam jakiś obiekt klasy Panel na którym tą metodę możesz wywołać.

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
1

@tomasztopolewski no ale rozumiesz chyba że getQuantityWood musi odnosić się do jakiegoś obiektu Panel który ma w sobie ten Wood? Bo przecież mógłbym w programie mieć takich paneli 100 i skądś ten twój drugi obiekt musi wiedzieć o który panel chodzi...


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
TO
  • Rejestracja:ponad 9 lat
  • Ostatnio:26 dni
  • Postów:11
0

@szweszwe dobrze, załóżmy iż taki obiekt istnieje. Jak miałaby wyglądać definicja tej metody. Z użyciem "getQuantityWood()" - przekazuje wartość do wyświetlenia.

@Shalom obiekt Panel będzie istniał tylko jeden, tak samo jak obiekt Wood.

edytowany 1x, ostatnio: tomasztopolewski
szweszwe
  • Rejestracja:ponad 11 lat
  • Ostatnio:7 dni
  • Lokalizacja:Kraków
  • Postów:1694
1

Np tak:

Kopiuj
Klasa {

    metoda(Panel panel) {
        System.out.println("Print " + panel.getQuantityWood());
    }
}
szweszwe
No to jedna z wersji. Zobacz na post @bogdans poniżej. Tam przekazuje obiekt w konstruktorze.
bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
2
Kopiuj
class Main
{
     public static void main(String[] args)
     {
          Panel p = new Panel();
          Wood w = new Wood(p);
          w.method2();
     }
}
class Panel
{
     void method1()
     {
         System.out.println("Panel");
     }
}
class Wood
{
     Panel p;
     Wood(Panel p)
    {
        this.p = p;
    }
    void method2()
    {
        System.out.println("Wood");
        p.method1();
    }
}

P.S. Nie można prosto wyczyścić konsoli.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
edytowany 1x, ostatnio: bogdans
TO
  • Rejestracja:ponad 9 lat
  • Ostatnio:26 dni
  • Postów:11
0

Problem rozwiązany, dzięki :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.