En el mundo de la programación orientada a objetos, Scala ofrece un sólido soporte para la creación de clases, que son la piedra angular de la construcción de estructuras de software robustas y reutilizables. Las clases en Scala nos permiten definir objetos con atributos y comportamientos, lo que facilita la organización del código y la creación de abstracciones.
En Scala, una clase se define utilizando la palabra clave class
seguida del nombre de la clase y un conjunto de parámetros opcionales. Veamos un ejemplo básico de cómo se ve la definición de una clase en Scala:
class Persona(nombre: String, edad: Int) {
// Cuerpo de la clase
}
En este ejemplo, hemos definido una clase llamada Persona
con dos parámetros: nombre
de tipo String
y edad
de tipo Int
. El cuerpo de la clase, que se encuentra dentro de las llaves {}
, contendrá los atributos, métodos y demás miembros de la clase.
Atributos de clase:
Los atributos de una clase en Scala se definen utilizando la palabra clave val
o var
, seguida del nombre del atributo y su tipo. La diferencia entre val
y var
radica en la mutabilidad del atributo. Un atributo definido con val
es inmutable (es decir, su valor no puede cambiar una vez asignado), mientras que un atributo definido con var
es mutable (puede cambiar su valor).
class Persona(nombre: String, edad: Int) {
val nombreCompleto: String = nombre // atributo inmutable
var edadActual: Int = edad // atributo mutable
}
En este ejemplo, hemos definido dos atributos en la clase Persona
: nombreCompleto
como un atributo inmutable que toma el valor del parámetro nombre
, y edadActual
como un atributo mutable que toma el valor del parámetro edad
.
Métodos de clase:
Los métodos son funciones definidas dentro de una clase y proporcionan el comportamiento de la clase. Pueden acceder y manipular los atributos de la clase, así como realizar otras operaciones. Veamos un ejemplo de cómo definir un método en una clase:
class Persona(nombre: String, edad: Int) {
def saludar(): Unit = {
println(s"Hola, mi nombre es $nombre y tengo $edad años.")
}
}
En este ejemplo, hemos definido un método llamado saludar
que imprime un mensaje utilizando los valores de los atributos nombre
y edad
.
Creación de instancias de clase:
Una vez definida una clase, podemos crear instancias u objetos de esa clase utilizando el operador new
. Veamos un ejemplo de cómo crear una instancia de la clase Persona
:
val persona1 = new Persona("Miguel", 30)
En este ejemplo, hemos creado una instancia de la clase Persona
llamada persona1
con los valores “Juan” y 30 para los parámetros nombre
y edad
, respectivamente.