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