Kompilowanie konstruktorów

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.


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 ()

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

public SynalekBoo(int i, String s) {
  }

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

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

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