Autor Tema: Java No suitable constructor found for Constructor is not applicable CU00642B.  (Leído 4835 veces)

fedegaray

  • Principiante
  • **
  • Mensajes: 81
    • Ver Perfil
Hola! Me estoy enfrentando a un límite de mi comprensión, y cuento con que alguien más experto e inteligente me ayude a resolverlo.

Estoy siguiendo la lección CU00642B (no el ejercicio final, sino la explicación del cuerpo de la lección) que pide trabajar con las clases Taxi y Persona, a las que hará referencia la nueva clase TaxiCond.

El problema que estoy teniendo, y juro que he seguido todo paso a paso, es que luego de compilar sin problemas las clases Taxi y Persona, al compilar la clase TaxiCond me tira el siguiente mensaje de error:

Citar
No suitable constructor found for Persona(java.lang.String)
Constructor Persona.Persona is not applicable()

Reviso, reviso y reviso y no le veo la explicación. Me rindo y espero que alguien más apto que yo le vea la solución.

Aquí les copio las tres clases que intervienen...

CLASE TAXI
Código: [Seleccionar]
public class Taxi { //El nombre de la clase
    private String ciudad; //Ciudad de cada objeto taxi
    private String matricula; //Matrícula de cada objeto taxi
    private String distrito; //Distrito asignado a cada objeto taxi
    private int tipoMotor; //tipo de motor asignado a cada objeto taxi. 0 = desconocido, 1 = gasolina, 2 = diesel
 
    //Constructor: cuando se cree un objeto taxi se ejecutará el código que incluyamos en el constructor
    public Taxi ()
    {
        ciudad = "México D.F.";       
        matricula = "";
        distrito = "Desconocido";
        tipoMotor = 0;
    } //Cierre del constructor … el código continúa …

    public Taxi (String valorMatricula, String valorDistrito, int valorTipoMotor) {
        ciudad = "México D.F.";
        matricula = valorMatricula;
        distrito = valorDistrito;
        tipoMotor = valorTipoMotor;
    }
       
    //Método para establecer la matrícula de un taxi
    public void setMatricula (String valorMatricula) {
        matricula = valorMatricula; //La matrícula del objeto taxi adopta el valor que contenga valorMatricula
    } //Cierre del método
    //Método para establecer el distrito de un taxi
    public void setDistrito (String valorDistrito) {
        distrito = "Distrito " + valorDistrito; //El distrito del objeto taxi adopta el valor indicado
    } //Cierre del método
    public void setTipoMotor (int valorTipoMotor) {
        tipoMotor = valorTipoMotor; //El tipoMotor del objeto taxi adopta el valor que contenga valorTipoMotor
    } //Cierre del método
    //Método para obtener la matrícula del objeto taxi
    public String getMatricula () { return matricula; } //Cierre del método
    //Método para obtener el distrito del objeto taxi
    public String getDistrito () { return distrito; } //Cierre del método
    //Método para obtener el tipo de motor del objeto taxi
    public int getTipoMotor () { return tipoMotor; } //Cierre del método
} //Cierre de la clase



CLASE PERSONA

Código: [Seleccionar]
public class Persona
{
    private String nombre;
    private String apellidos;
    private int edad;
    private boolean casado;
    private String numeroDocumentoIdentidad;

    public Persona()
    {
        nombre = "";
        apellidos = "";
        edad = 0;
        casado = false;
        numeroDocumentoIdentidad = "";
    }

    public Persona (String valorNombre, String valorApellidos, int valorEdad, boolean valorCasado, String valorNumeroDocumentoIdentidad)
    {
        nombre = valorNombre;
        apellidos = valorApellidos;
        edad = valorEdad;
        casado = valorCasado;
        numeroDocumentoIdentidad = valorNumeroDocumentoIdentidad;
    }

    public void setNombre(String valorNombre) {nombre = valorNombre;}

    public void setApellidos(String valorApellidos) {apellidos = valorApellidos;}

    public void setEdad(int valorEdad) {edad = valorEdad;}

    public void setCasado(boolean valorCasado) {casado = valorCasado;}

    public void setNumeroDocumentoIdentidad(String valorNumeroDocumentoIdentidad) {numeroDocumentoIdentidad = valorNumeroDocumentoIdentidad;}

    public String getNombre() {return nombre;}

    public String getApellidos() {return apellidos;}

    public int getEdad() {return edad;}

    public boolean getCasado() {return casado;}

    public String getNumeroDocumentoIdentidad() {return numeroDocumentoIdentidad;}

}



CLASE TAXICOND (Esta es la que no se compila ni a patadas)

Código: [Seleccionar]
public class TaxiCond {

    private Taxi vehiculoTaxi;
    private Persona conductorTaxi;

    public TaxiCond (Taxi objetoTaxi, Persona objetoPersona) {
        vehiculoTaxi = new Taxi (objetoTaxi.getMatricula(), objetoTaxi.getDistrito(), objetoTaxi.getTipoMotor());
        conductorTaxi = new Persona (objetoPersona.getNombre()); 
    }

    public void setMatricula (String valorMatricula) { vehiculoTaxi.setMatricula(valorMatricula);}
   
   
    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. Matrícula: " + matricula +
            " Distrito: " + distrito + " Tipo de motor: " + cadenaTipoMotor;

        System.out.println (datosTaxiCond);
        return datosTaxiCond;
    } //Cierre del método

}

Muchas gracias por la atención y la intención de ayudar.
« Última modificación: 30 de Marzo 2015, 16:04 por Alex Rodríguez »

arcanFAC

  • Visitante
Re:Problemas con la lección CU00642B.
« Respuesta #1 en: 29 de Marzo 2015, 00:46 »
Hola: creo yo que el problema que tienes es: en la clase persona tu constructor que recibe parametros recibe 5 parametros y en taxicond le estas enviando solamente 1. por lo que creo que  donde nos decia que retomaramos la clase persona de ejemplos anteriores se referia a este codigo:
Código: [Seleccionar]
//Ejemplo de clase con dos constructores y un método

public class Persona {

    private String nombre;

    private int edad;

 

    public Persona (String nombrePersona) {   //CONSTRUCTOR 1

       nombre = nombrePersona;

       edad = 0;     }

   

    public Persona () {   //CONSTRUCTOR2

       nombre = "";

       edad = 0;     }

 

    public String getNombre () { return nombre; }  //Cierre del método

} //Cierre de la clase
así que cambia tu clase persona por este que te acabo de pasar y mira si yá.

fedegaray

  • Principiante
  • **
  • Mensajes: 81
    • Ver Perfil
Re:Problemas con la lección CU00642B.
« Respuesta #2 en: 29 de Marzo 2015, 00:56 »
Era eso!!! Ahora compila bien!! muchas gracias, que bueno contar con ayuda!
Te debo una! gracias arcanFAC!!!!!!!!  ;D ;D ;D ;D ;D ;D ;D ;D ;D

 

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