Getters y Setters | Sololearn: Learn to code for FREE!
New course! Every coder should learn Generative AI!
Try a free lesson
+ 2

Getters y Setters

public class Vehicle { private String color; // Getter public String getColor() { return color; } // Setter public void setColor(String c) { this.color = c; } } class Program { public static void main(String[ ] args) { Vehicle v1 = new Vehicle(); v1.setColor("Red"); System.out.println(v1.getColor()); } } De todo este codigo solo tengo dudas sobre el Setter. No entiendo que es la letra C

5th Aug 2019, 10:33 AM
Leonardo Mazziotti
Leonardo Mazziotti - avatar
6 Answers
+ 4
Te explico para ver si lo hago entendible: El setter es un método igual que cualquier otro, con la particularidad de que como norma, se usa para modificar los atributos de una clase. Por tanto al ser un método su sintaxis es <visibilidad (public, private o protected)> <tipo de dato que reretornará> <nombre función> (<argumento>) Por tanto en resumen a tu pregunta, la c le indica al compilador que este método necesita 1 argumento en este caso de tipo String, en caso de necesitar 2 argumentos sería serColor(String c, int b), c y b en este caso definen que tienen que ser 2 argumentos. Espero te haya ayudado. Saludos
6th Aug 2019, 12:36 PM
Yoel
Yoel - avatar
+ 2
Your initializing the color variable in your object using the set method. this.color = c basicly means find the color variable in the object and set its colour to the same value as the c parameter. This is called encapsulation because you have to use a method to set a private field you cannot accsess it directly. v1.color="red"; would not work, but if you remove the private accsess modifier it will work. Estás inicializando la variable de color en tu objeto usando el método set. this.color = c básicamente significa encontrar la variable de color en el objeto y establecer su color en el mismo valor que el parámetro c. Esto se llama encapsulación porque tiene que usar un método para establecer un campo privado que no puede acceder directamente. v1.color = "rojo"; no funcionaría, pero si elimina el modificador de acceso privado funcionará.
5th Aug 2019, 11:39 AM
D_Stark
D_Stark - avatar
+ 2
public class Vehicle { String color; //removed private // Getter public String getColor() { return color; } // Setter public void setColor(String c) { this.color = c; } } class Program { public static void main(String[ ] args) { Vehicle v1 = new Vehicle(); v1.color="red"; //set color directly System.out.println(v1.getColor()); } }
5th Aug 2019, 11:46 AM
D_Stark
D_Stark - avatar
+ 1
c is a parameter were "red" was passed to it from the main method v1.setColor("red") and sets the private String color variable. Then getColor() returns the color that the SetColor() method set. c es un parámetro donde se le pasó "rojo" desde el método principal v1.setColor ("rojo") y establece la variable de color de Cadena privada. Luego getColor () devuelve el color que estableció el método SetColor ().
5th Aug 2019, 11:25 AM
D_Stark
D_Stark - avatar
+ 1
Pero entonces este parametro no es un valor que se le asigna a Color, sino que es necesario para inicializar el Setter?
5th Aug 2019, 11:31 AM
Leonardo Mazziotti
Leonardo Mazziotti - avatar
+ 1
Muchas gracias
5th Aug 2019, 11:43 AM
Leonardo Mazziotti
Leonardo Mazziotti - avatar