konstruktor

1

Dopiero zaczynam się uczyć, więc proszę o wyrozumiałość.
Mam zadanie, w którym nie mogę nic zmienić w klasie Main. Jak zmienić konstruktor Przedzial, żeby po kompilacji wyszło "Przedział [1,2],"? Obecnie w miejscu p1 otrzymuję "[email protected]"

public class Main {
    public static void main(String[] args) 
    {
    int a1 = 1; 
    int a2 = 2; 
    Przedzial p1 = new Przedzial(a1,a2);
    System.out.println("Przedział " + p1 + ".");        
    }
}
class Przedzial {
    private int pocz, koniec;  
    public Przedzial(int a, int b)
    {
        pocz = a;
        koniec= b;
    }
// metody...    
}
1

Musisz nadpisać metodę toString z klasy Przedzial.

0

Tylko jeśli dobrze rozumiem, tą metodę musiałabym wywołać w klasie Main tak? A nie mogę zmienić kodu w tej klasie, mogę zmienić tylko klasę Przedzial.

Na razie dodałam metodę przedz()

    public void przedz() {
        System.out.println("["+pocz+","+koniec+"]");
    }

i dodałam ja w konstruktorze:

    public Przedzial(int a, int b)
    {
    /*<-  kod konstruktora */
        pocz = a;
        koniec = b;
        przedz();
    }

I wtedy w wyniku mam najpierw przedział a póżniej do samo:
[1,2]
Przedział [email protected]

0

Jeśli się prosi kogoś o pomoc warto by było posłuchać. @szweszwe napisał dobrą odpowiedź. Teraz wystarczy, że poczytasz w internecie po co sie nadpisuję metodę toString().
Jeśli to zrobisz, to wywołujać w mainie:

Przedzial p1 = new Przedzial(a1,a2); System.out.println("Przedział " + p1 + ".");

otrzymasz to co potrzebujesz.

0

Bardzo dziękuję za odpowiedź, udało się. Na początku po prostu nie zrozumiałam.

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