From 183cf0409bacea5769a41c3c61265ecd7ecafdb2 Mon Sep 17 00:00:00 2001 From: h4ckx0r Date: Wed, 5 Feb 2025 22:00:55 +0100 Subject: [PATCH] Initial Commit --- .gitignore | 32 +++++ .idea/.gitignore | 3 + .idea/codeStyles/Project.xml | 10 ++ .idea/codeStyles/codeStyleConfig.xml | 5 + .idea/inspectionProfiles/Project_Default.xml | 6 + .idea/kotlinc.xml | 10 ++ .idea/libraries/KotlinJavaRuntime.xml | 17 +++ .idea/misc.xml | 6 + .idea/modules.xml | 8 ++ .idea/uiDesigner.xml | 124 +++++++++++++++++++ .idea/vcs.xml | 6 + ProyectoKotlin.iml | 15 +++ src/Main.kt | 34 +++++ src/empresa/Colecciones.kt | 27 ++++ src/empresa/Funciones.kt | 35 ++++++ src/empresa/Refactorizar.kt | 22 ++++ src/empresa/SintaxisBasica.kt | 47 +++++++ 17 files changed, 407 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/codeStyles/Project.xml create mode 100644 .idea/codeStyles/codeStyleConfig.xml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/kotlinc.xml create mode 100644 .idea/libraries/KotlinJavaRuntime.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/uiDesigner.xml create mode 100644 .idea/vcs.xml create mode 100644 ProyectoKotlin.iml create mode 100644 src/Main.kt create mode 100644 src/empresa/Colecciones.kt create mode 100644 src/empresa/Funciones.kt create mode 100644 src/empresa/Refactorizar.kt create mode 100644 src/empresa/SintaxisBasica.kt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3ddbf4c --- /dev/null +++ b/.gitignore @@ -0,0 +1,32 @@ +### IntelliJ IDEA ### +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Kotlin ### +.kotlin + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 0000000..1bec35e --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,10 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..79ee123 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..df543e3 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml new file mode 100644 index 0000000..cba7a76 --- /dev/null +++ b/.idea/kotlinc.xml @@ -0,0 +1,10 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/KotlinJavaRuntime.xml b/.idea/libraries/KotlinJavaRuntime.xml new file mode 100644 index 0000000..3e6dc71 --- /dev/null +++ b/.idea/libraries/KotlinJavaRuntime.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..eeb80f7 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..8144056 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/ProyectoKotlin.iml b/ProyectoKotlin.iml new file mode 100644 index 0000000..43dd653 --- /dev/null +++ b/ProyectoKotlin.iml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Main.kt b/src/Main.kt new file mode 100644 index 0000000..b58d8b6 --- /dev/null +++ b/src/Main.kt @@ -0,0 +1,34 @@ +fun main() { + // Imprimir mensaje en la pantalla + println("Welcome to Entornos de Desarrollo") + + // Ejemplo de sentencia alternativa (if-else) + val edad = 20 + if (edad >= 18) { + println("Eres mayor de edad.") + } else { + println("Eres menor de edad.") + } + + // Uso de la estructura when (equivalente a switch) + val dia = "Sábado" + when (dia) { + "Lunes", "Martes", "Miércoles", "Jueves", "Viernes" -> println("Es un día laboral.") + "Sábado", "Domingo" -> println("Es fin de semana.") + else -> println("Día no válido.") + } + + // Bucle for para contar hasta 5 + println("Contando hasta 5:") + for (i in 1..5) { + println("Número: $i") + } + + // Bucle while para una cuenta regresiva + var contador = 3 + println("Cuenta regresiva:") + while (contador > 0) { + println("Quedan $contador segundos") + contador-- + } +} \ No newline at end of file diff --git a/src/empresa/Colecciones.kt b/src/empresa/Colecciones.kt new file mode 100644 index 0000000..a73d1be --- /dev/null +++ b/src/empresa/Colecciones.kt @@ -0,0 +1,27 @@ +package empresa + +/** + * Demostración básica de colecciones en Kotlin: + * - List, mutableList + * - Operaciones funcionales como map, filter, etc. + */ + +fun main() { + val readOnlyList = listOf("Manzana", "Pera", "Fresa") + val mutableFruits = mutableListOf("Banana", "Mango", "Melón") + + println("Lista inmutable: $readOnlyList") + println("Lista mutable antes: $mutableFruits") + + // Agregar y remover elementos en una lista mutable + mutableFruits.add("Kiwi") + mutableFruits.remove("Mango") + println("Lista mutable después: $mutableFruits") + + // Operaciones de filtrado y transformación + val filtered = readOnlyList.filter { it.contains("a") } + val upperCased = readOnlyList.map { it.uppercase() } + + println("Elementos con 'a': $filtered") + println("Elementos en mayúsculas: $upperCased") +} \ No newline at end of file diff --git a/src/empresa/Funciones.kt b/src/empresa/Funciones.kt new file mode 100644 index 0000000..88cc89d --- /dev/null +++ b/src/empresa/Funciones.kt @@ -0,0 +1,35 @@ +package empresa + + +/** + * Ejemplo de diferentes formas de definir funciones en Kotlin. + */ + +// Función tradicional +fun add(a: Int, b: Int): Int { + return a + b +} + +// Función con expresión +fun multiply(a: Int, b: Int) = a * b + +// Función con parámetro opcional +fun greet(name: String = "Invitado") { // Valor de la variable por defecto + println("Hola, $name") +} + +// Función de extensión para la clase String +fun String.firstLetter(): Char { + return this[0] +} + +fun main() { + println("add(3, 4) = ${add(3, 4)}") + println("multiply(3, 4) = ${multiply(3, 4)}") + + greet("Kotlin") // Saludo a Kotlin + greet() // Usa el valor por defecto "Invitado" + + val sampleText = "Kotlin" + println("Primera letra de $sampleText: ${sampleText.firstLetter()}") +} \ No newline at end of file diff --git a/src/empresa/Refactorizar.kt b/src/empresa/Refactorizar.kt new file mode 100644 index 0000000..4525a72 --- /dev/null +++ b/src/empresa/Refactorizar.kt @@ -0,0 +1,22 @@ +package empresa + +/** + * Código preparado para practicar refactorizaciones en IntelliJ IDEA CE + * - Renombrar variables y funciones + * - Extraer funciones + * - Inlinar variables + * - Etc. + */ + +fun main() { + // Ejemplo de código repetido que podemos refactorizar + val number1 = 10 // Renombrar variable + val number2 = 20 // Seleccionar number > Inline Property + + // Lógica repetida (ej: cálculo sencillo) + val result1 = number1 * number1 + number1 // Extraer función + println("Resultado 1: $result1") + + val result2 = number2 * number2 + number2 + println("Resultado 2: $result2") +} \ No newline at end of file diff --git a/src/empresa/SintaxisBasica.kt b/src/empresa/SintaxisBasica.kt new file mode 100644 index 0000000..a45d074 --- /dev/null +++ b/src/empresa/SintaxisBasica.kt @@ -0,0 +1,47 @@ +package empresa + +/** + * Demostración de sintaxis básica de Kotlin: + * - Declaración de variables + * - Al poner el cursor sobre una variable, se muestra donde se referencia y su tipo + * - Uso de if/else y bucles + * - Prueba de Debugger + */ +fun main() { + // Kotlin tiene val (inmutable) y var (mutable) + val inmutableNumber = 10 + var mutableNumber = 5 + + println("inmutableNumber = $inmutableNumber") + println("mutableNumber = $mutableNumber") + + // Podemos modificar 'var', pero no 'val' + mutableNumber = 20 + println("mutableNumber modificado = $mutableNumber") + + // Condiciones if/else + val message = if (mutableNumber > 10) { + "El número es mayor que 10" + } else { + "El número es menor o igual a 10" + } + println(message) + + // Bucles (for e in y while) + println("Bucle for:") + for (i in 1..5) { // 1..5 incluye 1,2,3,4,5 + println("i = $i") + } + + println("Bucle for con saltos de 2:") + for (i in 1..5 step 2) { // 1,3,5 + println("i = $i") + } + + println("Bucle while:") + var counter = 0 + while (counter < 3) { + println("counter = $counter") // Se puede meter una variable dentro un string sin concatenar + counter++ + } +} \ No newline at end of file