Menu
Coddy logo textTech

Definindo Classes

Parte da seção Programação Orientada a Objetos do Journey de Swift da Coddy. Lição 2 de 57.

Uma classe descreve um tipo de objeto: os dados que cada objeto contém e o que ele pode fazer. class Dog { ... } declara o tipo, e Dog() cria um objeto desse tipo, também chamado de instância:

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

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

Saída:

Rex
3

As variáveis dentro de uma classe são suas propriedades. Cada instância tem sua própria cópia, que pode ser lida e alterada com um ponto:

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

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

Saída:

Rex
Bella

Uma função dentro de uma classe é um método. Um método pode ler e alterar as propriedades da instância na qual é chamado:

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())

Saída:

count is 2

Os nomes de tipos são escritos em UpperCamelCase (BankAccount); propriedades e métodos, em lowerCamelCase (balance, deposit()). Reunir os dados e as funções que operam sobre eles em um único tipo é a ideia central da programação orientada a objetos: o código que usa um Counter chama increment() e nunca precisa saber como a contagem é armazenada.

class BankAccount {
    var balance = 0

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

Desafio

Fácil

Complete o método describe() da classe Pet. Ele retorna uma frase construída a partir das propriedades: um animal de estimação chamado Rex, da espécie dog, com idade 3 resulta em Rex is a 3 year old dog.

O código fornecido cria um Pet, define suas propriedades a partir da entrada (nome, espécie, idade) e imprime o resultado de describe().

Seu código deve ser colocado em Pet.swift. main.swift contém o código fornecido de entrada/saída e não pode ser editado.

Experimente você mesmo

// Código de entrada/saída fornecido: mantenha-o como está
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 iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Programação Orientada a Objetos

Pratique por conta própria: Playground de Swift