Cannot find symbol constructor

3 respostas
M

Olá pessoal!

Estou com um problema no seguinte código.

Código das classes que estou usando:

import java.util.Scanner;
    
public class Transportadora {
	private String nome;
	private String diretor;
	private Automovel auto[];
	private Onibus bus[];
	
	public void Transportadora(String nome2, String diretor2) {
		SetNomeEmp(nome2);
		SetDiretor(diretor2);
	}
	
	public void Transportadora() {
		SetNomeEmp("Innotec");
		SetDiretor("Charles");
	}
	
	public void SetNomeEmp(String nome) {
		this.nome = nome;
	}
	
	public String GetNomeEmp() {
		return this.nome;
	}
	
	public void SetDiretor(String diretor) {
		this.diretor = diretor;
	}
	
	public String GetDiretor() {
		return this.diretor;
	}
	
	public void SetDadosEmpresa() {
		Scanner ler = new Scanner(System.in);
		
		System.out.println("Digite o nome da empresa: ");
		SetNomeEmp(ler.next());
		System.out.println("Digite o nome do diretor: ");
		SetDiretor(ler.next());
		
		System.out.println("A empresa e: " + GetNomeEmp());
		System.out.println("O diretor e: " + GetDiretor());
	}
	
	public void GetDadosEmpresa() {
		System.out.println("O nome da empresa e: " + GetNomeEmp());
		System.out.println("O diretor da empresa e: " + GetDiretor());
	}
}

class Automovel {
	private int ano;
	private double kilometragem;
	private String placa;
	private String marca;
	private String modelo;
	private String cor;
	
	public void Automovel(int ano, double kilometragem, String placa, String marca, String modelo, String cor) {
		SetAno(ano);
		SetKm(kilometragem);
		SetPlaca(placa);
		SetMarca(marca);
		SetModelo(modelo);
		SetCor(cor);
	}
	
	public void SetAno(int ano) {
		this.ano = ano;
	}
	
	public int GetAno() {
		return this.ano;
	}
	
	public void SetKm(double kilometragem) {
		this.kilometragem = kilometragem;
	}
	
	public double Getkilometragem() {
		return this.kilometragem;
	}
	
	public void SetPlaca(String placa) {
		this.placa = placa;
	}
	
	public String GetPlaca() {
		return this.placa;
	}
	
	public void SetMarca(String marca) {
		this.marca = marca;
	}
	
	public String GetMarca() {
		return this.marca;
	}			

	public void SetModelo(String modelo) {
		this.modelo = modelo;
	}
	
	public String GetModelo() {
		return this.modelo;
	}			

	public void SetCor(String cor) {
		this.cor = cor;
	}
	
	public String GetCor() {
		return this.cor;
	}			
}

class Onibus extends Automovel {
	private int passageiros;

	public void Onibus(int ano, double kilometragem, String placa, String marca, String modelo, String cor, int passageiros) {
		super(ano, kilometragem, placa, marca, modelo, cor);
		SetPassageiros(passageiros);
	}

	public void SetPassageiros(int passageiros) {
		this.passageiros = passageiros;
	}
	
	public int GetPassageiros() {
		return this.passageiros;
	}	
}

E esse código é do arquivo que estou usando as classes anteriores:

public class UsaTransportadora {
	public static void main(String args[]) {
		Transportadora trans[] = new Transportadora[10];
		
		trans[0] = new Transportadora();
		trans[0].GetDadosEmpresa();
	}
}

Quando eu tento usar a criação de um objeto do tipo Transportadora chamando o construtor sem parametros ele compila, agora quando eu tento chamar passando duas string como parametros ele dá o seguinte erro:

Cannot find symbol constructor Transportadora(java.lang.String, java.lang.String)

Estou usando sobrecarga de construtores.

Outro erro é quando eu tento chamar o super da Class Onibus. Ela é uma herança de Automovel. Também dá o seguinte erro:

call to super must be first statement in Constructor

Alguém tem alguma idéia do que possa ser? :?:

Vlw!

3 Respostas

J

Ola,
Construtores não podem ter tipos de retorno. Você colocou void nos construtores.
O problema é somente este.
t+

Lavieri

é isso que o jr.mg falou ... especificamente

public void Transportadora(String nome2, String diretor2) {   //<== retire o void
        SetNomeEmp(nome2);   
        SetDiretor(diretor2);   
    }   
       
    public void Transportadora() {   // <== retire esse void dessa linha, para que isso deixe de ser um método, e se transforme em um construtor
        SetNomeEmp("Innotec");   
        SetDiretor("Charles");   
    }

tenha o mesmo procedimento para a classe Automovel

M

Nossa que falta de atenção minha. hahaha

Vou prestar mais atenção nesses pequenos detalhes.

Obrigado! :smiley:

Criado 14 de março de 2009
Ultima resposta 17 de mar. de 2009
Respostas 3
Participantes 3