+x+ ?

0

Nie ogarniam jednej rzeczy - prosilbym o przetlumaczenie co daje + przed x oraz po x.

'System.out.print("trojkat "+x+", pole");'

Oczywiscie rozumiem ze to zwraca kolejna wartosc z tablicy posiadajacej obiekty trojkat, ale dlaczego to jest zapisane akurat +x+.

Nie wklejam tutaj całego kodu bo wydaje sie to byc zbyteczne. Przedstawiam tylko wyniki po kompilacji.

titlescreenshot-20181212192117.png

1

To znaczy łączenie łańcuchów znaków. Łączysz napis "trójkąt" z numerkiem, a potem z drugim napisem.

2

A kod 5+x+3 rozumiesz?
Operator + jest przeciążony, można go używać nie tylko do dodawania liczb, nadaje się również (jak napisał @jackweb) do łączenia napisów (Stringów). Wystarczy by w wyrażeniu

x1 + x2 + x3 .... + xn

jeden składnik był typu String. Wtedy wszystkie pozostałe są konwertowane na String i łączone.

3
bogdans napisał(a):

Wystarczy by w wyrażeniu

x1 + x2 + x3 .... + xn

jeden składnik był typu String. Wtedy wszystkie pozostałe są konwertowane na String i łączone.

To implikuje, że:

System.out.println(1024 + ',' + "1024");

wypisze "1024,1024", a tak nie jest :)

0

Z kontekstu zrozumiałem, że być może wystarczyłoby +x. Okazało sie, że z tym bledem program dalo rade skompilowac, ale jak najbardziej powinno być +x+.

0

wypisze "1024,1024", a tak nie jest :)

z ciekawosci wrzucilem do programu i wyszlo 10681024 ;O - skad on wzial te 68 i brakuje przecinka.

1

zrób sobie

System.out.println((int)','); 

A się przekonasz:) W tabeli ASCII , ma wartość 44.

Innymi słowami, Java stara się dodać zmienne, które jej podajesz nawet jak są innego typu. Żeby to zrobić musi sobie konwertować typy na takie, które da się ze sobą dodać. Więc jak chcesz dodać int do String to zamieni Ci tego int na String a dopiero potem je doda. A dodawanie Stringów to nic innego jak ich łączenie. Np: "dupa" + "dupa" = "dupadupa". Jeśli zrobisz 2 + "dupa" to tak naprawdę Java wykona "2" + "dupa" i wyjdzie ci "2dupa".

Taka sama zasada jest jak dodajesz typ int i char. W tym wypadku to char zostanie zamieniony na int, a char zamieniony na int to jego "numer" z tablicy ascii. Dla , jest to 44

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