Operator przypisania | Kurs Java

Operator przypisania

Operator przypisania  – Czy wyobrażasz sobie tworzenie aplikacji bez możliwości przypisania wartości do zmiennych?🤔

Nie? Ja też nie. Całe szczęście, że nie muszę sobie tego wyobrażać, ponieważ istnieje coś takiego jak operator przypisania.

W tym materiale przedstawię Ci operator przypisania i jego bardziej złożone wersje.

Java – Operator przypisania – wprowadzenie

Z tego materiału dowiesz się:

  • Czym jest operator przypisania?
  • Jakie występują złożone operatory przypisania?

Klasyczny operator przypisania

Klasyczny operator przypisania to w Javie zwyczajnie „równa się” =.

Operator przypisuje zmiennej po lewej stronie wartość wyrażenia po prawej stronie.

  1. Jeżeli zmienna jest typu prostego, to jej wartość jest zwyczajnie kopiowana.
  2. Jeżeli zmienna jest typu obiektowego, czyli jest referencją, to kopiowana jest sama referencja, a nie obiekt, na który wskazuje. W efekcie takiego przypisania do obiektu kierują dwie referencje zamiast jednej.
    Zmienne typu obiektowego dodatkowo potrafią przechowywać wartość pustą, czyli null.

➡ ZOBACZ 👉: Typy proste
➡ ZOBACZ 👉: Typy obiektowe

Java operator przypisania

Operator przypisania charakteryzuje się tym, że jednocześnie:

  • powoduje przypisanie,
  • oraz – zwraca wartość równą przypisanej wartości.

Jest to szczególnie widoczne, gdy wykorzystamy go do ustawienia wartości dla więcej niż jednej zmiennej np.

int var1 = var2 = 7;

Czyli – 7 zostanie przypisane do var2, a wartość var2 do var1.

Złożone operatory przypisania

Java oferuje również złożone operatory przypisania. Służą one przede wszystkim skróceniu zapisu. Wszystkie operacje można zapisać bez ich wykorzystania, posługując się jedynie zwykłym operatorem przypisania oraz operatorami arytmetycznymi.

Skrócona forma Rozszerzona forma
x += y x = x + y
x -= y x = x – y
x *= y x = x * y
x /= y x = x / y
x %= y x = x % y
x <<= y x = x <<
y x >>= y x = x >> y
x >>>= y x = x >>> y
x &= y x = x & y
x |= y x = x | y
x ^= y x = x ^ y

Operator przypisania – Działanie

Operatory przypisania przetwarzane są od strony prawej do lewej, a wynikiem całej operacji jest przypisywana wartość. Ma to następujące konsekwencje:

  1. Można w jednej linii przypisać wartość dla kilku zmiennych.
    x = y = z = 1;
    

    W efekcie tego przypisania dla wszystkich trzech zmiennych zostanie nadana wartość: 1.
    Odbędzie się to jednak w kilku krokach. Najpierw zostanie wyliczone wyrażenie: z = 1 i całość uprości się do: x = y = 1. Następnie zostanie wyliczone y = 1  i zostanie już tylko wyrażenie: x = 1  , które przypisze ostatniej zmiennej x wartość 1.

  2. Wpływa to na kolejność wykonywania działań, przykładowo wyrażenie:
    x *= 1 + 2
    

    jest równoważne wyrażeniu:

    x = x * (1 + 2)
    

    a nie:

    x = x * 1 + 2
    
    x += 1 = x = x+1
    x -= 2 = x = x-2
    

    W komentarzu rozwinięcie przykładu.

    int x = 3;
    x *= 1 + 2; //9
    		
    // x = x * (1+2);
    // x = x * 3
    // x = 3 * 3
    // x = 9
    

Java – Operator przypisania – podsumowanie

W ramach tego materiału dowiedzieliśmy się, czym jest operator przypisania. Bliżej zapoznaliśmy się z bardziej złożonymi przykładami tego operatora. Jeżeli chcesz kontynuować swoją przygodę z Javą i poznać inne struktury, które oferuję ten język programowania – to zapraszam do kolejnego tematu z serii o Javie. Przedstawię Ci temat stałych – czym są i co je różni od zmiennych.

➡ ZOBACZ 👉: Stałe

Kierunek Java

W serii o Javie zapoznajesz się z podstawowymi tematami o Javie. Jeżeli chcesz bardziej kompleksowo zagłębić się w temat Javy, poczytać, posłuchać o Javie, to zachęcam Cię do zapoznania się z moim kursem „Kierunek Java”:

➡ ZOBACZ 👉: Kierunek Java


20+ BONUSOWYCH materiałów z programowania

e-book – „8 rzeczy, które musisz wiedzieć, żeby dostać pracę jako programista”,
e-book – „Java Cheat Sheet”,
checklista – „Pytania rekrutacyjne”
i wiele, wiele wiecej!

Jak zostać programistą

2 komentarze
Share:

2 Comments

  1. Mateusz says:

    „W efekcie tego przypisania dla wszystkich trzech zmiennych zostanie nadana wartość: 1.
    Odbędzie się to jednak w kilku krokach. Najpierw zostanie wyliczone wyrażenie: x = 1 i całość uprości się do: x = y = 1.”
    A nie, najpierw”z”?
    ” Wpływa to na kolejność wykonywania działań, przykładowo wyrażenie:
    Java
    x *= 1 + 2
    1
    x *= 1 + 2
    jest równoważne wyrażeniu: x = x * (1 + 2) a nie: x = x * 1 + 2 .”
    Można jeszcze jakiś przykład?

    1. Tomek says:

      Cześć Mateusz. Tak, zgadza się. W przykładzie była literówka – zmienna x była dwa razy.
      Już poprawione, dzięki.

      Dodałem też rozwiniecie przykładu z mnożeniem. Najlepiej będzie, jak uruchomisz sobie ten fragment kodu i potestujesz, jakie zwraca wyniki.

      Powodzenia 🙂

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *