English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Programação Orientada a Objetos (OOP) no Kotlin
Neste artigo, apresentarei a programação orientada a objetos no Kotlin. Você aprenderá o que é uma classe, como criar objetos e como utilizá-los em programas.
O Kotlin suporta funções e programação orientada a objetos.Funções de ordem superior,Tipo de função e LambdaDa classeFunçãoIsso o torna uma escolha ideal para a utilização de estilos de programação funcional. Você aprenderá esses conceitos nas seções seguintes. Este artigo focará na programação orientada a objetos no Kotlin.
No estilo de programação orientada a objetos, podemos dividir problemas complexos em conjuntos menores através da criação de objetos.
Esses objetos têm duas características:
Estado
Comportamento
Vamos dar alguns exemplos:
Lamp (lâmpada) é um objeto
Ele pode estar no estado on (ligado) ou off (desligado).
Você pode turn on (ligar) e turn off (desligar) (comportamentos).
Bicycle é um objeto
Ele tem estados como marchas, duas rodas, número de engrenagens.
Ele tem comportamentos como freio, aceleração, troca de marchas.
Você continuará a aprender detalhes das funcionalidades da programação orientada a objetos, como:Encapsulamento de dados,Herança e Polimorfismo. Este artigo se concentrará nos fundamentos que tornam as coisas mais simples.
Antes de criar um objeto no Kotlin, você precisa definir uma classe.
A classe é o esboço do objeto.
Podemos ver a classe como um rascunho (protótipo) de casa. Ele contém todas as informações detalhadas sobre o chão, a porta, as janelas, etc. Baseado nessas descrições, construímos as casas. As casas são objetos.
Como podemos construir muitas casas com a mesma descrição, podemos criar muitos objetos com base em uma classe.
Para definir uma classe no Kotlin, você pode usar a palavra-chave class:
class ClassName { // Propriedade // Membro da Função ... .. ... }
Este é um exemplo:
class Lamp { //Atributo (membro de dados) private var isOn: Boolean = false // Membro da Função fun turnOn() { isOn = true } // Membro da Função fun turnOff() { isOn = false } }
Aqui, definimos uma classe chamada Lamp.
A classe tem uma propriedade isOn (definida da mesma forma que uma variável) e duas funções de membro turnOn() e turnOff().
No Kotlin, ou deve inicializar a propriedade, ou deve declarar como abstract. No exemplo acima, a propriedade isOn é inicializada como false.
Classe, objeto, propriedade, função de membro etc. podem ter modificadores de visibilidade. Por exemplo, a propriedade isOn é privada. Isso significa que a propriedade isOn pode ser alterada apenas dentro da classe Lamp.
Outros modificadores de visibilidade são:
private - Visível apenas dentro da classe (acessível).
public - Visível em todos os lugares.
protected - Visível para a classe e suas subclasses.
internal - Qualquer cliente dentro do módulo pode acessá-los.
Você vai aprender mais tarde emModificadores de visibilidade KotlinConheça os modificadores protected e internal no artigo.
Se o modificador de visibilidade não for especificado, o valor padrão é public.
No programa acima, os membros de função turnOn() e turnOff() são públicos, enquanto a propriedade isOn é privada.
Quando se define uma classe, apenas define o padrão do objeto; não há alocação de memória ou espaço de armazenamento.
Para acessar os membros definidos na classe, você precisa criar um objeto. Vamos criar um objeto da classe Lamp.
class Lamp { // Atributo (membro de dados) private var isOn: Boolean = false // Membro da Função fun turnOn() { isOn = true } // Membro da Função fun turnOff() { isOn = false } } fun main(args: Array<String>) { val l1 = Lamp() // Criar Lamp l1objeto val l2 = Lamp() // Criar Lamp l2objeto }
Este programa cria dois objetos l1e l2Classe Lamp. O isOn duas lâmpadas desempenho l1e l2será false.
Você pode usar o ponto (. ) para acessar as propriedades e funções membro da classe. Por exemplo,
l1.turnOn()
A instrução chama o objeto l1 da função turnOn().
Vamos dar outro exemplo:
l2.isOn = true
Aqui, tentamos atribuir true ao objeto l2 da propriedade isOn. Observe que a propriedade isOn é private, se tentar acessar isOn de fora da classe, será lançada uma exceção.
class Lamp { // Atributo (membro de dados) private var isOn: Boolean = false // Membro da Função fun turnOn() { isOn = true } // Membro da Função fun turnOff() { isOn = false } fun displayLightStatus(lamp: String) { if (isOn == true) println("$lamp Lâmpada está acesa.") else println("$lamp Lâmpada está apagada.") } } fun main(args: Array<String>) { val l1 = Lamp() // Criar Lamp l1objeto val l2 = Lamp() // Criar Lamp l2objeto l1.turnOn() l2.turnOff() l1.displayLightStatus("l1) l2.displayLightStatus("l2) }
A saída do programa ao executar é:
l1 a lâmpada está acesa. l2 a lâmpada está apagada.
No programa acima,
A classe Lamp foi criada.
Essa classe tem uma propriedade isOn e três funções membro turnOn(), turnOff() e displayLightStatus().
No função main(), foram criados dois objetos da classe Lamp L1e L2.
Aqui, use l1.turnOn() chama a função turnOn(). Este método configura a propriedade isOn do objeto l1como true.1Configure a variável de instância isOn do objeto l
Ao mesmo tempo, use l2 :l2.turnOff() chama a função turnOff(). Este método configura a propriedade isOn do objeto l2como false.
Em seguida, configure a variável de instância isOff do objeto l1e l2Chamar o objeto da função displayLightStatus(), que imprime a mensagem apropriada com base na propriedade isOn (true ou false).
Atenção, dentro da classe, a propriedade isOn é inicializada como false. Quando criar um objeto dessa classe, a propriedade isOn do objeto será inicializada automaticamente como false. Portanto, não é necessário l2 Chamar o objeto turnOff() configurará a propriedade isOn como false.
Por exemplo:
class Lamp { // Atributo (membro de dados) private var isOn: Boolean = false // Membro da Função fun turnOn() { isOn = true } // Membro da Função fun turnOff() { isOn = false } fun displayLightStatus() { if (isOn == true) println("A lâmpada está acesa.") else println("A lâmpada se apagou.") } } fun main(args: Array<String>) { val lamp = Lamp() lamp.displayLightStatus() }
A saída do programa ao executar é:
A lâmpada se apagou.
Este artigo aborda os conhecimentos básicos de programação orientada a objetos no Kotlin.