Kompilowanie konstruktorów

Kompilowanie konstruktorów
DO
  • Rejestracja:ponad 6 lat
  • Ostatnio:ponad 5 lat
  • Lokalizacja:Szczecin
  • Postów:14
0

Hej,

mam nowy problem - być może błahy i szybki do rozwiązania, ale chciałbym skompilować bądź przekonać się, że żadna z tych klas bazowej ani potomnej z konstruktorem Boo nie daje się skompilować. W książce są podane rozwiązania tj, jakiego typu błąd wyrzuci nam JVM, ale mi nie zwraca odpoweidzi z książki. W Eclipse i w Netbeans z kolei każe mi wybrać main klasę podczas gdy takiej nie mam, bo przecież książka w swoim programie takowej nie ma. Jak kompilować bez deklarowania klasy głównej? W Notepad++ napisałem pliki Java o takim samym brzmieniu i próbowałem również skompilować w trybie poleceń, ale to również nie działa.bądź nie zwraca mi wyników z książki. Poniżej kod i odpowiedzi jakie być powinny.

Kopiuj

public class Boo { 
  public Boo(int i) {}
  public Boo(String s) {}
  public Boo(String s, int i) {}
}

-----------------------------------

class SynalekBoo extends Boo {
public SynalekBoo() {
super("Boo");
}

  public SynalekBoo(int i) {
    super("Fred");
  }

  public SynalekBoo(String s) {
    super(42);
  }
  
  public SynalekBoo(int i, String s) {
  }

  public SynalekBoo(String a, String b, String c) {
    super(a,b);
  }

  public SynalekBoo(int i, int j) {
    super("facet", j);
  }

  public SynalekBoo(int i, int x, int y) {
    super(i,"start");
  }
}

1 rozwiązanie:

javac SynalekBoo.java
Synalek.Boo.java: : cannot resolve symbol
symbol: constructor Boo (java.lang.String.java.lang.String)

2 rozwiązanie:

javac SynalekBoo.java
Synalek.Boo.java: : cannot resolve symbol
symbol : constructor Boo (int.java.lang.String)

3 rozwiązanie:

javac SynalekBoo.java
Synalek.Boo.java: : cannot resolve symbol
symbol : constructor Boo ()

Kopiuj
PI
  • Rejestracja:ponad 9 lat
  • Ostatnio:5 miesięcy
  • Postów:2787
2

Wszystkie komunikaty masz jak na dłoni :)

  1. Nie znajduje konstruktora (bo go nie ma) klasy Boo z dwoma Stringami - próbujesz to wywołać w super(a,b);

  2. Nie znajduje konstruktora (bo go nie ma) klasy Boo z intem i Stringiem (liczy się kolejność) - próbujesz to wywołać w super(i,"start");

  3. Nie znajduje domyślnego konstruktora (bo go nie ma) klasy Boo (czyli bez argumentów) - jest to wołane domyślnie w

Kopiuj
public SynalekBoo(int i, String s) {
  }

Podczas gdy twoja klasa Boo ma 3 różne konstruktory i żadnych innych:

Kopiuj
public class Boo { 
  public Boo(int i) {}
  public Boo(String s) {}
  public Boo(String s, int i) {}
}
DO
Tak tyle to i ja wydedukowalem. Bardziej interesuje mnie jak skompilowac obydwie klasy by wyszły 3 komunikaty które zapisałem w moim poście tj do których synalkowBoo mam je podpiąć?
PI
nie kapuję chyba - masz tylko jednego synalkaBoo.
DO
i w zaleznosci od tego ktorego SynalkaBoo uzyjesz to takie powinno byc rozwiazanie jak jedno z tych ktore przedstawilem ponizej kodu. Pytanie ktore z informacji wyrzucanych jako blad z JVM pasuje do Synalków Boo? Chciałbym przede wszystkim wiedziec kiedy kompilator wyrzuci constructor Boo (java.lang.String.java.lang.String) a kiedy wyrzuci informacjeconstructor Boo (int.java.lang.String). Niestety ani Eclipse ani Netbeans mi tego nie czytaja bo brakuje glownej metody i poki co nie wiem jeszcze jak mialbym sobie z tym poradzic. Probowalem kompilowac z CMD rowniez.

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.