INGENIERÍA EN SISTEMAS COMPUTACIONALES “PROGRAMACION ANDROID” DOCENTE: MCC. MANUEL HERNANDEZ HERNANDEZ ALUMNO: ALEJANDRO ACOSTA ALVARADO TRABAJO: Guía de sintaxis Kotlin GRUPO: “ISC - 7A” 1 INDICE INTRODUCCION ................................................................................................... 3 Sintaxis de Kotlin..................................................................................................... 4 Construcciones básicas .......................................................................................... 4 Flujo de control ....................................................................................................... 5 Clases y objetos...................................................................................................... 5 Encapsulación y funciones de clase ........................................................................ 6 Funciones............................................................................................................... 7 Inferencia de tipo .................................................................................................... 8 2 INTRODUCCION En esta guía rápida se conocerá la sintaxis básica del lenguaje de programación kotlin el cual se utiliza en el desarrollo de aplicaciones móviles al igual que otro kotlin tiene parentescos con otros lenguajes por lo cual al conocer ya uno puede que entender las funciones básicas sea mas fácil para el usuario usarlo para el desarrollo, pero aquí solo estará lo básico que un usuario normal pueda buscar y entender lo principal para empezar a usar kotlin. 3 Sintaxis de Kotlin Kotlin es un lenguaje de programación de tipado estático que se ejecuta en la Máquina Virtual de Java (JVM) y se puede utilizar para desarrollar todo tipo de aplicaciones, desde escritorio hasta web y móviles. La sintaxis de Kotlin es una de las principales razones de su creciente popularidad entre los desarrolladores, ya que es concisa, expresiva y está diseñada para ser segura en cuanto a tipos y nulos. Construcciones básicas Variables En Kotlin, puedes definir variables utilizando la palabra clave 'val' o 'var'. 'val' es para variables de solo lectura (finales o constantes), y 'var' es para variables mutables. Por ejemplo: Tipos de datos Kotlin tiene varios tipos de datos incorporados para números, caracteres, booleanos y arrays. Por ejemplo: 4 Flujo de control Sentencias condicionales Al igual que cualquier otro lenguaje de programación, Kotlin también tiene sentencias 'if-else' y 'when' (switch). Bucles Kotlin soporta los bucles 'for', 'while' y 'do-while', así como las sentencias 'break' y 'continue'. Clases y objetos Definición de una clase En Kotlin, una clase se define utilizando la palabra clave 'class'. 5 Creación de objetos Los objetos de una clase se crean de manera similar a cómo se crean en Java por lo cual se declara por la variable que se usara como objeto. Encapsulación y funciones de clase Las clases usan funciones para modelar el comportamiento. Las funciones pueden modificar el estado, lo que te ayuda a exponer solamente los datos que deseas exponer. Este control de acceso forma parte de un concepto orientado a objetos de mayor tamaño, conocido como encapsulación. En el siguiente ejemplo, la propiedad de doorLock se mantiene en privado respecto de cualquier elemento fuera de la clase de Car. Para desbloquear el auto, debes llamar a la función unlockDoor() y pasar una clave válida, como se muestra en el siguiente ejemplo: 6 Funciones Definición de una función Las funciones en Kotlin se definen utilizando la palabra clave 'fun'. Llamada a una función Las funciones se pueden llamar por sus nombres. Funciones de orden superior Una función puede tomar otra función como argumento. Las funciones que usan otras funciones como argumentos se llaman funciones de orden superior. Este patrón es útil para la comunicación entre los componentes. Del mismo modo, puedes usar una interfaz de devolución de llamada en Java. El siguiente es un ejemplo de una función de orden superior: 7 Inferencia de tipo Cuando se asigna un valor inicial a languageName, el compilador de Kotlin puede inferir el tipo en función del tipo del valor asignado. Debido a que el valor de "Kotlin" es de tipo String, el compilador infiere que languageName también es String. Ten en cuenta que Kotlin es un lenguaje de tipo estático. Eso quiere decir que el tipo se resuelve en el tiempo de compilación y no cambia nunca. En el siguiente ejemplo, languageName se infiere como String, de manera que no puedes llamar a ninguna de las funciones que no forman parte de la clase de String: Excepciones El bloque finally se ejecuta luego de que se aplique o no algún bloque catch. Normalmente aquí liberas los recursos que has tomado del sistema y limpias referencias para evitar fugas de memoria.Tomemos como ejemplo la conversión de un String a Double. Supongamos que deseamos crear una función de extensión que envuelva a la función String.toDouble() para que retorne un valor por defecto en caso de que se lance una excepción del tipo NumberFormatException. 8 Excepciones Marcadas Kotlin no diferencia entre excepciones marcadas y no marcadas (checked y unchecked). Las funciones no deben especificar explícitamente que tipo de excepción lanzaran (como el uso de la cláusula throws en la firmas de métodos en Java), ni tampoco se te obliga a atrapar excepciones. Esto quiere decir que cuando escribes sentencias que invoquen operaciones que lancen excepciones marcadas desde el SDK de Java, el compilador de Kotlin no te resaltará su uso sin bloque try..catch. Por ejemplo, como intentar abrir un archivo que no existe. POO En Kotlin Herencia La Clase Any La clase Any es la raíz de la jerarquía de clases en Kotlin. Cada clase en el lenguaje derivará de ella si no especificas una superclase. Si vas a la declaración de Any.kt desde IntelliJ IDEA, verás que tiene 3 métodos: • • • equals(): Indica si otro objeto es igual al actual hashCode(): Retorna el código hash asociado al objeto toString(): Retorna la representación en String del objeto Por ejemplo, ejecuta los métodos anteriores con dos instancias de Ejemplo: 9 Sintaxis De Herencia En Kotlin Para aplicar herencia en Kotlin, añade a la sintaxis de declaración de la clase así: • • • Añade el modificador open para habilitar su capacidad de herencia Añade dos puntos para expresar en la cabecera, que extiende de otra Añade los paréntesis al final del nombre de la superclase para especificar la llamada a su constructor. Constructor Primario En Herencia Si la superclase tiene constructor primario, debes inicializarlo pasando los parámetros en la llamada de la sintaxis de herencia. Constructor Secundario En Herencia Si la clase base no tiene constructor primario o deseas realizar la llamada del mismo, desde un constructor secundario de la subclase, entonces usa constructor junto a la palabra reservada super para la llamada. 10 Sobrescribir Métodos Aplicar polimorfismo con la sobrescritura de métodos en Kotlin, requiere habilitar el método con el modificador open. Luego usa el modificador override desde el método polifórmico la subclase. Por ejemplo: Sobrescribir Propiedades Similar a la sobrecritura de métodos, sobrescribir una propiedad requiere usar el modificador override sobre la propiedad en la subclase. Si la propiedad está declarada con val en la clase padre, es posible reescribirla con var en la clase hija. Sin embargo, lo contrario no es posible. Por ejemplo: 11