Autor Tema: constructor Persona in class Persona cannot be applied to given types; CU00642B  (Leído 3380 veces)

Aprendiz1

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 4
    • Ver Perfil
Buenas,
En la Entrega nº42 del curso "Aprender programación Java desde cero".
Codificación aprenderaprogramar.com: CU00642B PASO DE OBJETOS COMO PARÁMETROS A UN MÉTODO O CONSTRUCTOR EN JAVA

En el ejemplo sugerido:

Código: [Seleccionar]
/**
 * Write a description of class TaxiCond here.
 *
 * @author (Ricardo Sardinha)
 */
public class TaxiCond
{
    // instance variables - replace the example below with your own
    private Taxi vehiculoTaxi;
    private Persona conductorTaxi;

    /**
     * Constructor for objects of class TaxiCond
     */
    public TaxiCond(Taxi objetoTaxi, Persona objetoPersona)
    {
        // Creamos un objeto Taxi con los mismos datos del Taxi recibidos como parametro
        vehiculoTaxi = new Taxi (objetoTaxi.getMatricula(), objetoTaxi.getDistrito(), objetoTaxi.getTipoMotor());
        // Creamos un objeto Persona con los mismos datos de la Persona recibidos como parametro
        conductorTaxi = new Persona (objetoPersona.getNombre());
    }
   
    public void setMatricula (String valorMatricula)
    {
        vehiculoTaxi.setMatricula(valorMatricula);
    }
   
    /**
     * Devuelve información sobre el objeto TaxiCond
     */
    public String getDatosTaxiCond ()
    {
        String matricula = vehiculoTaxi.getMatricula();
        String distrito = vehiculoTaxi.getDistrito();
        int tipoMotor = vehiculoTaxi.getTipoMotor();
        String cadenaTipoMotor = "";
        if (tipoMotor == 0) {cadenaTipoMotor = "Desconocido";}
        else if (tipoMotor == 1) {cadenaTipoMotor = "Gasolina";}
        else if (tipoMotor == 2) {cadenaTipoMotor = "Diesel";}
       
        String datosTaxiCond = "El objeto TaxiCond presenta estos datos. Matricula: " +
            matricula + " Distrito: " + distrito + " Tipo de motor: " + cadenaTipoMotor;
       
        System.out.println (datosTaxiCond);
        return datosTaxiCond;
    }
}

Al tratar de compilar el código de la Clase TaxiCond,
me arroja un error:
conductorTaxi = new Persona (objetoPersona.getNombre());

constructor Persona in class Persona cannot be applied to given types;
  required: no arguments; found:java.lang.String; reason:actual and format argument lists differ in lenght

Agradezco sus comentarios,
Ricardo S.
« Última modificación: 09 de Octubre 2016, 22:02 por Ogramar »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Hola Aprendiz1.

Viendo que es tu primer mensaje en el foro, te recomiendo leer este apartado...
https://www.aprenderaprogramar.com/foros/index.php?topic=1460.msg7784#msg7784

Y por otro lado si puedes evitar de uso de color amarillo para la letra, mis ojos te lo agradecerán. ::)

En cuanto al error que obtienes es porque el constructor que tienes declarado en la clase Persona no recibe ningún argumento y tu le estás mandando uno. El constructor que viene la clase Persona de los ejemplo es este:

Código: [Seleccionar]
    public Persona () {
      nombre = "";
      apellido = "";
      edad = 23;
      casado = true;
      numeroDocumentoIdentidad = "";
    }

Para que tu invocación funcionase necesitarías un constructor como este:

Código: [Seleccionar]
    public Persona (String valorNombre) {
      nombre =valorNombre;
      apellido = "";
      edad = 23;
      casado = true;
      numeroDocumentoIdentidad = "";
    }

De todas formas si tienes dudas, pega el código de todas las clases que estés usando y será más fácil ayudarte.

Saludos. ;D

Aprendiz1

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 4
    • Ver Perfil
Muchas Gracias por la aclaración :)

 

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".