Lição: 21: Métodos (Métodos de Instância e Métodos de Tipo)
Em Swift, métodos são funções que estão associadas a um tipo específico. Existem dois tipos principais de métodos: métodos de instância e métodos de tipo. Nesta aula, vamos explorar ambos em detalhes, com exemplos que esclarecem seu uso.
Métodos de Instância
Métodos de instância são funções que pertencem a uma instância de um tipo. Você pode chamar esses métodos em uma instância de uma classe, estrutura ou enumeração.
Definindo Métodos de Instância
Para definir um método de instância, utilize a palavra-chave func
dentro da definição do tipo. Aqui está um exemplo usando uma estrutura Retangulo
:
struct Retangulo {
var largura: Double
var altura: Double
// Método de instância para calcular a área
func area() -> Double {
return largura * altura
}
// Método de instância para calcular o perímetro
func perimetro() -> Double {
return 2 * (largura + altura)
}
}
Usando Métodos de Instância
Agora, vamos criar uma instância de Retangulo
e chamar seus métodos:
let retangulo = Retangulo(largura: 10.0, altura: 5.0)
print("Área: \(retangulo.area())") // Saída: Área: 50.0
print("Perímetro: \(retangulo.perimetro())") // Saída: Perímetro: 30.0
Métodos de Tipo
Métodos de tipo são métodos que são chamados no próprio tipo, em vez de em instâncias do tipo. Em Swift, você pode definir métodos de tipo usando a palavra-chave static
para estruturas e enumerações, e a palavra-chave class
para classes.
Definindo Métodos de Tipo
Aqui está um exemplo que demonstra o uso de métodos de tipo em uma classe Circulo
:
class Circulo {
var raio: Double
init(raio: Double) {
self.raio = raio
}
// Método de instância para calcular a área
func area() -> Double {
return Double.pi * raio * raio
}
// Método de tipo para criar um Círculo com raio unitário
static func circuloUnitario() -> Circulo {
return Circulo(raio: 1.0)
}
}
Usando Métodos de Tipo
Você pode chamar o método de tipo diretamente usando o nome do tipo:
let circuloUnitario = Circulo.circuloUnitario()
print("Área do Círculo Unitário: \(circuloUnitario.area())") // Saída: Área do Círculo Unitário: 3.141592653589793
Resumo
Nesta aula, aprendemos sobre métodos de instância e métodos de tipo em Swift:
- Métodos de Instância: Funções que operam em instâncias de um tipo. Eles podem acessar propriedades de instância e outros métodos de instância.
- Métodos de Tipo: Funções que operam no próprio tipo. São definidos com as palavras-chave
static
ouclass
e são chamados no tipo em vez de em uma instância.
Compreender esses dois tipos de métodos é fundamental para organizar seu código e aproveitar os recursos do Swift. Experimente criar suas próprias estruturas e classes e implemente tanto métodos de instância quanto métodos de tipo para se familiarizar com o conceito!