Skip to content

Commit 50465c7

Browse files
committed
#8 - Kotlin
1 parent cbad200 commit 50465c7

File tree

1 file changed

+109
-0
lines changed

1 file changed

+109
-0
lines changed
+109
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
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

Comments
 (0)