1
+ fun main (){
2
+ // Creación de un objeto de la clase Car
3
+ val car1 = Car (" Toyota" , " Corolla" , 2020 )
4
+ // Impresión de los atributos del objeto
5
+ car1.printCar()
6
+ // Impresión de la cantidad de autos creados
7
+ car1.printCount()
8
+
9
+ val car2 = Car (" Ford" , " Fiesta" , 2019 )
10
+ car2.printCar()
11
+ car2.printCount()
12
+
13
+ // Extra: Creación de un objeto de la clase Pila
14
+ val pila = Pila <String >() // Inicializa un objeto de la clase Pila con tipo de dato String
15
+ pila.push(" Elemento 1" ) // Añade un elemento a la pila
16
+ pila.push(" Elemento 2" )
17
+ pila.push(" Elemento 3" )
18
+ pila.printPila() // Imprime el contenido de la pila
19
+ pila.pop() // Elimina el último elemento
20
+ pila.printPila()
21
+ println (" Número de elementos: ${pila.size()} " ) // Imprime el número de elementos
22
+
23
+ // Extra: Creación de un objeto de la clase Cola
24
+ val cola = Cola <Int >() // Inicializa un objeto de la clase Cola con tipo de dato Int
25
+ cola.add(1 ) // Añade un elemento a la cola
26
+ cola.add(2 )
27
+ cola.add(3 )
28
+ cola.printCola() // Imprime el contenido de la cola
29
+ cola.remove() // Elimina el primer elemento
30
+ cola.printCola()
31
+ println (" Número de elementos: ${cola.size()} " ) // Imprime el número de elementos
32
+
33
+ }
34
+
35
+ // Clase de ejemplo con inicializador, atributos y función.
36
+ // Una clase en kotlin tiene un constructor primario y puede tener uno o más constructores secundarios.
37
+ // El constructor primario es parte de la declaración de la clase y se encuentra después del nombre de la clase.
38
+ // Si el constructor primario no tiene anotaciones o modificadores, la palabra constructor puede omitirse.
39
+ class Car /* constructor*/ (val brand : String , val model : String , val year : Int ) {
40
+ // Los atributos de la clase son brand, model y year
41
+
42
+ // Atributo para contar la cantidad de autos creados, es parte de la clase, por lo que es compartido por todos las instancias
43
+ companion object {
44
+ var count = 0
45
+ }
46
+
47
+ // Si quieres ejecutar código al momento de la creación del objeto, puedes hacerlo en el bloque init
48
+ init {
49
+ println (" Car created" )
50
+ count++
51
+ }
52
+
53
+ // Función que imprime los atributos del objeto
54
+ fun printCar (){
55
+ println (" Car: $brand $model $year " )
56
+ }
57
+
58
+ // Función que imprime la cantidad de autos creados
59
+ fun printCount (){
60
+ println (" Cars created: $count " )
61
+ }
62
+ }
63
+
64
+ // Extra: Clase Pila
65
+ class Pila <T > { // T es un tipo genérico, es decir, puede ser cualquier tipo de dato
66
+ // Atributo privado que almacena los elementos de la pila. Un atributo privado es accesible solo dentro de la clase que lo declara
67
+ private val pila = mutableListOf<T >()
68
+
69
+ // Función que añade un elemento a la pila
70
+ fun push (element : T ){
71
+ pila.add(element)
72
+ }
73
+
74
+ // Función que elimina el último elemento de la pila
75
+ fun pop (){
76
+ pila.removeAt(pila.size - 1 )
77
+ }
78
+
79
+ // Función que retorna el número de elementos de la pila
80
+ fun size (): Int {
81
+ return pila.size
82
+ }
83
+
84
+ // Función que imprime el contenido de la pila
85
+ fun printPila (){
86
+ println (" Contenido de la Pila: $pila " )
87
+ }
88
+ }
89
+
90
+ // Extra: Clase Cola
91
+ class Cola <T > {
92
+ private val cola = mutableListOf<T >()
93
+
94
+ fun add (element : T ){
95
+ cola.add(element)
96
+ }
97
+
98
+ fun remove (){
99
+ cola.removeAt(0 )
100
+ }
101
+
102
+ fun size (): Int {
103
+ return cola.size
104
+ }
105
+
106
+ fun printCola (){
107
+ println (" Contenido de la Cola: $cola " )
108
+ }
109
+ }
0 commit comments