Operatory klas w Javie, tak jak w C++

0

Jak zrobić w javie coś takiego?

struct klasa
{
klasa operator+(klasa a)
{
//.....
}
}
//....................
klasa a,b,c;
//----------
a=b+c;
 
0

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

0

Nie da się (jedyny przeciążony operator w Javie to String.+(Object), który tak naprawdę jest lukrem dla budowania na StringBuilderze).

0

Zawsze można pisać w C#. ;)

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