-
Notifications
You must be signed in to change notification settings - Fork 0
/
1-classes.kt
82 lines (54 loc) · 2.71 KB
/
1-classes.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
//Exemplos de Declaração de Classes
class Produtos//Classe vazia, o Kotlin não reclama
class Pessoa{//Classe em Kotlin
//Classes sem a presença dos parêntesis, não possuem construtores, e você precisa declará-los!
}
//Exemplos de Declaração de Classes com Parâmetros
class Carro(val modelo: String, val ano: Int = 2023){//Um Parâmetro Opcional
//Os atributos da classe podem ser declarados dentro dos parêntesis, como visto acima (model e ano)
//Podemos também definir atributos como os abaixo:
var marca: String = ""
var opcionais: Boolean = true
//Abaixo podemos declarar nossos métodos
fun ligar(){//método da função
println("Ligando o Carro")
}
fun desligar(){//Método da função
println("Desligando o Carro")
}
fun removeOpcionais(){
this.opcionais = false//Usamos o this para fazer referência aos atributos da classe
}
fun mostraInformacoes() {
println(message = "Seu Carro é um ${this.modelo}, da marca ${this.marca} (ano: ${this.ano}). Possuí opcionais? ${this.opcionais}")
}
fun recebeParametro(a: Int){//Exemplo de método da classe que recebe atributo
println("O atributo é $a")
}
fun retornarFrase(): String{//Método que tem um tipo de retorno
return "Este é um carro muito bonito!"
}
}
fun main() {
//Orientação a Objetos (Classes)
var produtos: Produtos = Produtos()//Instanciando uma classe dentro da variável produtos
var pessoa: Pessoa = Pessoa()//Instanciando uma classe dentro da variável pessoa
var produtoZero = Produtos()//Outra forma de instanciar a classe sem declarar o tipo
var meuCarro: Carro = Carro("BMW X9")//
println(meuCarro.modelo)//Maneiras de acessar os atributos da classe
println(meuCarro.ano)//Maneiras de acessar os atributos da classe
var modeloCarro: String = meuCarro.modelo//Maneiro de salvar um atributo numa variável
var anoCarro: Int = meuCarro.ano//Maneiro de salvar um atributo numa variável
println(meuCarro.marca)//Chamando atributos que foram declarados de outra forma
println(meuCarro.opcionais)//Chamando atributos que foram declarados de outra forma
meuCarro.ligar()//Chamando um método
meuCarro.desligar()//Chamando um método
meuCarro.marca = "Audi"//Alterando um atributo na classe
println(meuCarro.marca)//Mostra 'Audi' em vez de ''
meuCarro.removeOpcionais()
println(meuCarro.opcionais)//Mostra 'false' em vez de 'true'
meuCarro.mostraInformacoes()
meuCarro.recebeParametro(12)//Exemplo de envio de um atributo para um método
//É possível instanciar uma classe e já executar um de seus métodos
var meuCarroDois = Carro("Fiat Uno 109").mostraInformacoes()
}