Olá pessoal, estou com um probleminha aqui e gostaria muito se alguém se predisposse a me ajudar...
Bom, estou fazendo um programinha bem simples em java, como se fosse um sisteminha de locação de automóveis, sem interface nem nd.
O problema é que tá havendo um erro de parseException na classe main e eu não estou conseguindo de maneira alguma resolver...
Tá aí o código fonte, por favor deêm uma olhada...
Classe TestaLocação (main)
public class TestaLocacao {
public static void main(String[] args) {
try {
DateFormat fm = new SimpleDateFormat("dd/MM/yyyy");
Date dataInicial1 = (Date)fm.parse("10/09/2010");
fm = new SimpleDateFormat("dd/MM/yyyy");
Date dataFinal1 = (Date)fm.parse("20/09/2010");
fm = new SimpleDateFormat("dd/MM/yyyy");
Date dataInicial2 = (Date)fm.parse("12/09/2010");
fm = new SimpleDateFormat("dd/MM/yyyy");
Date dataFinal2 = (Date)fm.parse("14/09/2010");
float kmInicial1 = (float) 1230.0;
float kmFinal1 = (float) 1400.5;
float kmInicial2 = (float) 350.7;
float kmFinal2 = (float) 530.3;
float precoDia1 = (float)30.0;
float precoKm1 = (float)5.50;
float precoDia2 = (float)50.0;
float precoKm2 = (float)4.7;
Carro carro1 = new Carro("TYG-4456");
Carro carro2 = new Carro("GFT-7685");
Motorista motorista1 = new Motorista("Fulano de Tal", 3476);
Motorista motorista2 = new Motorista("Ciclano", 5099);
Locacao locacao1 = new Locacao(kmInicial1, kmFinal1, precoDia1, precoKm1, dataInicial1, dataFinal1);
Locacao locacao2 = new Locacao(kmInicial2, kmFinal2, precoDia2, precoKm2, dataInicial2, dataFinal2);
System.out.println("\t\t***Sistema de Locacao de Automoveis***");
System.out.println("\n\nLocacao de carro");
System.out.println("\n\n\nLocacao1\n#Carro: " + carro1.getPlaca());
System.out.println("\n#Motorista: Nome - " + motorista1.getNome());
System.out.println("\n\tCodigo: " + motorista1.getCodigo());
System.out.println("\n#Kilometragem Inicial: " + locacao1.getKmInicial());
System.out.println("\n#Preco km por dia: " + Locacao.getPrecoDia());
System.out.println("\n#Preco por km: " + Locacao.getPrecoKm());
System.out.println("\n#Data de Locacao: "+ locacao1.getDataInicial());
System.out.println("\n#Data de devolucao: " + locacao1.getDataFinal());
System.out.println("\n#Kilometragem na devolucao: " + locacao1.getDataFinal());
System.out.println("\n\nCustos da locacao: R$ " + locacao1.obtemCustos(dataInicial1, dataFinal1, precoDia1, precoKm1, kmInicial1, kmFinal1));
System.out.println("\n\n\nLocacao2\n#Carro: " + carro2.getPlaca());
System.out.println("\n#Motorista: Nome - " + motorista2.getNome());
System.out.println("\n\tCodigo: " + motorista2.getCodigo());
System.out.println("\n#Kilometragem do Carro: " + locacao2.getKmInicial());
System.out.println("\n#Preco km por dia: " + Locacao.getPrecoDia());
System.out.println("\n#Preco por km: " + Locacao.getPrecoKm());
System.out.println("\n#Data de Locacao: "+ locacao2.getDataInicial());
System.out.println("\n#Data de devolucao: " + locacao2.getDataFinal());
System.out.println("\n#Kilometragem na devolucao: " + locacao2.getDataFinal());
System.out.println("\n\n#Custos da locacao: R$ " + locacao2.obtemCustos(dataInicial2, dataFinal2, precoDia2, precoKm2, kmInicial2, kmFinal2));
} catch (ParseException e) {
e.printStackTrace();
}
}
}
classe Locacao
public class Locacao {
public Date dataInicial;
public Date dataFinal;
private float kmInicial;
private float kmFinal;
private static float precoDia;
private static float precoKm;
public Locacao(float kmInicial, float kmFinal, float precoDia, float precoKm, Date dataInicial, Date dataFinal){
this.kmInicial = kmInicial;
this.kmFinal = kmFinal;
Locacao.precoDia = precoDia;
Locacao.precoKm = precoKm;
this.dataInicial = dataInicial;
this.dataFinal = dataFinal;
}
public static float getPrecoDia() {
return precoDia;
}
public static void setPrecoDia(float precoDia) {
Locacao.precoDia = precoDia;
}
public static float getPrecoKm() {
return precoKm;
}
public static void setPrecoKm(float precoKm) {
Locacao.precoKm = precoKm;
}
public float getKmInicial() {
return kmInicial;
}
public void setKmInicial(float kmInicial) {
this.kmInicial = kmInicial;
}
public float getKmFinal() {
return kmFinal;
}
public void setKmFinal(float kmFinal) {
this.kmFinal = kmFinal;
}
public Date getDataInicial() {
return dataInicial;
}
public void setDataInicial(Date dataInicial) {
this.dataInicial = dataInicial;
}
public Date getDataFinal() {
return dataFinal;
}
public void setDataFinal(Date dataFinal) {
this.dataFinal = dataFinal;
}
long data0 = dataInicial.getTime();
long data1 = dataFinal.getTime();
long dif = (data1 - data0);
int dias = (int)dif / (1000 * 60 * 60 * 24);
public float obtemCustos(Date dataInicial, Date dataFinal, float precoDia, float precoKm, float kmInicial, float kmFinal) {
return (((kmFinal-kmInicial)*precoKm) + (dias*precoDia));
}
}
classe Motorista
public class Motorista {
private String nome;
private int codigo;
private Motorista[] motoristas = new Motorista[20];
private int i;
public Motorista(String nome, int codigo){
this.nome = nome;
setCodigo(codigo);
}
private void setCodigo(int codigo){
this.codigo = codigo;
}
public void setNome(String nome){
this.nome = nome;
}
public int getCodigo(){
return codigo;
}
public String getNome(){
return nome;
}
public void adicionaMotorista(Motorista motorista){
motoristas[i] = motorista;
i++;
}
}
Classe Carro
public class Carro {
private String placa;
private Carro[] carros = new Carro[100];
private int i;
public Carro(String placa){
setPlaca(placa);
}
private void setPlaca(String placa){
this.placa = placa;
}
public String getPlaca(){
return placa;
}
public void adicionaCarro(Carro carro){
carros[i] = carro;
i++;
}
}
Erro apresentado no console do Eclipse
Exception in thread "main" java.lang.NullPointerException
at locacaoDeAutomoveis.Locacao.
at locacaoDeAutomoveis.TestaLocacao.main(TestaLocacao.java:44)