Java - char, int konwersji

W Javie dozwolone jest:

char c = 'A' + 1;

Tutaj c będzie zawierać wartość „B”. Powyżej, pierwsze wyrażenie jest oceniane. Zatem „A” zostaje przekonwertowane na 65, całe wyrażenie ma wartość 66, a następnie 66 jest konwertowane na „B”, ponieważ przechowujemy wartość w znaku.

Poniżej podano błąd kompilacji:

char c = 'A';
c = c + 1;

Jakie jest wyjaśnienie, w jaki sposób Java inaczej postrzega wyrażenia? Nawiasem mówiąc, poniższe działa również dobrze:

char c = 'A';
c++;

questionAnswers(4)

yourAnswerToTheQuestion