TM Android Flashcards
Do czego służy słówko losowe super?
W kontekście dziedziczenia służy do wywoływania metod i konstruktorów zwojej superKlasy, czyli klasy nadrzędnej.
W jaki sposób dziedziczyć 2 klasy wyżej?
Należy w klasie, z której dziedziczymy stworzyć etykietę:
e@funkcja
A w klasie dziedziczącej wywołać:
Super e@ funkcja.
Co oznacza open?
Oznacza, że metoda jest publiczna i może być nadpisywana przez klasy dziedziczące.
Jaka domyślnie jest klasa?
Final, to oznacza, że metoda jest prywatna i nie może być nadpisywana przez klasy dziedziczące.
Co oznacza override?
Oznacza nową implementację już istniejącej metody.
Czy jeżeli metoda jest open to można dziedziczyć wszystkie jej instancje?
Nie, można dziedziczoną metodę opisać:
final override funkcja().
Czy dziedzicząc można zmieniać takie cechy metody jak val/var czy parametry?
Tak, można zamieniać val z var i na przykład i: Int get() na i: Int=0.
Czy powinno się podczas dziedziczenia korzystać z możliwości zmiany rodzaju zmiennej i dostępności?
Nie, są to antywzorce.
Czy nazwa interfejsu wyróżnia się czymś poza poprzedzającego ją słówka interface?
Tak, powinna się zaczynać od dużej litery I, np. IFigura.
Jakie mamy widoczności składników?
Public
Private
Protected
Internal
Co oznacza widoczność internal?
Oznacza widoczność jedynie w obrębie modułu.
Czym jest funkcja rozszerzająca?
Funkcja ta może dołożyć funkcjonalność do metody podczas jej deklaracji, tak że ta funkcjonalność nie będzie dziedziczna:
fun Funkcja.nowyAtrybut():jegoTyp =
this.get(this.lenght-1)
Czym jest enum?
Jest miękkim słowem kluczowym oznaczającym funkcję wyliczeniową.
Może zawierać metody, a jej główną cechą jest zapewnienie, że enum class Kolor{} przyjmie tylko jedną ze zdefiniowanych wewnątrz wartości.
Czym jest object?
Singleton, który tworzy instancję klasy anonimowej.
object Dyrektor{
private val nazwisko=”Kowal”
fun przedstawSie(){}
}
Czym są klasy danych?
Klasy przechowujące jedynie dane.
Czym są typy generyczne?
Typ klasy, której składowe mogą być różnymi typami danych.
Podaj składnię klasy typu generycznego i deklaracji jej zmiennych.
class nazwa<T>(var zawartość: T)
val zmiennaInt = zmienna<int>(1)</int></T>
Podaj składnię generycznego typu klasy ograniczającą typy do numerycznych.
class nazwa<T: Number(var zawartość: T)
Jak wygląda deklaracja klasy dziedziczącej po innej klasie i implementującej interfejs trzeciej klasy?
class nazwa : 2klasa(), 3klasa.interfejs
Jak wygląda kod deklarujący przycisk?
val przycisk: Button = findViewById(R.id.button)
Jak wygląda kod ustawiający listener na przycisk w klasie?
przycisk.setOnClickListener(this)
Jak wygląda delegacja klasy do konstruktora podczas dziedziczenia?
Chodzi o () w:
class klasa : 2klasa()
Jak zdefiniować UI i czy bez tego można używać funkcji front endowych?
Bez zdefiniowania aplikacja rzuca wyjątek, a definicja wygląda tak:
setContentView(R.layout.activity_main)
Czym jest smart cast?
Funkcja kotlina automatycznie rzutująca zmienna do odpowiedniego typu.