Autor Tema: Java pasar objetos como parámetros a un constructor CU00642B. Error BlueJ  (Leído 2896 veces)

ady

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 4
    • Ver Perfil
Hola buenas noches!

Estoy realizando el ejercicio de ejemplo del tema Pasar objetos como parámetros a un método o constructor Java. Diferenciar objeto y tipo primitivo (CU00642B) y al compilar el código no me genera errores. Sin embargo al intentar crear un objeto de la clase TaxiCond en BlueJ, al introducir los nombres de los objetos Taxi y Persona me aparece Error: cannot find symbol - variable taxi1 y no entiendo porqué.

Aquí les dejo el código de las Clases

De antemano, gracias por la ayuda.

Clase Persona
Código: [Seleccionar]
public class Persona{
    private String nombre;
    private String apellido;
    private int edad;
    private boolean casado;
    private String dni;


    public Persona(){//Constructor 1
        nombre = "";
        apellido = "";
        edad = 0;
        casado = false;
        dni = "";
    }
   
    public Persona (String nombrePersona) {//Constructor 2
        nombre = nombrePersona;
        edad = 0;
    }

    //Setters
    public void setNombre(String valorNombre){ nombre = valorNombre; }
    public void setApellido(String valorApellido){ apellido = valorApellido; }
    public void setEdad(int valorEdad){ edad = valorEdad; }
    public void setCasado(boolean valorCasado){ casado = valorCasado; }
    public void setDni(String valorDni){ dni = valorDni; }
   
    //Getters
    public String getNombre(){ return nombre; }
    public String getApellido(){ return apellido; }     
    public int getEdad(){ return edad; }     
    public boolean getCasado(){ return casado; }     
    public String getDni(){ return dni; }

}

Clase Taxi
Código: [Seleccionar]
public class Taxi {
    private String ciudad;
    private String matricula;
    private String distrito;
    private int tipoMotor; //Tipo de motor asignado a cada objeto taxi. 0 = desconocido, 1 = gasolina, 2 = diesel

    //Constructor 1: sin parámetros
    public Taxi () {
        ciudad = "México D.F.";       
        matricula = "";
        distrito = "Desconocido";
        tipoMotor = 0;
    }
   
    //Constructor 2: constructor con parámetros
    public Taxi (String valorMatricula, String valorDistrito, int valorTipoMotor) {
    ciudad = "México D.F.";
    matricula = valorMatricula;
    distrito = valorDistrito;
    tipoMotor = valorTipoMotor;
    }

//Setters
    public void setMatricula (String valorMatricula) { matricula = valorMatricula; }
    public void setDistrito (String valorDistrito) { distrito = "Distrito " + valorDistrito; }
    public void setTipoMotor (int valorTipoMotor) {  tipoMotor = valorTipoMotor; }

//Getters
    public String getMatricula () { return matricula; }
    public String getDistrito () { return distrito; }
    public int getTipoMotor () { return tipoMotor; }
}

Clase TaxiCond
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() );
    }

    //Setter
    public void setMatricula (String valorMatricula){
        vehiculoTaxi.setMatricula(valorMatricula); }

   //Getters
    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; }

}
« Última modificación: 18 de Junio 2017, 19:02 por Alex Rodríguez »

pedro,,

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

El error que obtienes es debido a que no has creado primero un objeto Persona y un objeto Taxi, para poder crear un objeto TaxiCond anteriormente deben de estar creados los dos objetos que requiere el constructor.

Pruébalo.

Saludos. ;D

ady

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 4
    • Ver Perfil
Gracias pedro!!! ;D ;D

La verdad yo pensé que precisamente el código era para que al momento de crear un objeto TaxiCond este automáticamente crearía los objetos Taxi y Persona con sus atributos. No se me ocurrió probar esa solución que me diste  :-[

Gracias nuevamente  ;)

 

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