NemProgrammering.dk logo

Udvidet OOP i SWIFT

Lav din egen app kursus » Udvidet OOP i SWIFT # 14

Information om denne video

Underviser: Jeppe Borgaard Jørgensen   Video: 16:36   Lektion nr. 14 af 21

I denne videolektion skal vi arbejde videre med objektorienteret programmering. Vi skal hovedsageligt kigge på init-metoden, som er en måde at klargøre vores objekter på.

Øvelse

Lav et program med 2 klasser (Person & Insurance). En person skal have 3 valgfrie instans-variabler, og Insurance har monthyCost og type.

  • Alle instans-variabler skal kunne initialiseres med init-metoden
  • En person har en insurance som instans-variabel
  • Man skal kunne ændre forsikringen på en person
  • Der skal være en udskrift, der viser personinfo + forsikring

*HINT -> Byg med fordel videre på sidste øvelse.

Løsningsforslag til øvelse

//: Playground - noun: a place where people can play
import Cocoa

class Person {

    // Instans variabler
    var name = "Unknown"
    var age = 0
    var eyeColor = "Unknown"
    var gender = "Unknown"
    var insurance: Insurance = Insurance();
   
    // Metoder / Funktioner
    func greeting() {
        print("Hello, my name is \(self.name) and i am \(self.age) years old. I have \(self.eyeColor) eyes and i am a \(self.gender). My insurance is \(self.insurance.info())")
    }
}
class Insurance {
    var monthlyCost = 0;
    var type = "None";   
    init(monthlyCost: Int, type: String) {
        self.monthlyCost = monthlyCost;
        self.type = type;
    }    
    init() {        
    }    
    func info() -> String {
        return "Insurance of type \(self.type) with a price of \(self.monthlyCost) per month.";
    }
}
var myself = Person()
myself.name = "Jeppe"
myself.age = 25
myself.eyeColor = "Brown"
myself.gender = "Male"
myself.insurance.monthlyCost = 250
myself.insurance.type = "Indbo"
var jamie = Person()
jamie.name = "Jamie"
jamie.age = 47
jamie.eyeColor = "Blue"
jamie.gender = "Female"
jamie.insurance = Insurance(monthlyCost: 550, type: "Ulykke")
myself.greeting()
jamie.greeting()