Siguiendo con la segunda entrega del tutorial de OOP, continuaremos con los conceptos de Setters y Getters.
Es aquí donde empieza a entrar en juego uno de los pilares del paradigma OOP, el encapsulamiento. No es exclusivamente set y get los que definen dicho pilar pero ellos implementan y permiten que suceda (también entran los métodos)
Que significa encapsular? En poder definir el alcance, visibilidad de cualquier atributo o método de una clase, esto nos otorga un par de beneficios, como que nadie asigne valores por equivocación o sobrescriban funcionalidades cuando no deben. También permite la programación que se llama “Caja Negra“, al tener atributos y métodos privados un programador que usará esa clase, no necesitará conocer como lo hace, sino sólamente que hace.
Es buena práctica crear los atributos con el modificador private mientras que los setter y getter con public aunque ésto no es la ley tampoco, puede existir algún caso que necesite romper esta recomendación. De ésta manera las variables atributos podrán ser accedidas y modificadas no directamente sino a través de los set y get.
Siguiente con el ejemplo que veiamos en la primer parte del tutorial, agregaremos éste nuevo concepto al código ya existente. Verán que al final se ejecutará lo mismo pero esta vez ya utilizando los Setter y Getter, además que desde otras clases externas no podrán más modificar ni acceder a los atributos de la clase, obligatoriamente deberán pasar por el Set y Get.
JAVA
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | package devtroce; public class Persona { /** * @author GeekZero@DevTroce.com */ // lista de atributos que la definen private String Nombre; private String Apellido; private String Documento; private int Peso; private String Ojos; private char Sexo; public String getApellido() { return Apellido; } public void setApellido(String Apellido) { this.Apellido = Apellido; } public String getDocumento() { return Documento; } public void setDocumento(String Documento) { this.Documento = Documento; } public String getNombre() { return Nombre; } public void setNombre(String Nombre) { this.Nombre = Nombre; } public String getOjos() { return Ojos; } public void setOjos(String Ojos) { this.Ojos = Ojos; } public int getPeso() { return Peso; } public void setPeso(int Peso) { this.Peso = Peso; } public char getSexo() { return Sexo; } public void setSexo(char Sexo) { this.Sexo = Sexo; } // metodo para poder ejecutar la clase en Java (irrelevante para el conceto estudiado) public static void main(String[] args) { // instancia de la clase persona // el nombre del objeto debe ser distinto que el nombre de su clase, // puede tener cualquiera que querramos Persona persona = new Persona(); // asignación de valores al objeto persona.setNombre("Linus"); persona.setApellido("Torvals"); persona.setDocumento("777"); persona.setPeso(80); persona.setOjos("Azul"); persona.setSexo('M'); // instancia de la clase persona Persona otraPersona = new Persona(); // asignación de valores al objeto otraPersona.setNombre("Winona"); otraPersona.setApellido("Raider"); otraPersona.setDocumento("666"); otraPersona.setPeso(65); otraPersona.setOjos("Marrones"); otraPersona.setSexo('F'); // listado System.out.println("La primer persona es: " + persona.getNombre() + " " + persona.getApellido()); System.out.println("La segunda persona es: " + otraPersona.getNombre() + " " + otraPersona.getApellido()); } } |
Visual Basic .Net
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | ' @author GeekZero@DevTroce.com Public Class Persona ' lista de atributos que la definen Private _Nombre As String Private _Apellido As String Private _Documento As String Private _Peso As Integer Private _Ojos As String Private _Sexo As Char Public Property Nombre() As String Get Return _Nombre End Get Set(ByVal value As String) _Nombre = value End Set End Property Public Property Apellido() As String Get Return _Apellido End Get Set(ByVal value As String) _Apellido = value End Set End Property Public Property Documento() As String Get Return _Documento End Get Set(ByVal value As String) _Documento = value End Set End Property Public Property Peso() As String Get Return _Peso End Get Set(ByVal value As String) _Peso = value End Set End Property Public Property Ojos() As String Get Return _Ojos End Get Set(ByVal value As String) _Ojos = value End Set End Property Public Property Sexo() As String Get Return _Sexo End Get Set(ByVal value As String) _Sexo = value End Set End Property Public Sub Mostrar() ' instancia de la clase persona ' el nombre del objeto debe ser distinto que el nombre de su clase, ' puede tener cualquiera que querramos Dim persona As Persona = New Persona ' asignación de valores al objeto persona.Nombre = "Linus" persona.Apellido = "Torvals" persona.Documento = "777" persona.Peso = 80 persona.Ojos = "Azul" persona.Sexo = "M" ' instancia de la clase persona Dim otraPersona As Persona = New Persona ' asignación de valores al objeto otraPersona.Nombre = "Winona" otraPersona.Apellido = "Raider" otraPersona.Documento = "666" otraPersona.Peso = 65 otraPersona.Ojos = "Marrones" otraPersona.Sexo = "F" ' listado Debug.WriteLine("La primer persona es: " + persona.Nombre + " " + persona.Apellido) Debug.WriteLine("La segunda persona es: " + otraPersona.Nombre + " " + otraPersona.Apellido) End Sub End Class |
En la tercer entrega veremos ya el uso y significado de los métodos de una clase. Para que sirven y cómo se usan.








en
en
en
Muchas gracias!
Gracias!!!