Getter y Setter en Scala son métodos que nos ayudan a obtener el valor de las variables e instanciar variables de clase/rasgo respectivamente. Scala genera una clase para la JVM con un campo de variable privado y métodos getter y setter. En Scala, los getters y setters no se denominan getXxx y setXxx, pero se usan con el mismo propósito. En cualquier momento, podemos redefinir los métodos getter y setter nosotros mismos.
Setters
Setter es una técnica a través de la cual establecemos el valor de las variables de una clase. Establecer una variable de clase es simple, se puede hacer de dos maneras: –
- Primero si los miembros de una clase son accesibles desde cualquier lugar. es decir, no se especifica ningún modificador de acceso.
Ejemplo:// A Scala program to illustrate
// Setting the variable of a class
// Name of the class is Student
class
Student
{
// Class variables
var
student
_
name
:
String
=
" "
var
student
_
age
:
Int
=
0
var
student
_
rollno
=
0
}
// Creating object
object
Main
{
// Main method
def
main(args
:
Array[String])
{
// Class object
var
obj
=
new
Student()
obj.student
_
name
=
"Yash"
obj.student
_
age
=
22
obj.student
_
rollno
=
59
println(
"Student Name: "
+ obj.student
_
name)
println(
"Student Age: "
+ obj.student
_
age)
println(
"Student Rollno: "
+ obj.student
_
rollno)
}
}
Producción:
Student Name: Yash Student Age: 22 Student Rollno: 59
Por razones de seguridad no se recomienda. Como acceder directamente a los miembros de la clase no es un buen método para iniciar y cambiar el valor, ya que permitirá que otros identifiquen la variable.
- Segundo, si los miembros de una clase se definen como privados. La iniciación de las variables se realiza pasando la variable al método público de esa clase usando el objeto de la clase.
Ejemplo:// A Scala program to illustrate
// Setting the private variable of a class
// Name of the class is Student
class
Student
{
// Class variables
var
student
_
name
:
String
=
" "
var
student
_
age
:
Int
=
0
private
var
student
_
rollno
=
0
// Class method
def
set
_
roll
_
no(x
:
Int)
{
student
_
rollno
=
x
}
}
// Creating object
object
GFG
{
// Main method
def
main(args
:
Array[String])
{
// Class object
var
obj
=
new
Student()
obj.student
_
name
=
"Yash"
obj.student
_
age
=
22
//error: variable student_rollno in class
// Student cannot be accessed in Student
//obj.student_rollno= 59
obj.set
_
roll
_
no(
59
)
// Directly getting the value of variable
println(
"Student Name: "
+ obj.student
_
name)
// Directly getting the value of variable
println(
"Student Age: "
+obj.student
_
age)
// Through method calling
println(
"Student Rollno: "
+obj.student
_
rollno)
}
}
captadores
Los captadores son una técnica mediante la cual obtenemos el valor de las variables de una clase.
- Obtener el valor de una variable global directamente. En el que llamamos especificar el nombre de la variable con el objeto.
- Obtener el valor de una variable a través de llamadas a métodos utilizando el objeto. Esta técnica es buena cuando no tenemos acceso a las variables de clase pero los métodos están disponibles públicamente.
Ejemplo:// A Scala program to illustrate
// Getting the value of members of a class
// Name of the class is Student
class
Student
{
// Class variables
var
student
_
name
:
String
=
" "
var
student
_
age
:
Int
=
0
// Getter
private
var
student
_
rollno
=
0
// Class method
def
set
_
rollno(x
:
Int){
student
_
rollno
=
x
}
def
get
_
rollno()
:
Int
=
{
return
student
_
rollno
}
}
// Creating object
object
Main
{
// Main method
def
main(args
:
Array[String])
{
// Class object
var
obj
=
new
Student()
obj.student
_
name
=
"Yash"
obj.student
_
age
=
22
obj.set
_
rollno(
59
)
// Directly getting the value of variable
println(
"Student Name: "
+ obj.student
_
name)
// Directly getting the value of variable
println(
"Student Age: "
+ obj.student
_
age)
// Through method calling
println(
"Student Rollno: "
+ obj.get
_
rollno)
}
}
Producción :
Student Name: Yash Student Age: 22 Student Rollno: 59