Autor Tema: como hago para llamar a dos métodos con el mismo nombre en java?  (Leído 6114 veces)

xtc3

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 25
    • Ver Perfil
Hola amigos! estoy con un ejercicio que lo que quiero es declarar dos métodos uno con un argumento y otro con el mismo y otro mas, y luego llamar al que tiene dos argumentos, pero me da error y no se por que, les muestro el código a ver si pueden ayudarme.

Código: [Seleccionar]
class persona {

private String nombre;
private String raza; //atributos

//declaracion metodos

public void ponNombre (String elnombre)
{
this.nombre=elnombre;
}
public void ponNombre (String elnombre,String laraza)
{
this.nombre=elnombre;
this.raza=laraza;
}

public static void main(String[] args) { //metodo main entrada al programa

persona persona1 = new persona();   //creamos el objeto

//llamamos al metodo

persona1.ponNombre("Pedro","raza negra");

System.out.println("Los datos obtenidos son :" + persona1.ponNombre());
//AQUI ES DONDE ME DA ERROR CUANDO LLAMO AL METODO

}




}

¿a que puede deberse?

Gracias!!
« Última modificación: 14 de Septiembre 2014, 21:38 por Alex Rodríguez »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Re:como hago para llamar a dos métodos con el mismo nombre?
« Respuesta #1 en: 04 de Abril 2014, 13:08 »
Hola, si te fijas has definido que al método pon nombre se le puede llamar de dos maneras, una es pasándole un String y otro pasándole dos String. Cuando escribes persona1.ponNombre() no le estás pasando ni un String ni dos, sino ninguno.

Además no está bien planteado llamar a este método dentro de System.out.println("Los datos obtenidos son :" + persona1.ponNombre()); porque el método no devuelve un String. Deberías definir un método como public String getRaza() { return raza; } e idem para nombre para poder obtener esos valores como texto  ;D


xtc3

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 25
    • Ver Perfil
Re:como hago para llamar a dos métodos con el mismo nombre?
« Respuesta #2 en: 04 de Abril 2014, 19:24 »
Hola, lo que dices tiene mucho sentido y lo se, el método soy consciente de que debería ser getter & setter y no void ya que voy no devuelve nada, pero estoy haciendo el ejercicio en base a un ejemplo de mi profesor pero es que no se aclara ni el, mira voy a copiar el ejemplo de mis apuntes y me comentas que entiendes tu:

Código: [Seleccionar]

public void ponModelo(String modelo) {
this.modelo   = modelo;
}
public void ponModelo (String modelo, String color){
this.modelo = modelo;
this.color = color;
}

y luego pone este texto:

Dependiendo de los valores de los argumentos con que se llame al
método ponModelo, se ejecutaría uno u otro de los definidos.

Sin embargo cuando hago:

System.out.println("Los datos obtenidos son :" + persona1.ponNombre("Pedro","raza negra")); por ejemplo me da error aquí y ya no entiendo ni los apuntes  ni si están bien o a que se refieren.
         
De nuevo muchísimas gracias

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Re:como hago para llamar a dos métodos con el mismo nombre?
« Respuesta #3 en: 04 de Abril 2014, 20:42 »
El problema es que en un System.out.println tú solo puedes poner texto para que se muestre por pantalla, y el método al que estás invocando no devuelve un texto, por eso te da error. Para comprender los tipos de métodos y qué es lo que hace un método: https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=430:metodos-en-java-tipo-procedimiento-void-y-tipo-funcion-return-definicion-invocacion-cu00624b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188

xtc3

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 25
    • Ver Perfil
Re:como hago para llamar a dos métodos con el mismo nombre?
« Respuesta #4 en: 05 de Abril 2014, 12:12 »
Ya me olia yo algo de eso, pero entonces puedo afirmar con contundencia que mi profesor no tiene ni p... idea porque el dice que el ejercicio esta  bien ¡que le pase argumentos!!! madre mía, en fin, muchas gracias y también por el enlace me va a venir de perlas  ;) ;)

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Re:como hago para llamar a dos métodos con el mismo nombre?
« Respuesta #5 en: 05 de Abril 2014, 21:41 »
Dentro de un System.out.println puedes invocar una función y pasarle argumentos, pero sólo si la función te devuelve un String (de modo que es equivalente a que escribieras un texto). No puedes invocar un procedimiento que no te devuelva un String o algo que se pueda convertir en un String...

xtc3

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 25
    • Ver Perfil
Re:como hago para llamar a dos métodos con el mismo nombre?
« Respuesta #6 en: 07 de Abril 2014, 13:29 »
muchisimas gracias!!!

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".