English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Classes e Objetos no Kotlin

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.

Programação Orientada a Objetos (OOP)

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:

  1. 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).

  2. 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.

Classe Kotlin

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.

Como definir uma classe no Kotlin?

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.

Objeto Kotlin

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.

Como acessar membros?

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.

Exemplo: Classes e objetos Kotlin

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.