Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: guillerub2001 en 12 de Diciembre 2015, 16:14

Título: java cannot find symbol method setMatricula java.lang.String ejercicio CU00641B
Publicado por: guillerub2001 en 12 de Diciembre 2015, 16:14
Tengo una duda. En esta entrega (http://tinyurl.com/pbvg2a6 (http://tinyurl.com/pbvg2a6)) se dice que escribas y compiles el código:

Código: [Seleccionar]
//Ejemplo de clase que utiliza tipos definidos en otras clases (usa otras clases)
public class TaxiCond {

    private Taxi vehiculoTaxi;
    private Persona conductorTaxi;

    //Constructor
    public TaxiCond () {
        vehiculoTaxi = new Taxi (); //Creamos un objeto Taxi con el constructor general de Taxi
        conductorTaxi = new Persona (); //Creamos un objeto Persona con el constructor general de Persona
    }

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

    //Método que devuelve la 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. Matrícula: " + matricula +
            " Distrito: " + distrito + " Tipo de motor: " + cadenaTipoMotor;

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

} //Cierre de la clase

Perdón, error resuelto

Esta clase utiliza otras dos clases (como se dice en la entrega). Este es el código de ellas:

Código 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 (String valorMatricula, String valorDistrito, int valorTipoMotor) {
        ciudad = "México D.F.";
        matricula = valorMatricula;
        distrito = valorDistrito;
        tipoMotor = valorTipoMotor;
    } //Cierre del constructor
 
      //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

Código Persona:

Código: [Seleccionar]
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

Muchas gracias por la ayuda.

EDIT: He conseguido resolver este error, pero me ha aparecido un segundo.

(http://s22.postimg.org/ufrdunv01/Captura.png)
Título: Re:Duda del curso aprender Java desde cero: CU00641B
Publicado por: Enzo en 12 de Diciembre 2015, 20:18
Hola guillerub2001,

El error que te da es porque estas realizando una llamada a un método llamado setMatricula del objeto Taxi, pero no tienes creado este método en el objeto.
En la clase Taxi solo has creado los métodos getters, pero no los setters.

Créalo y veras como se solucionara el problema,

Animo,

Un Saludo,
Título: Re:Duda del curso aprender Java desde cero: CU00641B
Publicado por: Lorenzo31 en 15 de Diciembre 2015, 19:53
Buenas tardes,

El error te da, porque en tu clase Taxi, no aparece ningun procedimiento llamado setMatricula. 

Debes  crearlo en Taxi para poderlo llamar después desde otra clase.

Un saludo.
Título: Re:java cannot find symbol method setMatricula java.lang.String ejercicio CU00641B
Publicado por: guillerub2001 en 19 de Diciembre 2015, 17:25
Hola.
Perdonad por responder tarde,
muchísimas gracias a los dos por vuestra respuesta.
Un saludo!