Kotlin posiada dużo przyjemnych w użyciu "skrótów" w postaci uprzednio przygotowanych struktur znanych z innych języków. Wyrażenie klasowe jakie występuje w języku Kotlin, to tylko jeden z wielu. Zapoznaj się z króciutkim materiałem opisującym co to w ogóle jest wraz z prostym przykładem kodu 🔎!

WYRAŻENIE KLASOWE W JĘZYKU KOTLIN "OPAKOWANIEM" ZBIORU DANYCH

Wiele razy będziesz potrzebować opakowania wielu zmiennych w jeden budulec dla lepszego zorganizowania. Na przykład jakieś dwie (lub więcej) wartości, które dotyczą jakiegoś konkretnego obiektu albo sytuacji w programie. Wtedy przyda Ci się to, co opisujemy - wyrażenie klasowe 😄. Nazywane też anonimowym obiektem, gdyż przypisujemy strukturę bezpośrednio do zmiennej (po znaku przypisania), stąd dobrze jest ją wprowadzić w kodzie w obrębie lokalnym (gdy jest potrzebna tymczasowo).

Wyrażenie klasowe bardzo przypomina strukturę z języka C ("struct"), a to dlatego, że po znaku przypisania i podaniu słowa "object", otwieramy klamerki i wewnątrz nich wprowadzamy zmienne. Brzmi znajomo 🙂?

Przykład kodu źródłowego

Załóżmy, że tworzymy grę i mamy dane dotyczące gracza. Powiedzmy, że są dwie liczby: jedna 1️⃣ oznacza liczbę porządkową (numer) gracza, a druga 2️⃣ liczbę zdobytych punktów po sesji. Wtedy, zamiast pisać na zewnątrz 2 razy "val" lub "var" ("playerOrdinalNumber" i "playerScore") i ryzykować, że mogą być w różnych miejscach kodu oddalone od siebie, możemy zdefiniować wyrażenie klasowe i niejako "związać" te dane jedną strukturą ❤️.

Robimy to tak 👇:

val playerData = object {
	val ordinalNumber = 1
	val score = 5000
}

A wywoływanie? Operator kropki? Wszystko takie same, jak w C 😁. Przykład użycia z "println":

println("Wynik gracza nr ${playerData.number}: ${playerData.score}")

Wyrażenie klasowe może mieć też w sobie funkcje! Postępujemy analogicznie, jak przy klasie – nie ma żadnych "kruczków" 😉. Tak definicja:

val playerData = object {
	val ordinalNumber = 1
	val score = 5000
	
	fun doSomething() {
		
	}
}

a tak wywołanie:

playerData.doSomething()

Wyrażenie klasowe w języku Kotlin jest tożsame z tworzeniem anonimowej klasy wewnętrznej w języku Java, stąd podkreślenie na początku, że jest to przydatne, gdy trzeba coś zdefiniować tymczasowo bądź w jedynym miejscu w kodzie całego programu ℹ️. Kojarzysz metodę "addListener" (albo o podobnej nazwie), a potem klamerki i implementacja metod wymaganych przez interfejs 🤔? To jest dokładnie to samo.

Wyrażenie klasowe w języku Kotlin

Wyrażenie klasowe do złudzenia przypominające "struct" w języku C, służy do opakowywania wielu danych w jeden budulec! Może też posiadać własne funkcje!


Dotarliśmy do końca 🏁! Niby mała rzecz, a będzie dobrze zobaczyć, że wiesz na czym polega organizacja danych 👍.

PODOBNE ARTYKUŁY