Classes e Objetos: Filosofia da Orientação a Objetos

Um conceito importante de entender é que Invoice não é um objeto, nem uma Pessoa e nem um Triângulo.

Então o que é? Estamos falando de Invoice e não de invoice. Há uma grande diferença entre os dois:

Um invoice, ou um invoice em particular é um objeto, mas o Invoice é uma classificação ou classe.

Tudo sobre invoices estão na classe Invoice, e todas as pessoas estão na classe Pessoa e tudo relacionado ao triângulo está na classe Triângulo.

Isto parece bem óbvio, não é? Talvez, mas o mais importante é se realmente entendermos como funciona a classe.

Imagine milhares de invoices chegando em um programa de computador e escrevemos algo como:

object1 = Invoice(Buyer = Smith, Date = 20180923, Good = Peas, Cost = $23.99), objetc2 = Invoice(…), …, object1000 = Invoice(…)

Isto não faz sentido, porque nós não queremos escrever códigos gigantes todos os dias.

O que faz mas sentido é termos uma classe Invoice que cuide de todos os invoices. Esta classe precisar criar invoices quando entramos com dados. Algo do tipo:

Data = [entrada de dados]

Desta maneira, cada dado estará ligado a um invoice. Os dados devem representar as características da classe Invoice, tais como buyer, date, goods ou serviços. É como se o Invoice fosse um validador de dados.

object = representação do objeto concreto utilizando dados de computador

Você pode construir um objeto invoice, dando a ele uma classificação e dados que o represente.

Quando construímos um objeto invoice, estamos construindo um objeto da classe Invoice ou criando uma instância da classe. Vamos listar algumas definições:

Classe: uma classe descreve objetos de alguma maneira. Todo objeto pertence a uma classe.

Instância: uma instância de classe representa exatamente um objeto da classe. O processo de criação de um objeto de uma classe e pronto para receber dados é chamado de instanciação.

Construção: o processo de criação de uma instância também é chamado de construção.

Kotlin e Programação Orientada a Objetos

Declaração de uma classe descreve a estrutura e suas partes. No Kotlin podemos declarar uma classe escrevendo:

class NomeDaClasse(Parâmetro-nome1, Parâmetro-nome2, …){

            [Corpo da Classe]

}

NomeDaClasse: é o nome da classe. Não deve conter espaços, por convenção no Kotlin é utilizado o CamelCase, isto quer dizer que você deve começar com letra maiúscula e cada nova palavra a primeira letra também ser maiúscula. Por exemplo, RegistroDeEmpregado.

Parâmetro-nome: essas são declarações do que é necessário para criar uma instância de classe. Basicamente há três tipos de variações de parâmetros:

Variável-Nome:Variável-Tipo: um exemplo seria userName:String. Usa-se esta estrutura para passar parâmetros para instanciar uma classe.

val Variável-Nome:Variável-Tipo: exemplo, val userName:String. Utilizado para definir propriedades imutáveis. Esse parâmetro é usado para configurar partes de estado de um objeto.

var Variável-Nome:Variável-Tipo: exemplo, var userName:String. Utilizado para definir propriedades mutáveis. Esse parâmetro é usado para configurar partes de estado de um objeto.

Veja que também os nomes dos parâmetros utilizamos o CamelCase. Há outros tipos variáveis. Por exemplo, você pode utilizar Int para um inteiro e declarar desta maneira: val a:Int.

[Corpo da Classe]: aqui será a codificação da classe, onde estarão as suas funções e propriedades.

Fonte livro: Learn Kotlin for Android Development: The Next Generation Language for Modern Android Apps Programming 

Para enviar seu comentário, preencha os campos abaixo:

Deixe um comentário

*

Seja o primeiro a comentar!