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
Deixe um comentário