Sobes.tech
Junior

Habla sobre los modificadores de acceso en Java y Kotlin.

sobes.tech AI

Respuesta de la IA

En Java:

  • public: accesible desde cualquier lugar.
  • protected: accesible dentro de la clase, paquete y subclases.
  • (sin modificador): accesible dentro del paquete (package-private).
  • private: accesible solo dentro de la clase.

En Kotlin:

  • public: accesible desde cualquier lugar (por defecto).
  • internal: accesible dentro del módulo.
  • protected: accesible dentro de la clase y sus subclases (diferente de Java en cuanto al acceso en el paquete).
  • private: accesible solo dentro de la clase/archivo.

Diferencias:

  • En Kotlin no existe el modificador "package-private", su equivalente es internal con un alcance diferente (el módulo).
  • En Kotlin protected no proporciona acceso dentro del paquete, como en Java.
  • En Kotlin private también puede usarse para declaraciones de nivel superior (funciones, propiedades) en un archivo, haciéndolas accesibles solo dentro de ese archivo.
// Ejemplo en Kotlin
package com.example.myapp

private const val API_KEY = "secret" // Solo visible en este archivo

class MyClass {
    private val internalState = 1 // Solo visible dentro de MyClass
    protected fun protectedMethod() {} // Visible en MyClass y sus subclases
    internal fun internalMethod() {} // Visible dentro del módulo
}