HELP! Classe

4 respostas
A

Porque não estou conseguindo obter o valor do pedágio [color=red]*[/color] o numero do eixo na classe principal.

Ex:
Digite o tipo de automovel:
caminhao
Digite o numero do eixo:
10
O valor do pedágio é: 0.0 [color=blue]// gostaria que ele me retornasse 4 * 10[/color]

package automoveis;

public class Caminhao extends Veiculo{
	
	public Caminhao(){
		super();
	}

	public Caminhao(String placa, int numeroEixo){
		super(placa);
		this.numeroEixo = numeroEixo;
	}
	
	private int numeroEixo;

	public int getNumeroEixo(){
		return this.numeroEixo;
	}

	public void setPlaca(int numeroEixo){
		this.numeroEixo =numeroEixo;
	}
	
	//@override
	public double obterValorPedagio(){
		return 4 * numeroEixo  ;	
	}
}
import java.util.Scanner;   

import automoveis.Caminhao;
import automoveis.Carro;
import automoveis.Moto;
import automoveis.Veiculo;

public class Principal {
	

	public static void main(String args []) {
	  
		
		
		Scanner teclado = new Scanner (System.in);
		
		Veiculo v = null;   

		System.out.println("Digite o tipo de automovel: ");
		String tipoVeiculo = teclado.nextLine();
		
		if (tipoVeiculo.equalsIgnoreCase("carro")){   
		   v = new Carro();   
		} 
		else
		if (tipoVeiculo.equalsIgnoreCase("Moto")){
			v = new Moto ();
		}
		else
[color=orange]        if (tipoVeiculo.equalsIgnoreCase("Caminhao")){
        	System.out.println("Digite o numero do eixo: ");
        	int tipoVeiculo1 = teclado.nextInt();
        	v = new Caminhao ();[/color]
			
		}
		else {   
			   System.out.println("Erro!!");   
			   System.exit(0);   
		}   
		 
	
		System.out.println("O valor do pedágio é: " + v.obterValorPedagio());  
	}
}

4 Respostas

Elizeu_Santos
public double obterValorPedagio(){

return 4 * numeroEixo  ;

}

o método tem de receber uma variavel int de nome numeroEixo. ai esse valor vai ser multiplicado por 4 e ser retornado.

public double obterValorPedagio(int numeroEixo){ return 4 * numeroEixo ; }

sacou?

S

A primeira parte o erro pode ser esse dai:

package automoveis;

public class Caminhao extends Veiculo
	{
        private int numeroEixo;
    public Caminhao()
    	{
        super();
    	}

    public Caminhao(String placa, int numeroEixo){
        super(placa);
        this.numeroEixo = numeroEixo;
    }


    public int getNumeroEixo(){
        return numeroEixo;
    }
   	public void setNumeroEixo(int numeroEixo)
   	{
   		this.numeroEixo=numeroEixo;
   	}

    public String getPlaca(String placa)
    {
        return placa;
    }

    //@override
    public double obterValorPedagio()
    	{
           return 4 * getNumeroEixo();
        }
}
A

Caros, boa noite!
Fiz as modificações necessarias só que guando vou compilar ele me dar o seguinte erro:

[color=red]Digite o tipo de automovel:
caminhao
Digite o numero do eixo:
5
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The type Caminhao must implement the inherited abstract method Veiculo.obterValorPedagio()

at automoveis.Caminhao.obterValorPedagio(Caminhao.java:3)
at Principal.main(Principal.java:42)[/color]

package automoveis;


public class Caminhao extends Veiculo{  [color=violet]//(Caminhao.java:3)[/color]	
	public Caminhao(){
		super();
	}

	public Caminhao(String placa, int numeroEixo){
		super(placa);
		this.numeroEixo = numeroEixo;
	}
	
	private int numeroEixo;

	public int getNumeroEixo(){
		return this.numeroEixo;
	}

	public void setPlaca(int numeroEixo){
		this.numeroEixo =numeroEixo;
	}
	
	//@override
[b]	public double obterValorPedagio(int numeroEixo){
		return 4 * numeroEixo;	
	}[/b]



}
import java.util.Scanner;   

import automoveis.Caminhao;
import automoveis.Carro;
import automoveis.Moto;
import automoveis.Veiculo;

public class Principal {
	

	public static void main(String args []) {
	  
		
		
		Scanner teclado = new Scanner (System.in);
		
		Veiculo v = null;   

		System.out.println("Digite o tipo de automovel: ");
		String tipoVeiculo = teclado.nextLine();
		
		if (tipoVeiculo.equalsIgnoreCase("carro")){   
		   v = new Carro();   
		} 
		else
		if (tipoVeiculo.equalsIgnoreCase("Moto")){
			v = new Moto ();
		}
		else
        if (tipoVeiculo.equalsIgnoreCase("Caminhao")){
        	System.out.println("Digite o numero do eixo: ");
        	int tipoVeiculo1 = teclado.nextInt();
        	v = new Caminhao ();
			
		}
		else {   
			   System.out.println("Erro!!");   
			   System.exit(0);   
		}   
		 
	
		System.out.println("O valor do pedágio é: " + v.obterValorPedagio()); [color=violet] (Principal.java:42)[/color]	}
}
Elizeu_Santos

acho que você não entendeu ainda…
olha, um problema grande do iniciante é não especificar o que o programa faz corretamente.
por que você não cria um programa genérico pra testar?
vai ficar mais simples.
tira a parte do tipo de veiculo. teste o programa apenas com o numero de eixos. depois incremente mais alguma coisa.

Criado 21 de abril de 2011
Ultima resposta 21 de abr. de 2011
Respostas 4
Participantes 3