Kotlin vs Java es una pregunta que cada día es mas habitual hacerse. Kotlin es uno de los nuevos lenguajes de programación que empieza a tener peso en la plataforma Java por su sencillez a nivel de sintaxis. Vamos a ver un ejemplo de manejo sencillo de clases que nos permita darnos cuenta del nivel de ahorro de código usando la clase Persona:
package ejemplo0; public class Persona { private String nombre; private String apellidos; private int edad; public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String getApellidos() { return apellidos; } public void setApellidos(String apellidos) { this.apellidos = apellidos; } public int getEdad() { return edad; } public void setEdad(int edad) { this.edad = edad; } public Persona(String nombre, String apellidos, int edad) { this.nombre = nombre; this.apellidos = apellidos; this.edad = edad; } }
Este es el código de la clase Persona , si escribimos algo similar con Kotlin nos encontraremos con algo de este estilo:
package ejemplo1 class Persona { var nombre:String var apellidos:String var edad:Int constructor( nombre:String, apellidos:String,edad:Int ) { this.nombre=nombre; this.apellidos=apellidos; this.edad=edad; } }
Es un ahorro significativo ya que declaramos las variables y generamos el constructor no hace falta añadir visibilidad a las variables ya que estas son públicas por defecto. En principio la simplificación es interesante pero Kotlin permite simplificaciones mucho más fuertes . Ya que dispone de constructores que declaran a la vez las variables :
package ejemplo2 class Persona constructor(var nombre:String ,var apellidos:String , var edad:Int){}
Kotlin vs Java y funciones
En este caso la reducción de código es dramática y nos permite escribir mucho menos.
A esto le podemos añadir en cualquier momento una función que por ejemplo nos diga si la Persona esta o no jubilada.
class Persona constructor(var nombre:String ,var apellidos:String , var edad:Int){ fun estaJubilado():Boolean = edad>65 }
Como vemos también la sintaxis del método es muy muy compacta a la hora de declarar la función . Una vez construido el código solo necesitamos un programa Main que nos permita invocarlo :
import ejemplo2.Persona fun main(args: Array<String>) { var persona1 = Persona("pepe", "perez", 20) println(persona1.nombre) println(persona1.apellidos) println(persona1.edad) println(persona1.estaJubilado()) }
Si ejecutamos el código nos encontraremos con :
Acabamos de ver como de compacto es usar Kotlin a nivel de sintaxis vs Java tengámoslo cada día más en cuenta como uno de los lenguajes de referencia: