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
3As 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
BellaUma 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 2Os 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
}
}Desafio
FácilComplete 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())
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
1Classes e Objetos
Trabalhando com ArquivosDefinindo ClassesMétodos e selfInicializadoresClasses são ReferênciasRevisão - Cartão da Biblioteca4Encapsulamento
Controle de AcessoSomente Leitura ExternaProtegendo o EstadoInicializadores que Podem FalharRevisão - Conta Bancária7Polimorfismo e Genéricos
PolimorfismoConversão de TiposFunções GenéricasTipos GenéricosRevisão - Calculadora de Formas2Structs e Tipos de Valor
StructsSemântica de ValorMétodos MutáveisStruct ou ClasseRecapitulação - Item de Inventário5Herança
SubclassesSobrescrita de métodosInicializadores e superfinal e hierarquiasRecapitulação - Hierarquia de funcionários8Protocolos Padrão
CustomStringConvertibleEquatableComparableHashableRecapitulação - Ordenação Personalizada11Projeto: Gerenciamento de Biblioteca
Livros e MembrosEmpréstimo de LivrosPratique por conta própria: Playground de Swift