- 1

Fundamentos de Kotlin: Variables, funciones y estructuras de datos
01:47 - 2

Instalación y configuración de IntelliJ IDEA para Kotlin
11:16 - 3

Creación de proyecto Kotlin en IntelliJ y primer programa
13:47 - 4

Variables y tipos de datos básicos en Kotlin
20:58 - 5

Operadores aritméticos y módulo en Kotlin
14:28 - 6

Operadores lógicos AND, OR y NOT en programación
20:51 - 7

Manejo de valores nulos y operadores seguros en Kotlin
12:30 - 8

Lectura de datos por consola con readLine() en Kotlin
14:49 quiz de Fundamentos de Kotlin
Modificadores de visibilidad y encapsulamiento en Kotlin
Clase 25 de 35 • Curso de Kotlin
Contenido del curso
- 9

Creación de funciones en Kotlin para organizar código
20:21 - 10

Condicionales en Kotlin: if/else
17:14 - 11

Estructura when de Kotlin para múltiples condiciones
17:44 - 12

Arrays y listas mutables en Kotlin: creación y manipulación
18:19 - 13

Listas inmutables y mutables en Kotlin
10:13 - 14

Ciclos for, while y do while en Kotlin para iterar colecciones
18:57 quiz de Contro de Flujo y Funciones
- 15

Creación de clases y objetos en Kotlin
17:05 - 16

Getters y setters en Kotlin: validación y propiedades calculadas
14:38 - 17

Dataclases en Kotlin: ventajas sobre clases normales
16:46 - 18

Enums en Kotlin: Constantes organizadas para casos específicos
20:33 - 19

Manejo de excepciones con Try Catch Finally en Kotlin
19:40 quiz de Programación Orientada a Objetos en Kotlin
- 20

Extension functions en Kotlin para ampliar clases existentes
18:14 - 21

Funciones de alto orden y lambdas en Kotlin
22:37 - 22

Uso de lambdas y funciones de alto orden en arrays y colecciones
10:05 - 23

Scope functions de Kotlin: let, apply y run para manipular objetos
15:30 - 24

Funciones with y also en Kotlin para operaciones múltiples
11:09 - 25

Modificadores de visibilidad y encapsulamiento en Kotlin
17:06 - 26

Interfaces y patrón repository en Kotlin para gestión de datos
20:00 quiz de Características Avanzadas de Kotlin
- 31

Creación de modelos y repositorios para simulador de emails en Kotlin
22:57 - 32

Creación de clase service para coordinar repositorios en Kotlin
18:19 - 33

Implementación de funciones avanzadas del servicio Inbox en Kotlin
21:19 - 34

Interfaz por consola para gestión de correos en Kotlin
16:50 - 35

Pruebas de funcionalidades de correo en Kotlin
07:32
El encapsulamiento es un concepto clave en la programación orientada a objetos que permite proteger la información interna de una clase mediante el uso de modificadores de visibilidad. Al restringir el acceso directo desde fuentes externas, puedes evitar manipulaciones indeseadas y mantener la integridad de tus datos y operaciones.
¿Qué son los modificadores de visibilidad?
Los modificadores de visibilidad definen el nivel de acceso que tendrán variables y métodos en las clases:
- Public: todos los elementos son accesibles desde fuera por defecto si no se especifica lo contrario.
- Private: restringe el acceso para que solo sea visible internamente en la clase.
Por ejemplo, al crear una clase Email, podrías tener ciertas variables públicas que se pueden acceder fácilmente y algunas privadas que necesiten protección por razones de seguridad.
¿Cómo usar modificadores de visibilidad en variables y métodos?
Cuando crees un objeto como un Email con un asunto y una contraseña, normalmente no querrías exponer la contraseña directamente fuera del objeto. Para ello, Kotlin permite declarar variables como private, protegiéndolas de accesos externos:
class Email(val subject: String, private val password: String)
Un método para enviar correos debe estar expuesto al exterior, pero una función para cifrarlos suele ser un detalle interno. De esa forma, también declaras métodos privados:
private fun encrypt() {
// lógica de cifrado
}
Así, controlas las operaciones permitidas desde otros lugares.
¿Qué es la herencia en Kotlin y cómo influye en la visibilidad?
La herencia permite crear clases nuevas basadas en clases existentes, reutilizando sus métodos y atributos.
Para poder extender una clase, necesitas usar el modificador open en tu clase base, ya que por defecto Kotlin restringe esta capacidad:
open class Email(val subject: String, private val password: String)
class SecureEmail(subject: String, password: String) : Email(subject, password) {
fun showHashingAlgorithm() = "SHA-1"
}
La clase que hereda (SecureEmail) puede añadir nuevas funcionalidades mientras mantiene la capacidad de sus padres (Email).
¿Cómo aplicar encapsulamiento en un ejemplo práctico?
Si tienes una clase de cuenta bancaria (BankAccount), puedes seguir estos pasos:
- Declara la variable balance con visibilidad privada para proteger el valor del dinero.
- Crea un método público deposit para que usuarios externos puedan aumentar el balance.
- Implementa un método privado de validación para asegurar que los depósitos sean correctos internamente.
De esta manera:
class BankAccount(private var balance: Double) {
fun deposit(amount: Double) =
if (validate(amount)) {
balance += amount
"Depósito exitoso, nuevo balance: $balance"
} else "Cantidad inválida"
private fun validate(amount: Double) = amount > 0
}
Esta implementación sencilla asegura tanto la seguridad de los datos como la claridad en la lógica de negocio aplicada.
Anímate a implementar estos conceptos en tus próximos proyectos y comparte tu experiencia en los comentarios.