Jak zrobić w javie coś takiego?
struct klasa
{
klasa operator+(klasa a)
{
//.....
}
}
//....................
klasa a,b,c;
//----------
a=b+c;
Jak zrobić w javie coś takiego?
struct klasa
{
klasa operator+(klasa a)
{
//.....
}
}
//....................
klasa a,b,c;
//----------
a=b+c;
W Javie nie ma przeładowania operatorów. Tzn. akurat zrobili wyjątek dla operatora + oraz stringów. Obiekty mają metodę toString()
, którą możesz nadpisywać w swoich klasach. I potem gdy napiszesz: System.out.println("Mój obiekt: " + mojObiekt)
, to zostanie odpalona metoda mojObiekt.toString()
i zwrócony przez nią string zostanie doklejony do stringu "Mój obiekt: " i całość będzie wyświetlona na standardowym wyjściu.
Ale to ze stringami to wyjątek. Normalnie, w Javie nie jesteś w stanie przeładowywać sobie operatorów tak jak w C++. Java po prostu nie udostępnia takiej funkcjonalności. Zamiast operatora +
i zapisu a + b
zdefiniuj sobie metodę np. dodaj
i pisz a.dodaj(b)
.
Nie da się (jedyny przeciążony operator w Javie to String.+(Object), który tak naprawdę jest lukrem dla budowania na StringBuilderze).
Zawsze można pisać w C#. ;)