Erro: "carro cannot be resolved"

6 respostas
chicogodoy.evo

Boa tarde. Estou montando um projeto pro curso de java no Eclipse que servirá como trabalho final e em uma das classes estou tendo o seguinte erro na sobrescrita do Método toString().

“carro cannot be resolved”

Todos as chamadas dentro deste métodos estão apontando este erro.

Já busquei algo no fórum, mas não encontrei algo parecido.
Se alguém puder me indicar algum tutorial ou me explicar o que pode estar ocorrendo, agradeço desde já.

Segue abaixo o código da classe:

package br.com.chicogodoy.roteador_itinerario.negocios;

import java.util.Date;

public class Carros {

	private String placa;
	private long chassi;
	private Date dataUltimaRevisao;
	private TipoVeiculo tipoVeiculo;
	
	public static enum TipoVeiculo {
		COMUM,VIP,CIRCULAR,INTERMUNICIPAL;
	}
	
	public Carros(String placa, long chassi, Date dataUltimaRevisao, TipoVeiculo tipoVeiculo){
		this.placa = placa;
		this.chassi = chassi;
		this.dataUltimaRevisao = dataUltimaRevisao;
		this.tipoVeiculo = tipoVeiculo;
	}
	
	public static void cadastraCarro(String placa, long chassi, Date dataUltimaRevisao, TipoVeiculo tipoVeiculo){
		Carros carro = new Carros(placa, chassi, dataUltimaRevisao, tipoVeiculo);
		System.out.println("Carro cadastrado com sucesso!\n");
		System.out.println("Confira os dados cadastrados abaixo\n");
		System.out.println(carro);
	}
	
	public String toString(){
		String info = null;
		
		info = "Dados do carro\n\n";
		info += "Placa: ".concat(carro.placa + "\n");
		info += "Chassi: ".concat(carro.chassi + "\n");
		info += "Data da  ultima revisão: ".concat(carro.dataUltimaRevisao + "\n");
		info += "Tipo de veiculo: ".concat(carro.tipoVeiculo + "\n");
		
		return info;
		
	}

	public String getPlaca() {
		return placa;
	}

	public void setPlaca(String placa) {
		this.placa = placa;
	}

	public long getChassi() {
		return chassi;
	}

	public void setChassi(long chassi) {
		this.chassi = chassi;
	}

	public Date getDataUltimaRevisao() {
		return dataUltimaRevisao;
	}

	public void setDataUltimaRevisao(Date dataUltimaRevisao) {
		this.dataUltimaRevisao = dataUltimaRevisao;
	}

	public TipoVeiculo getTipoVeiculo() {
		return tipoVeiculo;
	}

	public void setTipoVeiculo(TipoVeiculo tipoVeiculo) {
		this.tipoVeiculo = tipoVeiculo;
	}
	
}

Valeu. Abs.

6 Respostas

thiago.correa

Cadê o atributo carro??!

Você pode suprimir o “atributo” carro ou usar this para referenciar o próprio objeto!

chicogodoy.evo

Só pra ver se entendi

Utilizando somente o

ao invés de

estarei referenciando sempre o objeto que solicitar o toString();

Correto?

fredaguiar

en toString
Voce esta utilizando um atributo que nao foi declarado (carro)
Voce precisa declara-lo:

private Carro carro = this;

chicogodoy.evo

Entendi, posso declarar um atributo interno ou utilizar o objeto

this
para referenciar os objetos da classe.

Correto?

PS.: Agradeço a atenção.

fredaguiar

Sim, voce pode declarar:

private Carro carro = this; // isso faz com que o atributo carro aponte para ele mesmo.

info += "Placa: ".concat(carro.placa + “\n”);


ou voce pode fazer diretamente:

info += "Placa: ".concat(this.placa + “\n”);

chicogodoy.evo

Huumm…

Ok, agora entendi, era exatamente essa a minha dúvida.

Meu caso foi solucionado.

Muito obrigado pelas explicações.

Criado 27 de setembro de 2010
Ultima resposta 28 de set. de 2010
Respostas 6
Participantes 3