A veces necesitamos que dos o más métodos de una misma clase tengan el mismo nombre, pero con diferentes argumentos o distintos tipos de argumentos/valores de retorno.
Afortunadamente, Java nos permite ejecutar código y métodos diferentes dependiendo de los argumentos que reciba nuestra clase.
publicclassCalculadora{// Los dos parámetros y el valor de retorno son de tipo intpublicintsuma(int a,int b){return a + b;}// Los dos parámetros y el valor de retorno son de tipo floatpublicfloatsuma(float a,float b){return a + b;}// Un parámetro es de tipo int, mientras que el otro parámetro// y el valor de retorno son de tipo floatpublicfloatsuma(int a,float b){return a + b;}}
El uso más común de la sobrecarga de métodos es la sobrecarga de constructores para instanciar objetos de formas distintas dependiendo de la cantidad de argumentos que enviamos.
publicclassDoctor{staticint id =0;String name;String speciality;publicDoctor(){this.name ="Nombre por defecto";this.speciality ="Especialidad por defecto";}publicDoctor(String name,String speciality){this.name = name;this.speciality = speciality;}}
Definitivamente anahí tiene una metodologia de enseñanza excelente sus clases se hacen 100% comprensibles
totally agree
tiene la habilidad de explicar un tema complejo de una manera fácil de entender, bueno seria una carrera de java con ella
En la universidad le cogí fastidio a Java, me incliné por otros lenguajes, ahora por necesidad debido a un nuevo empleo, debo aprender Java, gracias a la profe le estoy cogiendo cariño a este lenguaje, ojala en la universidad enseñaran asi.
Amigo me identifico plenamente contigo, también llegué a un punto en mi Universidad que prácticamente Java se convirtió en un lenguaje insoportable y aburrido, lo que me llevo migrar a Python. Pero actualmente también me he visto en la necesidad de volver a Java y refrescar muchos conceptos y aprender otras cosas nuevas. En mi opinión Anahí hace que este lenguaje se vea divertido, despertando el interés de profundizar aún más en los temas.
Muy cierto amigos, me identifico con ustedes, en la universidad me fastidiaba, pero ahora por el trabajo tengo que aprenderlo y la verdad me esta gustando.
La sobrecarga de métodos consiste en crear diferentes funciones que, en realidad, hacen lo mismo, pero soportan diferentes tipos y cantidades de argumentos.
La sobrecarga de constructores es lo mismo, pero con constructores. :sweat_smile:
Hola Juan, es correcto. Aunque no necesariamente los métodos o constructores sobrecargados realizaran lo mismo. La lógica del método también puede cambiar, el único beneficio en que se identifican con el mismo nombre.
no exactamente las diferentes sobrecargas realizan lo mismo puesto que su logica puede ser algo diferente a la de los demas metodos sobrecargados
La sobrecarga de métodos consiste en utilizar el mismo nombre en varios métodos, cada uno con distintos argumentos.
Con distintos argumentos y quizá con distinta implementación.
La palabra reservada this, hace referencia a todos los elementos que componen esa clase.
Gracias
o también se podría decir que la palabra This hace referencia a todos los "Atributos" de esa clase.
Parámetros: Datos que se le pasaran a una función y se indican al momento de la construcción de la misma
Argumentos: Datos que se ponen al momento de invocar a la función y son los que procesara la función
Este tipo de precisión es la que me gusta. Las cosas por su nombre y sin paja. :)
Excelente clase de sobrecarga y constructores, aquí en Java no existen los parámetros opcionales, por ende se usa la sobrecarga
Anahi vuelve!
Importante aclaración del this Por si acaso hay alguien que no lo entiende del todo.
NO hace referencia a la clase, sino al objeto.
Recuerden que las clases son moldes, las clases no se ejecutan no "viven" en tiempo de ejecución. Los objetos sí.
En este ejemplo, this sirve para señalarse a si mismo e indicar que el valor del atributo del objeto instanciado, será igual a los parámetros recibidos por el constructor.
llevo varios años programando en java, se me hacen entretenidos los videos de la profe, quizá un poco basicos pero son buenos.
Por qué siempre se crea un constructo vacio y el otro con datos lleno?
El sin parametros existe por defecto, Java crea un constructor por defecto si no hemos definido ninguno en la clase, pero si en una clase definimos un constructor ya no se crea automáticamente el constructor por defecto, por lo mismo este se considera que siempre debe existir para un programador, y asi mismo un segundo constructor con parametros, usualmente con todos su atributos inicializados, lleno, como minimo, pero tampoco es una regla, lo importante es siempre acudir a ala documentación para saber con precisión cuantos tiene y que parametros necesita, saludos :)
El constructor vacío es un constructor por defecto, se crea de manera automática si no hemos definido alguno en la Clase y un constructor con parámetros, inicializamos algunos atributos que queramos mostrar o utilizar cuando nuestra clase empieza a ejecutarse, No es obligatorio hacerlo de esta forma, son formas de inicializar nuestros atributos que queramos utilizar o mostrar por parte de nuestra Clase, todo depende de que queramos hacer con los valores de los atributos que queramos inicializar.
Me encanta como explica!
Creo que falta recortar este vídeo :/
gracias por avisar estamos en esto
Solucionado :wink:
La sobrecarga de métodos y constructores en Java permite tener un identificador con diferentes variables o con mas variables.
publicclassGreeting{// Greet a personpublicstaticvoidgreeting(String name){System.out.println("Hello "+ name);}// Greet two peoplepublicstaticvoidgreeting(String name,String nameTwo){System.out.println("Hello "+ name +" and "+ nameTwo);}publicstaticvoidmain(String[] args){greeting("David");greeting("Jonathan","David");}}
🤔 Utilizamos la sobrecarga de constructores para tener opciones al momento de instanciar un objeto.
ese tipo de sobrecarga puede devolver una respuesta, es decir con return ; ?
Hola Jg,
Claro, puedes crear sobrecarga en tus métodos y estos pueden devolver cualquier tipo de dato (menos el constructor).
Saludos!.
Claro recuerda que la sobre carga es solo mandar x cantidad de atributos y el sabe a que metodo invocar es diferente cada metodo solo q contiene el mismo nombre.
muy bien explicado el tema de sobrecarga
Tengo una curiosidad...
en el metodo constructor ella usa la palabra THIS
para referirse a los parametros de esa clase en especifico.
pero tambien usa el parametri ID y lo auto incrementa sin usar this. cual es la razon o porque no se usa THIS en ese caso.
porque la variable ID es de tipo estatic, de manera que es una variable global dentro de las clases
La sobrecarga es: la capacidad de una clase de tener múltiples métodos con el mismo nombre, pero con diferentes parámetros.
Aveces necesitamos que dos o mas metodos tengan el mismo nombre pero con diferentes argumentos o los tipos de argumentos o el valor de retorno.
Definitivamente, una clase que quita todas las dudas acerca de este tema.