Curso Scala [Parte 6]: Definición de clases
Scala es un lenguaje orientado a objetos y cuenta con el concepto de clase. Una clase en Scala es declarada casi igual que en Java pero con diferente sintaxis, igual que todo lo que hemos estado viendo a lo largo de este curso. Sin embargo, y a diferencia del lenguaje Java, una clase de Scala puede tener parámetros. Para este tutorial se va a realizar un ejemplo muy sencillo que consistirá en definir una clase con dos puntos 'x' e 'y' con una posición inicial y dentro de la clase se definirá un método para mover dichos puntos a una determinada posición. Por lo tanto, para ilustrar el paso de parámetros en una clase de Scala se va a definir la clase Punto: class Punto ( x_param: Int, y_param: Int) { // Asignación de los parámetros a los atributos // de la clase: x, y var x: Int = x_param var y: Int = y_param } Tal y como se puede apreciar en el ejemplo anterior, la clase recibe dos parámetros de tipo Integer y se los asigna a sus atributos 'x' e 'y'. Por otra parte, hay que definir el método moverPunto para tener la posibilidad de desplazar un punto dadas sus coordenadas. El funcionamiento de este nuevo método es sencillo: se le pasan dos parámetros que es la distancia que debe ser movido cada punto, es decir, un incremento. Tras realizar la suma, se muestra por pantalla la nueva posición del punto. class Punto ( x_param: Int, y_param: Int) { // Asignación de los parámetros a los atributos // de la clase: x, y var x: Int = x_param var y: Int = y_param def moverPunto (distancia_x: Int, distancia_y: Int) { x = x + distancia_x y = y + distancia_y println("La nueva posición del punto es: ( " + x + ", " + y + ")"); } def localizaPunto () { println("La posición del punto es: (" + x + ", " + y + ")"); } } Además del método moverPunto, se ha definido localizaPunto, que únicamente muestra por pantalla la posición actual del punto.
Objetos Singleton
Un singleton es una clase que solo puede tener una instancia y que en Scala es creado utilizando la palabra object en lugar de class. Es en el singleton donde se suele definir la función main que se utiliza en Java para comenzar la ejecución de un programa. En Scala es exactamente igual. En este ejemplo se creará el singleton en el mismo fichero que la clase para que sea más sencillo. El singleton tendrá el nombre EjemploClases y contendrá la función main. class Punto ( x_param: Int, y_param: Int) { // Asignación de los parámetros a los atributos // de la clase: x, y var x: Int = x_param var y: Int = y_param def moverPunto (distancia_x: Int, distancia_y: Int) { x = x + distancia_x y = y + distancia_y println("La nueva posición del punto es: ( " + x + ", " + y + ")"); } def localizaPunto () { println("La posición del punto es: (" + x + ", " + y + ")"); } } object EjemploClases { def main(args: Array[String]) { val punto = new Punto(1, 2) punto.localizaPunto punto.moverPunto(4, 4) punto.localizaPunto } }Al comienzo de la ejecución del programa se crea un punto en la posición (1, 2) y tras esto se le añaden 4 unidades de distancia a cada componente. El resultado es el que se puede apreciar a continuación: mario@ubuntu:~$ scalac EjemploClases.scala mario@ubuntu:~$ scala EjemploClases La posición del punto es: (1, 2) La nueva posición del punto es: (5, 6) La posición del punto es: (5, 6) Esto es todo por este tutorial. Para ver el anterior, podéis hacer click aquí. ¡Saludos!