LENGUAJE DE PROGRAMACION KOTLIN
Contenido del curso
Instalación de herramientas (Android Studio para Kotlin)
Para desarrollar en Kotlin, la herramienta más comúnmente utilizada es Android Studio, que incluye soporte para Kotlin de forma nativa. Puedes seguir estos pasos para instalarlo:
- Descarga Android Studio desde el sitio web oficial de Android: Android Studio.
- Sigue las instrucciones de instalación para tu sistema operativo (Windows, macOS, Linux).
- Una vez instalado, abre Android Studio y sigue el asistente de configuración para instalar cualquier componente adicional necesario para el desarrollo de aplicaciones Android con Kotlin.
Da clic al boton: Tu suscripcion al canal y likes a los videos, es la mejor manera de agradecer este curso gratuito!
Valores y variables
En Kotlin, las variables son objetos que almacenan valores y tienen un tipo de datos específico. Debes declarar una variable antes de usarla, especificando el tipo de datos que contendrá. Kotlin proporciona dos tipos de variables: variables mutables (cuyos valores pueden cambiarse) y variables inmutables (cuyos valores no pueden cambiarse una vez que se les asigna un valor).
Declaración de Variables
Puedes declarar una variable en Kotlin utilizando las palabras clave val
y var
:
val
: Se utiliza para declarar variables inmutables, cuyos valores no pueden cambiarse una vez asignados.var
: Se utiliza para declarar variables mutables, cuyos valores pueden cambiarse después de la asignación.
val pi = 3.14159 // variable inmutable
var contador = 0 // variable mutable
Tipos de Datos en Kotlin
Kotlin tiene tipos de datos básicos similares a otros lenguajes de programación:
Int
: Representa números enteros.Double
: Representa números de punto flotante de doble precisión.Float
: Representa números de punto flotante de precisión simple.Boolean
: Representa valores booleanos, es decir,true
ofalse
.Char
: Representa caracteres Unicode.String
: Representa una secuencia de caracteres.Any
: Es la superclase de todos los tipos de datos en Kotlin.
Tamaño en Memoria
Los tipos de datos en Kotlin tienen un tamaño específico en memoria, que puede variar según la plataforma y la implementación. Los tamaños en memoria típicos son:
Int
: 4 bytesDouble
: 8 bytesFloat
: 4 bytesBoolean
: 1 byteChar
: 2 bytesString
: Depende del tamaño del contenido de la cadena y la codificación Unicode.
val edad: Int = 25
var contador: Int = 0
val pi: Double = 3.14159
var precio: Double = 99.99
val altura: Float = 1.75f
var temperatura: Float = 26.5f
val esMayorDeEdad: Boolean = true
var estaLloviendo: Boolean = false
val inicial: Char = 'A'
var ultimoCaracter: Char = 'Z'
val nombre: String = "Juan"
var mensaje: String = "Hola, ¿cómo estás?"
val cualquierCosa: Any = "Hola"
var cualquierObjeto: Any = 42
En este ejemplo, edad
es una variable inmutable de tipo Int
, y nombre
es una variable mutable de tipo String
. Cuando se imprime el valor de nombre
y edad
, se muestra en la consola. Luego, el valor de nombre
se actualiza y se imprime nuevamente.
Kotlin es un lenguaje estáticamente tipado, lo que significa que el tipo de cada variable debe ser conocido en tiempo de compilación. Esto mejora la seguridad y la eficiencia del código.
Da clic al boton: Tu suscripcion al canal y likes a los videos, es la mejor manera de agradecer este curso gratuito!
Trabajando con variables
Kotlin es un lenguaje de programación estáticamente tipado, lo que significa que debes especificar el tipo de datos de una variable al declararla, o Kotlin lo inferirá automáticamente.
Funciones Aritmeticas
Se utilizan funciones aritméticas y se trabajan con diferentes tipos de datos en Kotlin, demostrando cómo se pueden realizar operaciones y manipulaciones con cada tipo de dato. Esto te proporciona una comprensión básica de cómo trabajar con variables de diferentes tipos en Kotlin.
val suma = 10 + 5 // Resultado: 15
val resta = 10 - 5 // Resultado: 5
val multiplicacion = 10 * 5 // Resultado: 50
val division = 10 / 5 // Resultado: 2
val modulo = 10 % 3 // Resultado: 1
Ejemplos de Funciones Aritmeticas en Kotlin
Recuerda que todo este contenido se encuentra en el canal de youtube donde tendras alojado todo el contenido demostrativo y no solo escrito.
//Enteros (Int)
val edad: Int = 25
var contador: Int = 0
val sumaEdad = edad + 5 // 25 + 5 = 30
//Números de Punto Flotante (Double)
val pi: Double = 3.14159
var precio: Double = 99.99
val total = precio * 2 // 99.99 * 2 = 199.98
//Números de Punto Flotante (Float)
val altura: Float = 1.75f
var temperatura: Float = 26.5f
val aumento = altura + 0.1f // 1.75 + 0.1 = 1.85
//Valores Booleanos (Boolean)
val esMayorDeEdad: Boolean = true
var estaLloviendo: Boolean = false
val esDiaSoleado = !estaLloviendo // Negación: false
//Caracteres (Char)
val inicial: Char = 'A'
var ultimoCaracter: Char = 'Z'
val siguienteCaracter = inicial + 1 // 65 + 1 = 66 (Código ASCII de 'B')
//Cadenas de Texto (String)
val nombre: String = "Juan"
var mensaje: String = "Hola, ¿cómo estás?"
val saludoCompleto = "$mensaje Mi nombre es $nombre" // "Hola, ¿cómo estás? Mi nombre es Juan"
//Operaciones con Any
val cualquierCosa: Any = "Hola"
var cualquierObjeto: Any = 42
val concatenacion = cualquierCosa.toString() + cualquierObjeto.toString() // "Hola42"
Funciones
En Kotlin, puedes declarar una función utilizando la palabra clave fun
, seguida del nombre de la función, paréntesis que pueden contener los parámetros de entrada y, opcionalmente, el tipo de datos que devuelve la función.
fun saludar() {
println("¡Hola!")
}
fun sumar(a: Int, b: Int): Int {
return a + b
}
En este ejemplo, se han declarado dos funciones:
saludar()
: Una función sin parámetros ni valor de retorno que imprime “¡Hola!”.sumar(a: Int, b: Int): Int
: Una función que toma dos parámetros enteros (a
yb
) y devuelve un entero como resultado de la suma dea
yb
.
Llamada de Funciones
Para llamar a una función en Kotlin, simplemente escribe el nombre de la función seguido de los paréntesis.
saludar() // Imprime: ¡Hola!
val resultado = sumar(3, 5) // resultado es igual a 8
Da clic al boton: Tu suscripcion al canal y likes a los videos, es la mejor manera de agradecer este curso gratuito!
Funciones con parámetros de entrada y salida
Las funciones pueden tener cero o más parámetros como entrada y pueden devolver un valor como resultado. En Kotlin, los tipos de datos de los parámetros y el tipo de datos devuelto pueden ser explícitamente declarados.
fun multiplicar(a: Int, b: Int): Int {
return a * b
}
Funciones de una Sola Línea
En Kotlin, si una función devuelve un único valor, puedes escribir la función en una sola línea.
fun restar(a: Int, b: Int) = a - b
Funciones como Expresiones
En Kotlin, las funciones pueden tratarse como expresiones y asignarse a variables, pasarlas como argumentos a otras funciones o incluso devolverlas desde otras funciones.
val miFuncion = ::sumar
val resultado = miFuncion(10, 20) // resultado es igual a 30
Funciones de Orden Superior
Kotlin admite funciones de orden superior, que son funciones que pueden aceptar otras funciones como parámetros y/o devolver funciones como resultado.
fun operar(a: Int, b: Int, operacion: (Int, Int) -> Int): Int {
return operacion(a, b)
}
val resultadoSuma = operar(10, 5, ::sumar) // resultadoSuma es igual a 15
val resultadoResta = operar(10, 5, ::restar) // resultadoResta es igual a 5
Funciones Anonimas y Lambdas
En Kotlin, puedes crear funciones anónimas y lambdas, que son funciones sin nombre que pueden ser utilizadas para definir comportamientos específicos en línea.
val cuadrado: (Int) -> Int = { x -> x * x }
val lista = listOf(1, 2, 3, 4, 5)
val cuadrados = lista.map { it * it } // cuadrados es igual a [1, 4, 9, 16, 25]
Estos son los conceptos básicos sobre funciones en Kotlin. Las funciones son componentes fundamentales de cualquier programa Kotlin y son utilizadas para organizar y reutilizar código de manera eficiente.
Condicionales if, else, for, while, when
Conficionales If – Else
Los condicionales if
y else
se utilizan para tomar decisiones basadas en condiciones booleanas. En Kotlin, la sintaxis básica es la siguiente:
val edad = 18
if (edad >= 18) {
println("Eres mayor de edad")
} else {
println("Eres menor de edad")
}
En este ejemplo, si la variable edad
es mayor o igual a 18, se imprime “Eres mayor de edad”; de lo contrario, se imprime “Eres menor de edad”.
Estructura de control de flujo for
El bucle for
se utiliza para iterar sobre una secuencia de elementos, como rangos de números o colecciones de datos. En Kotlin, puedes iterar de la siguiente manera:
for (i in 1..5) {
println(i)
}
Esto imprimirá los números del 1 al 5.
Estructura de control de flujo while
El bucle while
se utiliza para repetir una o más instrucciones mientras una condición sea verdadera. En Kotlin, la sintaxis básica es la siguiente:
var contador = 0
while (contador < 5) {
println("El contador es $contador")
contador++
}
Este bucle imprimirá “El contador es X” mientras el valor de contador
sea menor que 5.
Estructura de control de flujo when
La expresión when
es similar a un switch
en otros lenguajes de programación y se utiliza para evaluar una expresión y ejecutar un bloque de código correspondiente al primer caso que coincida. En Kotlin, se ve así:
val opcion = 2
when (opcion) {
1 -> println("Opción 1 seleccionada")
2 -> println("Opción 2 seleccionada")
3 -> println("Opción 3 seleccionada")
else -> println("Opción no válida")
}
En este ejemplo, si opcion
es 2, se imprimirá “Opción 2 seleccionada”.
Estas son las estructuras de control de flujo básicas en Kotlin que te permiten tomar decisiones y repetir bloques de código según condiciones específicas.
Da clic al boton: Tu suscripcion al canal y likes a los videos, es la mejor manera de agradecer este curso gratuito!
Ejercicios if, else, for, while, when
Verificar si un numero es positivo, negativo o cero
Escribe un programa que solicite al usuario ingresar un número y luego determine si es positivo, negativo o cero.
fun main() {
println("Ingrese un número:")
val numero = readLine()!!.toInt()
if (numero > 0) {
println("El número es positivo")
} else if (numero < 0) {
println("El número es negativo")
} else {
println("El número es cero")
}
}
Imprimir numeros pares del 1 al 10
Utiliza un bucle for
para imprimir los números pares del 1 al 10.
fun main() {
for (i in 1..10) {
if (i % 2 == 0) {
println(i)
}
}
}
Suma de los primeros 5 numeros naturales
Escribe un programa que calcule la suma de los primeros 5 números naturales utilizando un bucle while
.
fun main() {
var suma = 0
var contador = 1
while (contador <= 5) {
suma += contador
contador++
}
println("La suma de los primeros 5 números naturales es: $suma")
}
Determinar el dia de la semana
Escribe un programa que solicite al usuario ingresar un número del 1 al 7 y luego imprima el día de la semana correspondiente utilizando la estructura when
.
fun main() {
println("Ingrese un número del 1 al 7:")
val numero = readLine()!!.toInt()
when (numero) {
1 -> println("Lunes")
2 -> println("Martes")
3 -> println("Miércoles")
4 -> println("Jueves")
5 -> println("Viernes")
6 -> println("Sábado")
7 -> println("Domingo")
else -> println("Número no válido")
}
}
Nulabilidad
La nulabilidad es un concepto importante en Kotlin que se refiere a la capacidad de una variable para contener un valor nulo. En Kotlin, el sistema de tipos está diseñado para evitar errores de referencia nula (NullPointerException), que son comunes en otros lenguajes de programación como Java.
Tipos de Datos y Nulabilidad
En Kotlin, un tipo de datos por defecto no puede contener un valor nulo. Para permitir la nulabilidad, debes especificar que un tipo de dato puede ser nulo añadiendo un signo de interrogación (?
) al final del tipo. Por ejemplo:
val nombre: String? = null // String nullable
val edad: Int? = null // Int nullable
En estos ejemplos, nombre
y edad
pueden contener un valor nulo (null
) además de valores válidos de tipo String
e Int
, respectivamente.
Operaciones con Tipos de Datos Nulos
Para trabajar con variables nulas, Kotlin proporciona operadores seguros (?.
) y operadores de elvis (?:
).
Operador Seguro (Safe Call Operator – ?.
)
El operador seguro (?.
) se utiliza para realizar una llamada a un método o acceder a una propiedad solo si la variable no es nula. Si la variable es nula, la expresión completa devuelve null
.
val longitud: Int? = nombre?.length
En este ejemplo, longitud
contendrá la longitud de nombre
si nombre
no es nulo; de lo contrario, longitud
será null
.
Operador Elvis (?:
)
El operador elvis (?:
) se utiliza para proporcionar un valor de respaldo en caso de que una expresión sea nula.
val longitudNombre: Int = nombre?.length ?: -1
En este ejemplo, si nombre
es nulo, longitudNombre
será -1
; de lo contrario, será igual a la longitud de nombre
.
Verificacion de Nulabilidad
También puedes realizar una verificación explícita de nulabilidad utilizando una expresión if
.
if (nombre != null) {
println("El nombre es: $nombre")
} else {
println("El nombre es nulo")
}
En este ejemplo, si nombre
no es nulo, se imprime el nombre; de lo contrario, se imprime que el nombre es nulo.
La nulabilidad en Kotlin es una característica poderosa que ayuda a evitar errores comunes relacionados con referencias nulas, lo que hace que el código sea más robusto y seguro.
Da clic al boton: Tu suscripcion al canal y likes a los videos, es la mejor manera de agradecer este curso gratuito!
Arrays y listas
Kotlin proporciona las clases Array
y List
para trabajar con conjuntos de elementos.
En Kotlin, puedes trabajar con arrays y listas para almacenar colecciones de elementos. Ambas estructuras de datos son útiles para almacenar múltiples valores, pero tienen algunas diferencias en su funcionamiento y uso.
Arrays
Un array es una estructura de datos que almacena una colección de elementos del mismo tipo en una única variable. En Kotlin, puedes crear arrays utilizando la función arrayOf()
o la función Array()
.
Creación de Arrays:
// Utilizando la función arrayOf()
val numeros = arrayOf(1, 2, 3, 4, 5)
// Utilizando la función Array()
val frutas = Array(3) { i -> "Fruta $i" }
En el primer ejemplo, se crea un array de números enteros utilizando la función arrayOf()
. En el segundo ejemplo, se crea un array de cadenas utilizando la función Array()
y se inicializa con valores utilizando una expresión lambda.
Acceso a Elementos del Array:
println(numeros[0]) // Imprime el primer elemento del array 'numeros'
println(frutas[1]) // Imprime el segundo elemento del array 'frutas'
Modificación de Elementos del Array:
numeros[2] = 10 // Modifica el tercer elemento del array 'numeros'
frutas[0] = "Manzana" // Modifica el primer elemento del array 'frutas'
Listas
Una lista es una estructura de datos que puede contener una colección de elementos del mismo o de diferentes tipos. En Kotlin, puedes crear listas utilizando la clase List
o la clase MutableList
.
Creación de Listas:
// Utilizando la clase List
val colores = listOf("Rojo", "Verde", "Azul")
// Utilizando la clase MutableList
val nombres = mutableListOf("Ana", "Juan", "María")
Acceso a Elementos de la Lista:
println(colores[0]) // Imprime el primer elemento de la lista 'colores'
println(nombres[2]) // Imprime el tercer elemento de la lista 'nombres'
Modificación de Elementos de la Lista:
colores[1] = "Amarillo" // Modifica el segundo elemento de la lista 'colores'
nombres.add("Pedro") // Agrega un nuevo elemento al final de la lista 'nombres'
Diferencias Clave
- Los arrays tienen un tamaño fijo que se define al momento de su creación, mientras que las listas pueden crecer o disminuir de tamaño dinámicamente.
- Los elementos de un array deben ser del mismo tipo, mientras que una lista puede contener elementos de diferentes tipos.
- Las listas proporcionan más funciones útiles, como agregar, eliminar o modificar elementos, mientras que los arrays son más simples en su funcionalidad.
En resumen, tanto los arrays como las listas son estructuras de datos útiles en Kotlin, y la elección entre ellas depende de los requisitos específicos de tu aplicación y de la flexibilidad que necesites en cuanto al tamaño y tipo de elementos que contendrá la colección.
Da clic al boton: Tu suscripcion al canal y likes a los videos, es la mejor manera de agradecer este curso gratuito!
Da clic al boton: Tu suscripcion al canal y likes a los videos, es la mejor manera de agradecer este curso gratuito!