Ai galera estou com um probleminha aki que nao consigo resolver…
Estou implementando uma classe Automovel que herda os metodos e atributos de Transportes…
Mais na hora de cadastrar um novo automovel estou com um probleminha na passagem de argumentos…
o programa começa a executar dai tudo bem ate xegar na parte em que vou digitar a entrada da quilometragem…
da erro…
Exception in thread “main” java.lang.NullPointerException
at transxerez.Transportes.setQuilometragem(Transportes.java:48)
at transxerez.Main.main(Main.java:44)
Java Result: 1
ai vai o codigo: se alguem puder ajudar agradeço…
vo mandar logo as tres classes…
CLASSE MAIN
package transxerez;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int aux;
int aux1;
Scanner scan = new Scanner(System.in);
Automovel auto = new Automovel();
System.out.printf("1 - Automovel\n");
System.out.printf("2 - Aviao\n");
System.out.printf(">>");
aux = scan.nextInt();
switch(aux){
case 1:
System.out.printf("\n1 - Cadastrar\n");
System.out.printf("2 - Abastecer\n");
System.out.printf("3 - Mover\n");
System.out.printf("4 - Exibir\n");
System.out.printf(">>");
aux1 = scan.nextInt();
switch(aux1){
case 1:
String x;
System.out.printf("Marca: ");
auto.setMarca(scan.next());
System.out.printf("Modelo: ");
auto.setModelo(scan.next());
System.out.printf("Quilometragem: ");
auto.setQuilometragem(scan.nextDouble());
break;
case 2:
break;
case 3:
break;
case 4:
break;
}
break;
}
}
}
CLASSE TRANSPORTES
package transxerez;
/**
*
* @author Heladio
*/
public class Transportes {
// DECLARAÇÃO DE VARIAVEIS
private String marca;
private String modelo;
private Double quilometragem;
private Double capacidadeTanque;
private Double litrosTanque;
// CONSTRUTORES
Transportes(){}
Transportes(String marc, String model, double km, double capac, double litros){
marca = marc;
modelo = model;
quilometragem = km;
capacidadeTanque = capac;
litrosTanque = litros;
}
// METODOS DE ACESSO
public void setMarca(String marc){
marca = marc;
}
public void setModelo(String model){
modelo = model;
}
public void setQuilometragem(double km){
quilometragem += km;
}
public void setCapacidadeTanque(double capac){
capacidadeTanque = capac;
}
public void setLitrosTanque(double litros){
litrosTanque = litros;
}
public String getMarca(){
return marca;
}
public String getModelo(){
return modelo;
}
public double getQuilometragem(){
return quilometragem;
}
public double getCapacidade(){
return capacidadeTanque;
}
public double getLitrosTanque(){
return litrosTanque;
}
// METODOS PARA EXECUTAR AÇÕES
public void mover(double km){
this.setQuilometragem(km);
}
public void abastecer(double litros){
if((litrosTanque + litros) <= capacidadeTanque){
litrosTanque += litros;
System.out.printf("Abastecimento realizado com suceasso");
}else{
System.out.printf("Quantidade de combustivel excedeu a capacidade");
}
}
public void exibir(){
System.out.printf("Marca: %s\n", this.getMarca());
System.out.printf("Modelo: %s\n", this.getModelo());
System.out.printf("Quilometragem: %f\n", this.getQuilometragem());
System.out.printf("Capacidade Tanque: %f\n", this.getCapacidade());
System.out.printf("Litros em Tanque: %f\n", this.getLitrosTanque());
}
}
CLASSE AUTOMOVEIS
package transxerez;
/**
*
* @author Heladio
*/
public class Automovel extends Transportes {
// DECLARAÇÃO DE VARIAVEIS
private String placa;
// DECLARAÇÃO DE COSNTRUTORES
public Automovel(){}
public Automovel(String marca, String modelo, double km, double capa, double litros, String plac ){
super(marca, modelo, km, capa, litros);
placa = plac;
}
// METODOS DE ACESSO
public void setPlaca(String plac){
placa = plac;
}
public String getPlaca(){
return placa;
}
// METODOS PARA EXECUTAR AÇOES
public void mover(double kms){
super.setQuilometragem(kms);
super.setLitrosTanque(super.getLitrosTanque() - (kms/8));
}
public void exibir(){
super.exibir();
System.out.printf("Placa: %s\n", this.getPlaca());
}
}