Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Java]Problemy z przekazaniem referencji do klasy
Forum PHP.pl > Forum > Przedszkole
eFK
Mam za zadanie stworzyć program odwracający kolejność słów w wyrazie oraz liczb. Obiekt w klasie głównej ma wyglądać tak:

  1.  
  2. Reversible[] revers = new Reversible[] {
  3. new ReversibleString("Cat"),
  4. new ReversibleDouble(2),
  5. new ReversibleDouble(3),
  6. new ReversibleString("Dog"),
  7. new ReversibleString("Alice has a cat and a dog"),
  8. new ReversibleDouble(10)
  9. };
  10.  


Nie mam zielonego pojęcia i nie mogę znaleźć sposobu jak stworzyć do tego klasę która jako referencje przyjmuje np. "Cat", aby użyć to potem w odpowiedniej metodzie. Jakieś pomysły, porady. Będę bardzo wdzięczna za każdą pomoc...
com
Rozwiń myśl bo chyba Cię nie rozumiem, albo pytasz o refleksje wink.gif
eFK
Nie, nie chodzi o reflekcje :-) Chodzi o konstrukcję klas. Mam obiekt, Reversible, który jest tablica kolejnych, różnych obiektów. Potrzebuję teraz stworzyć do tego klasę, która jako pole przyjmuje referencję np: pierwszego z tych obiektów (Cat), aby można było użyć to (Cat) w odpowiedniej metodzie. Gdy stworzę po prostu klasę Reversible, nie jest ona w stanie pobrać RefersibleString, ze względu na zły typ danych.

Nie wiem po prostu jak klasa Reversible powinna/ może wyglądać w tym przypadku...

To może tak, cała główna klasa ma wyglądać tak:
  1. public class ReverseTest {
  2. public static void main(String[] args) {
  3. Reversible[] revers = new Reversible[] {
  4. new ReversibleString("Cat"),
  5. new ReversibleDouble(2),
  6. new ReversibleDouble(3),
  7. new ReversibleString("Dog"),
  8. new ReversibleString("Alice has a cat and a dog"),
  9. new ReversibleDouble(10)
  10. };
  11. System.out.println("Normal:");
  12. for (Reversible r : revers) {
  13. System.out.println(r);
  14. }
  15. for (Reversible r : revers) {
  16. r.reverse();
  17. }
  18. System.out.println("Reversed:");
  19. for (Reversible r : revers) {
  20. System.out.println(r);
  21. }
  22. System.out.println("Restored and changed:");
  23. for (Reversible r : revers) {
  24. /*<- MODIFY HERE */
  25. }
  26. }
  27. }


zadanie ma głównie polegać na użyciu interfejsów, ale aby to zrobić muszę mieć najpierw odpowiednie klasy z polami i metodami. A pola murza przyjmować odpowiednie referencje, które będę "obrabiać :-D) w metodach.

Gdy tworzę klasę Reversible.java, która swoją drogą właśnie nie wiem jaki typ powinna przyjmować do swojego pola, to właśnie kompilator wyrzuca mi błąd o niewłaściwym typie danych (chodzi konkretnie o wszystkie elementy znajdujące się w tablicy Reversible czyli

new ReversibleString("Cat"),
new ReversibleDouble(2), itd...

Gdy nie utworzę klasy Reversible.java, tylko np. ReversibleString.java to kompilator nie rozpoznaje Reversible[], wyrzuca pierwsze miejsce gdzie to się pojawia jako błąd. Nie wiem jak jeszcze inaczej można by do tego zagadnienia aby pobrać np Cat do jakiejś metody?questionmark.gif
viking
Jeśli te poszczególne klasy specjalistyczne zaimplementują ogólny interface Reversible to będą tego typu. Dokładnie tak samo jak w PHP.
eFK
Ha, to taki banał. Jak zwykle zbyt dużo kombinuje. Dzięki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.