Tambien para generar rapidamente los metodos Getters y Setters en IntelliJ IDEA basta con oprimir Alt+ins , seleccionar Getter o Setter y seleccionar los atributos privados.
Entender la Programación orientada a objetos
Programación orientada a objetos en Java
¿Qué es un Objeto?
Abstracción: ¿Qué es una Clase?
Modularidad
Definir Clases y sus componentes
Creando nuestra primera Clase
Método constructor
Static: Variables y Métodos Estáticos
Creando elementos estáticos
Final: Variables Constantes
Sobrecarga de métodos y constructores
¡Reto!
Encapsulamiento: Modificadores de acceso
Getters y Setters
Variable vs. Objeto
Variable vs. Objeto: Un vistazo a la memoria
Clases Anidadas
Clases Internas y Locales a un método
Enumerations
Reutilizar Código
¿Qué es la Herencia? Don't repeat Yourself
Super y This
Polimorfismo: Sobreescritura de Métodos
Polimorfismo: Sobreescribiendo el método toString
Interfaces
Creando una interfaz para definir si una fecha es agendable
Collections
Aplicar Abstracción
Clases Abstractas
Miembros abstractos
Clases Anónimas
Diferencias entre las Interfaces y las Clases Abstractas
Interfaces en Java 8 y 9
Herencia en interfaces
Ensamblando Objetos el proyecto
Simulando autenticación de usuarios
Modularizando la UI de Doctores
Definiendo las citas disponibles
Modularizando la UI de Pacientes
Recorriendo estructuras de árbol en Java
Agendando Citas
Cierre del curso: Continúa con Programación Funcional en Java
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Los Getters y Setters nos permiten leer y escribir (respectivamente) los valores de nuestras variables privadas desde fuera de la clase donde fueron creadas. Con los Getters obtenemos los datos de las variables y con los Setters asignamos o cambiamos su valor.
También puedes usar los atajos de tu IDE favorito para generar los métodos getters y setters de todas o algunas de tus variables.
public class Patient {
private String name;
public String getName() {
return "Patient name is " + this.name;
}
public void setName(String newName) {
this.name = newName;
}
}
Aportes 106
Preguntas 20
Tambien para generar rapidamente los metodos Getters y Setters en IntelliJ IDEA basta con oprimir Alt+ins , seleccionar Getter o Setter y seleccionar los atributos privados.
Los getters y setters son métodos públicos que nos ayudan a leer y/o modificar nuestras variables privadas. 👍
Para los que no tienen acceso al menu de Generate en IntelliJ con “ctrl + N” el shortcut es “Alt + Insert”
Un ejemplo claro para aquellos que no les quedo claro el concepto es cuando creamos una cuenta en algún correo o medio digital que requiera un login, al momento de introducir una contraseña muchos servicios de este tipo nos piden que la contraseña incluya una letra mayúsculas, minúsculas y a veces hasta un carácter especial como un “.”, si nosotros no hacemos caso y metemos una contraseña que no cumpla con esta condiciones nos arroja un mensaje de error tantas veces como intentemos crearla sin cumplir con los requerimientos, y solo nos dejara avanzar cuando se cumple la condición requerida, esto asegura que los usuarios siempre introducirán la contraseña cumpliendo con las condiciones requeridas por las políticas de la pagina o servicio.
hay una herramienta que se llama lombok, que te genera muchos metodos como getters y setters o constructores con anotaciones para que quede mas limpio el codigo
Para la generación de los getters y setters en intellij IDEA en la versión 2021.3 en Windows lo que tuve que hacer fue:
con un clic en el código buscas la opción de "Generate…"
y luego aparece la misma pantalla me muestra Anahí para la selección.
en el menú superior en la opción de “Code” buscas también la misma opción de “Generate…”
y como ya lo mencionaron con el atajo de teclado “Alt + ins”.
Cada vez se pone más y más interesante el curso, no quiero parar de aprender!!
APUNTES DE LA CLASE
Hay algún curso o clase donde enseñen a relacionar esto con una base de datos?
Llevo 4 años estudiando programación en Java y hoy es el primer día que entiendo get y set
Si quieren complementar la clase de Getters y Setters les comparto esta clase universitaria para comprender a fondo como utilizarlos:
https://www.youtube.com/watch?v=7BCOXfKl8Cc&list=PLhU2otMFcLuCQPcEcRQfi3UQQ-ms5YH0L&index=15&t=412s
Como puedo entrar a ver encapsula miento mas a detalle?
Este concepto no lo vi en mis clases de POO en la Universidad, que genial aprender cosas nuevas. 🤠
Dejo por acá un link por si quieren profundizar en este tema
https://www.youtube.com/watch?v=7ALMZymOs_s&list=PLU8oAlHdN5BktAXdEVCLUYzvDyqRQJ2lk&index=30
✨ Los métodos Getters y Setters permiten leer y escribir respectivamente los datos.
A las propiedades private solo se puede accederse por medio de métodos.
Para generar los getters y setters en NetBenas solo hacemos click derecho dentro de los corchetes de la clase y seleccionamos la opciones de “Insertar código” y por último elegimos la opción de estos métodos
Metodos Getters y Setters Java
Estas clases estan muy buenas
Muy buena clase!. Para generar los getter y Setter automaticamente en Windows hay que presionar Alt + Ins.
Get es para presentar el dato. Set, es para introducir el dato.
Para los que estén haciendo en Eclipse, los Getter y Setter automáticos son así:
—Clic derecho sobre el código > Source > Generate Getters and Setters
A mi no me funciono el generate con el control+n, utilice las teclas alt+insert
Tambien en eclipse hay una opción para generar automáticamente los Getters y Setters.
Deberian de hacer un curso de Groovy en Intellij puedes desarrollar de manera muy agil, en modo Grails on Groovy by Java
En eclipse es con click derecho, Source y Generate Getters And Setters.
Excelente explicacion.
VALIDAR EN SETTER SERIA DARLE 2 RESPONSABILIDADES A UN SOLO CODIGO.
el curso POO que dicen en el video ya lo quitaron, y no se poruqe. Platzi deberia ponerse mas serio con las rutas de aprendizaje pues afecta a sus estudiantes
con la actualizacion de java se, para entrar al generate el comando es alt+ insertar
“Si los métodos constructores se encargan de definir los parámetros obligatorios para que el objeto exista, los métodos get y set ayudarán a validar todo dato que se quiera asignar”.
En Java, los “get” y “set” son convenciones utilizadas para acceder a los campos o variables privadas de una clase. Estos métodos permiten obtener (get) o establecer (set) el valor de una variable desde fuera de la clase, manteniendo así el encapsulamiento y controlando el acceso a los datos internos de la clase.
¡Hola tú! Un curso ya con un par de años aquí en platzi, pero Anahí me motivó a crear una clase en la que valide el número telefonico, por lo que te dejo el código que realizará una validación con expresiones regulares:
package helpers;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ValidateRegex {
public static boolean ValidatePhoneNumber(String phoneNumber) {
Pattern pattern = Pattern.compile("\\d{10}");
Matcher matcher = pattern.matcher(phoneNumber);
if (matcher.matches()){
return true;
}
else{
return false;
}
}
}
Esto lo realicé de esta forma debido a que aquí validará que sean digitos y no letras, ejemplo, en el código de ejemplo de la profesora, también pasaría la validación con 8 veces la letra A (AAAAAAAA) y esto, definitivamente no es un número telefonico, así que la expresión regular puede ser útil, la forma en la que llamé esta clase quedó de la siguiente forma:
public void setPhoneNumber(String phoneNumber) {
boolean resultValidatePhone = ValidatePhoneNumber(phoneNumber);
if (resultValidatePhone){
this.phoneNumber = phoneNumber;
}
else{
System.out.println("The phone number must have 10 numbers");
}
}
P.D.: Dejé 10 números, porque en Colombia son 10 dígitos 😅
¡Espero que te sea de ayuda!
Mejor explicado que en la Universidad, que grande Anahí!!
Esta maestra es una de las mejores, su forma de explicar me resulta tan fácil de entender
Para el manejo del tipo de sangre del paciente y las unidades físicas se pueden agregar enumeraciones.
Agregé dos propiedaes en la clase indicando las unidades de peso y las de altura de tipo enumeración PhysicUnit. En el constructor default se establece el estado de estas propiedades en metros y en kilogramos. El código es:
Cada propiedad tiene sus respectivos setters y getters y en el método que muestro lo información se usan para mostrar la info del paciente completa. Seguramente se puede mejorar.
public String setPhoneNumber(String phoneNumber) {
if (phoneNumber.length()>9){
System.out.println(“El numero que asignes debe ser de 9 digitos”);
}else if (phoneNumber.length()== 9){
this.phoneNumber = phoneNumber;
Los getters y setters se utilizan a menudo en combinación con la encapsulación en Java para controlar el acceso a los atributos de una clase y garantizar que sean utilizados de manera correcta. Además, permiten realizar validaciones y otras operaciones antes de establecer o obtener el valor de un atributo.
Sigo pensanso que cada curso, debe de tener 2 proyectos que el usuario debe de resolver con instrucciones de como debe de ser hacho. Uno a mitad del curso y otro al final. Esto ayuda a solidificar conocimiento.
Buenos días, existe una falla en la lógica de los ejemplos y es que esta clase debería funcionar como un DTO, y solo serviría como transferencia de datos en la misma aplicación u otros servicios y no debería tener lógica del negocio, es decir validaciones o cualquier otra cosa, aunque en general las explicaciones son muy buenas.
Para los que usen el IDE Eclipse puede ir al “Source” de las viñetas o click derecho en la clase, entrar al “Source” y presionar “Generate Getters and Setters”.
Muy bien explicado
Encapsulamiento
Mecanismo de restricción en el nivel de acceso para atributos o métodos de la clase. En Java se usan los modificadores de clase.
para los que están en NetBeans, es con Alt + insert. sacar el menú Generate.
Me encanto escuchar el raaaak!! cuando escribio los numero del 1 al 9 😉 tambien hago lo mismo
Método constructor se encarga de definir los parámetros obligatorios para que nuestro Objeto exista VS Métodos Get & Set se encargan de validar todo dato que se quiera asignar.
Forma Manual y automática de crear Geeters and Setters
Un pequeño aporte en codigo a esta excelente clase:
public void setPhoneNumber(String phoneNumber) {
if (phoneNumber.length() != 8) {
System.out.println("El numero telefonico de ser de 8 digitos");
} else {
this.phoneNumber = phoneNumber;
}
}
Excelente clase
Los getter/setters son parte del boilerplate code que se puede evitar con Lombok https://www.baeldung.com/intro-to-project-lombok
Un tip: No uses lombok o el generador de métodos de tu IDE si aún no has comprendido bien el tema de los setters y getters, no importa que tengas más código.
Los Getters y Setters son una mala practica, ya que utilizarlos demasiado quitaria la privacidad que queremos para el usuario, ya que si queremos tener esa información en privado no se podria porque todo el mundo mediante estos metodos tendria acceso a esta misma informacion
para los que no tienen IntelliJ IDEA pueden usar NetBeans y apara incertar los seters y geters se pude pulsado click derecho selecionan la opcion incert code y seters y geters y listo te los construye e inclusive tambien te construye los construcutores de las clases de forma automatica y tiene un plugin el cual por medio de diagramas UML convierte los diagramas a codigo
¿porque se tiene que imprimir el this.name? ¿no solo podríamos imprimir el name dentro del método getName?
los métodos Getters y Setters nos ayudan a tener un mejor control en la asignación de valores y recuperación de datos que forman parte de una clase.
Excelente Clase!!
Esta parte no la tenia muy clara, gracias por la explicacion.
tremenda clase, asi nuestra aplicacion sera realmente orientada a objetos y no un sancocho en donde reasigno el valor de la variable sin controlar su integridad
Get & Set son los métodos que se encargan de validar los parámetros, estos al mismo tiempo permite acceder a los atributos propios de la clase desde otra clase (i.e Main) 😉
Getters y Setters son métodos que se deben declarar públicos para mantener la consistencia de la clase y nos poder acceder a los atributos de la clase que son declarados privados.
Esta lección me pareció bastante informativa y muy importante
Los getter y setters puden ser generado con el IDE.
Gracias, excelente vídeo.
Excelente explicación de los Getters y Setters es genial para mantener integridad y hacer validaciones de los datos a modificar y obtener
Excelente, por medio de estos métodos no solo vamos a poder asignarle valores a las variables con modificadores de acceso private, sino que también podremos establecer ciertas reglas al momento de interactuar con estas variables.
Getters y Setters nos van a ayudar a validar y mantener la consistencia de la lógica de negocio en nuestros modelos “clases”.
Todo OK
A mi me gusto el proyecto de UBER 😃
sip ese curso lo vi 😃 Uber Ok
Muyyyy buena la clase , de diez
Muy bueno el curso de poo, se los recomiendo.
Muy util para evitar errores durante el desarrollo de un proyecto garantizamos la integridad de los datos.
Reglas de negocio = reglas de tu aplicación.
Lógica de negocio = lógica de tu aplicación.
¿Se podrá decir que los métodos getters y setters, no suelen seguir el cánon? para el caso del getWeight
click derecho, generate… getters and setters
Al principio me aparecía este error en el código.
La razón era porque se había importado (No sé en qué momento) lo siguiente:
import com.sun.org.apache.xpath.internal.operations.String;
Así que lo borré y funcionó.
mil graciassssssssssss ❤️
Si te sale el siguiente erro en un futuro o en este false cuando ejecutas el código y no muestra los resultados.
Debes ir a la clase paciente e implementar el método toString().
le das click derecho o (ctr + i) y toString().te va a genera unas lineas de código y con eso ya te mostrara los datos.
Clase 14: Getters y Setters
Para los que les apetezca tomar la clase en Eclipse iré subiendo mi código; hay pequeñas diferencias con Intellij, por no decir ninguna, pero con Eclipse se puede trabajar igual de bien. NOTA: Solo subiré la jerarquía y lo que haya sido modificado, tendrán los archivos no modificados en las clases anteriores.
Jerarquía del proyecto
Archivo: Patient.java; Métodos: Getters y Setters
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
if (phoneNumber.length() > 8) {
System.out.println("El número telefónico debe ser de 8 dígitos máximo");
} else if (phoneNumber.length() == 8) {
this.phoneNumber = phoneNumber;
}
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public String getWeight() {
return this.weight + " kg";
}
public void setWeight(double weight) {
this.weight = weight;
}
public String getHeight() {
return this.height + " m";
}
public void setHeight(double height) {
this.height = height;
}
public String getBlood() {
return blood;
}
public void setBlood(String blood) {
this.blood = blood;
}
Archivo: Main.java, Método: main(String[])
public static void main(String[] args) {
Doctor myDoctor = new Doctor("Anahí Salgado", "Pediatría");
System.out.println(myDoctor.name);
System.out.println(myDoctor.specialty);
Patient patient = new Patient("Alejandra", "[email protected]");
patient.setWeight(54.6);
System.out.println(patient.getWeight());
patient.setPhoneNumber("12345678");
System.out.println(patient.getPhoneNumber());
}
El método setter nos sirve para asignar un valor a un atributo de nuestra clase encapsulada y el método getter para retornar el valor del atributo que queramos.
No puedo creer que me quedar tan claro, Ann explica muy bien, tiene muchísima lógica, me arrepiento de no tomar este curso antes.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?