Menu
Coddy logo textTech

Definiowanie klas

Część sekcji Programowanie obiektowe ścieżki Swift w Coddy. Lekcja 2 z 57.

Klasa opisuje rodzaj obiektu: dane, które przechowuje każdy obiekt, oraz to, co może robić. class Dog { ... } deklaruje typ, a Dog() tworzy obiekt tego typu, zwany również instancją:

class Dog {
    var name = "Rex"
    var age = 3
}

let dog = Dog()
print(dog.name)
print(dog.age)

Wynik:

Rex
3

Zmienne wewnątrz klasy to jej właściwości. Każda instancja ma własną kopię, którą można odczytywać i zmieniać za pomocą kropki:

class Dog {
    var name = "Rex"
    var age = 3
}

let first = Dog()
let second = Dog()
second.name = "Bella"
print(first.name)
print(second.name)

Wynik:

Rex
Bella

Funkcja wewnątrz klasy to metoda. Metoda może odczytywać i zmieniać właściwości instancji, na której jest wywoływana:

class Counter {
    var count = 0

    func increment() {
        count += 1
    }

    func report() -> String {
        "count is \(count)"
    }
}

let clicks = Counter()
clicks.increment()
clicks.increment()
print(clicks.report())

Wynik:

count is 2

Nazwy typów zapisuje się w formacie UpperCamelCase (BankAccount); właściwości i metody — w formacie lowerCamelCase (balance, deposit()). Umieszczenie danych i funkcji, które na nich operują, w jednym typie to podstawowa idea programowania obiektowego: kod korzystający z Counter wywołuje increment() i nie musi wiedzieć, w jaki sposób przechowywana jest wartość licznika.

class BankAccount {
    var balance = 0

    func deposit(_ amount: Int) {
        balance += amount
    }
}
challenge icon

Wyzwanie

Łatwy

Uzupełnij metodę describe() klasy Pet. Zwraca ona jedno zdanie zbudowane z właściwości: zwierzę o imieniu Rex, gatunku dog i wieku 3 daje wynik Rex is a 3 year old dog.

Dostarczony kod tworzy obiekt Pet, ustawia jego właściwości na podstawie danych wejściowych (imię, gatunek, wiek) i wyświetla wynik działania describe().

Twój kod należy umieścić w pliku Pet.swift. Plik main.swift zawiera dostarczony kod wejścia/wyjścia i nie można go edytować.

Spróbuj swoich sił

// Dostarczony kod wejścia/wyjścia: pozostaw go bez zmian
var input: [String] = []
while let line = readLine() { input.append(line) }
let pet = Pet()
pet.name = input[0]
pet.species = input[1]
pet.age = Int(input[2])!
print(pet.describe())
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Edytor online Swift