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ę "first.Przedzial@15db9742"

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ł first.Przedzial@15db9742

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