Pessoal o meu professor pediu pra fazer um trabalho, com 3 classes, carro, moto e veiculos sendo a veiculos a principal e não sendo possivel ser instanciada, fiz o trablho só que estou em um erro que eu não consigui elimitar, na hora de instancia o novo objeto de m1 ele passa da primeira instanciação do objeto, não sei pq… alguem poderia dar uma força?
@Edit
1º observação : cada classe tem q ter 5 construtores
2º observação : tem q instanciar 3 objetos de cada classe ( Moto e carro )
3º observação : tipo de motor da moto tem q ser 2 ou 4 …
[code]package exec;
import java.util.Scanner;
import entity.Carro;
import entity.Moto;
public class Executavel {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Validacao v = new Validacao();
Carro c1 = new Carro();
//Criação do objeto c1
System.out.print("Digite a Marca do Carro 1: ");
c1.setMarca(input.nextLine());
System.out.print("Digite a Modelo do Carro 1: ");
c1.setModelo(input.nextLine());
System.out.print("Digite o numero de rodas do Carro 1: ");
c1.setNumeroRodas(v.verifNumeroRodas());
System.out.print("Digite a potência do Carro 1: ");
c1.setPotencia(v.verifPotencia());
System.out.print("Digite a quantidade de cilindros do Carro 1: ");
c1.setCilindros(v.verifCilindros());
System.out.print("Digite o preco do Carro 1: ");
c1.setPreco(v.verifPreco());
System.out.print("Digite a Quantidade de passageiros do Carro 1: ");
c1.setQtdPassageiros(v.verifPassegeiros());
System.out.print("Digite Tipo de combustivel do Carro 1: ");
c1.setTipoCombustivel(input.nextLine());
//criacao do obj c2
// Quantidade de pessoas
Carro c2 = new Carro(6);
System.out.print("Digite a Marca do Carro 2: ");
c2.setMarca(input.nextLine());
System.out.print("Digite a Modelo do Carro 2: ");
c2.setModelo(input.nextLine());
System.out.print("Digite o numero de rodas do Carro 2: ");
c2.setNumeroRodas(v.verifNumeroRodas());
System.out.print("Digite a potência do Carro 2: ");
c2.setPotencia(v.verifPotencia());
System.out.print("Digite o preco do Carro 2: ");
c2.setPreco(v.verifPreco());
System.out.print("Digite o tipo de combustivel do Carro 2: ");
c2.setTipoCombustivel(input.nextLine());
//criação do objc3
// tipo de combustivel
Carro c3 = new Carro("Flex");
System.out.print("Digite a Marca do Carro 3: ");
c3.setMarca(input.nextLine());
System.out.print("Digite a Modelo do Carro 3: ");
c3.setModelo(input.nextLine());
System.out.print("Digite o numero de rodas do Carro 3: ");
c3.setNumeroRodas(v.verifNumeroRodas());
System.out.print("Digite a potência do Carro 3: ");
c3.setPotencia(v.verifPotencia());
System.out.print("Digite a quantidade de cilindros do Carro 3: ");
c3.setCilindros(v.verifCilindros());
System.out.print("Digite o preco do Carro 3: ");
c3.setPreco(v.verifPreco());
System.out.print("Digite a quantidade de passageiros do Carro 3: ");
c3.setQtdPassageiros(input.nextInt());
System.out.print("Objetos do tipo Carro criado !! Agora criação dos objetos Moto\n\n\n");
//criacao do m1
Moto m1 = new Moto();
System.out.print("Digite a Modelo da moto 1: ");
m1.setModelo(input.nextLine());
System.out.print("Digite a Marca da moto 1: ");
m1.setMarca(input.nextLine());
System.out.print("Digite o preco do da moto 1: ");
m1.setPreco(v.verifPreco());
System.out.print("Digite a potência da moto 1: ");
m1.setPotencia(v.verifPotencia());
System.out.print("Digite o numero de rodas da moto 1: ");
m1.setNumeroRodas(v.verifNumeroRodas());
System.out.print("Digite a quantidade de cilindros da moto 1: ");
m1.setCilindros(v.verifCilindros());
System.out.print("Digite a velocidade máxima da moto 1: ");
m1.setVelocidadeMaxima(v.verifVelMax());
System.out.print("Digite o tipo do motor da moto 1: ");
m1.setTipoMotor(v.verifTipoMotor());
//criacao do m2
//Qtidade de cilindros
Moto m2 = new Moto(2);
System.out.print("Digite a Marca da moto 2: ");
m2.setMarca(input.nextLine());
System.out.print("Digite a Modelo da moto 2: ");
m2.setModelo(input.nextLine());
System.out.print("Digite o preco do da moto 2: ");
m2.setPreco(v.verifPreco());
System.out.print("Digite a potência da moto 2: ");
m2.setPotencia(v.verifPotencia());
System.out.print("Digite o numero de rodas da moto 2: ");
m2.setNumeroRodas(v.verifNumeroRodas());
System.out.print("Digite a quantidade de cilindros da moto 2: ");
m2.setCilindros(v.verifCilindros());
System.out.print("Digite a velocidade máxima da moto 2: ");
m2.setVelocidadeMaxima(v.verifVelMax());
System.out.print("Digite o tipo do motor da moto 2: ");
m2.setTipoMotor(v.verifTipoMotor());
//criacao do m3
//Velocidade max e quantidade de cilindros
Moto m3 = new Moto(220, 4);
System.out.print("Digite a Marca da moto 3: ");
m3.setMarca(input.nextLine());
System.out.print("Digite a Modelo da moto 3: ");
m3.setModelo(input.nextLine());
System.out.print("Digite o preco do da moto 3: ");
m3.setPreco(v.verifPreco());
System.out.print("Digite a potência da moto 3: ");
m3.setPotencia(v.verifPotencia());
System.out.print("Digite o numero de rodas da moto 3: ");
m3.setNumeroRodas(v.verifNumeroRodas());
System.out.print("Digite a quantidade de cilindros da moto 3: ");
m3.setCilindros(v.verifCilindros());
System.out.print("Digite a velocidade máxima da moto 3: ");
m3.setVelocidadeMaxima(v.verifVelMax());
System.out.print("Digite o tipo do motor da moto 3: ");
m3.setTipoMotor(v.verifTipoMotor());
System.out.println(c1+"\n"+c2+"\n"+c3+"\n"+m1+"\n"+m2+"\n"+m3);
}
}
[/code]
[code]package exec;
import java.util.Scanner;
public class Validacao {
public int verifTipoMotor() {
try {
Scanner input = new Scanner(System.in);
int a = input.nextInt();
if (a == 2 || a == 4) {
return a;
} else {
System.out.println("Digite um numero valido 2 ou 4\n Digite o numero de tipo de motor correto: ");
return verifTipoMotor();
}
} catch (Exception e) {
System.out
.println(“Só é permitidos numeros inteiros 2 ou 4 para Tipo de motor”);
return verifTipoMotor();
}
}
public int verifCilindros() {
try {
Scanner input = new Scanner(System.in);
return input.nextInt();
} catch (Exception e) {
System.out.println("Só é permitidos numeros inteiros");
System.out.println("Digite a quantidade de cilindros correto: ");
return verifCilindros();
}
}
public int verifNumeroRodas() {
try {
Scanner input = new Scanner(System.in);
return input.nextInt();
} catch (Exception e) {
System.out.println("Só é permitidos numeros inteiros");
System.out.println("Digite o numero de rodas correto: ");
return verifNumeroRodas();
}
}
public int verifPotencia() {
try {
Scanner input = new Scanner(System.in);
return input.nextInt();
} catch (Exception e) {
System.out.println("Só é permitidos numeros inteiros");
System.out.println("Digite a potencia correta: ");
return verifPotencia();
}
}
public double verifPreco() {
try {
Scanner input = new Scanner(System.in);
return input.nextInt();
} catch (Exception e) {
System.out.println("Só é permitidos numeros inteiros e com ponto flutuante '.' ");
System.out.println("Digite o preco correto: ");
return verifPreco();
}
}
public int verifVelMax() {
try {
Scanner input = new Scanner(System.in);
return input.nextInt();
} catch (Exception e) {
System.out.println("Só é permitidos numeros inteiros");
System.out.println("Digite a velocidade maxima correta: .");
return verifVelMax();
}
}
public int verifPassegeiros() {
try {
Scanner input = new Scanner(System.in);
return input.nextInt();
} catch (Exception e) {
System.out.println("Só é permitidos numeros inteiros");
System.out.println("Digite a quantidade de passageiros correta: ");
return verifPassegeiros();
}
}
}
[/code]
[code]package entity;
public class Carro extends Veiculos {
private String tipoCombustivel;
private Integer qtdPassageiros;
public void cadastrar(String combustivel, Integer passageiros, Double valor){
this.tipoCombustivel = combustivel;
this.qtdPassageiros = passageiros;
}
public int potenciaPorCilindro(Integer potencia,Integer cilindros){
return potencia/cilindros;
}
public double reajustePreco(Double percentual){
this.setPreco((((this.getPreco()*percentual)/100)+this.getPreco()));
return getPreco();
}
public String getTipoCombustivel() {
return tipoCombustivel;
}
public void setTipoCombustivel(String tipoCombustivel) {
this.tipoCombustivel = tipoCombustivel;
}
public Integer getQtdPassageiros() {
return qtdPassageiros;
}
public void setQtdPassageiros(Integer qtdPassageiros) {
this.qtdPassageiros = qtdPassageiros;
}
public Carro() {
// TODO Auto-generated constructor stub
}
public Carro(String tipoCombustivel, Integer qtdPassageiros) {
super();
this.tipoCombustivel = tipoCombustivel;
this.qtdPassageiros = qtdPassageiros;
}
public Carro(Integer cilindros, Integer numeroRodas, String marca,
String modelo, Integer potencia, String tipoCombustivel,
Integer qtdPassageiros) {
super(cilindros, numeroRodas, marca, modelo, potencia);
this.tipoCombustivel = tipoCombustivel;
this.qtdPassageiros = qtdPassageiros;
}
public Carro(String tipoCombustivel) {
super();
this.tipoCombustivel = tipoCombustivel;
}
public Carro(Integer qtdPassageiros) {
super();
this.qtdPassageiros = qtdPassageiros;
}
@Override
public String toString() {
return "[Carro Marca: "+getMarca()+" Modelo: "+getModelo()+" Preço: "
+" Tipo de Combustivel: "+getTipoCombustivel()+" Potencia: "+getPotencia()
+" Cilindros: "+getCilindros()+" Numero de Rodas: "+getNumeroRodas()
+" Passageiros: "+getQtdPassageiros()+"]";
}
}
[/code]
[code]package entity;
import java.util.Scanner;
public class Moto extends Veiculos{
private Integer velocidadeMaxima;
private Integer tipoMotor;
public void cadastrar(Integer maxima, Integer motor){
this.velocidadeMaxima = maxima;
this.tipoMotor = motor;
}
public int potenciaPorCilindro(Integer potencia,Integer cilindros){
return potencia/cilindros;
}
public int velocidadePorCilindro(Integer cilindro,Integer velocidade){
return velocidade/cilindro;
}
public Integer getVelocidadeMaxima() {
return velocidadeMaxima;
}
public void setVelocidadeMaxima(Integer velocidadeMaxima) {
this.velocidadeMaxima = velocidadeMaxima;
}
public Integer getTipoMotor() {
return tipoMotor;
}
public void setTipoMotor(Integer tipoMotor) {
this.tipoMotor = tipoMotor;
}
public Moto() {
// TODO Auto-generated constructor stub
}
public Moto(Integer velocidadeMaxima, Integer tipoMotor) {
super();
this.velocidadeMaxima = velocidadeMaxima;
this.tipoMotor = tipoMotor;
}
public Moto(Integer tipoMotor) {
super();
this.tipoMotor = tipoMotor;
}
public Moto(Integer cilindros, Integer numeroRodas, String marca,
String modelo, Integer potencia, Integer velocidadeMaxima) {
super(cilindros, numeroRodas, marca, modelo, potencia);
this.velocidadeMaxima = velocidadeMaxima;
}
public Moto(Integer cilindros, Integer numeroRodas, String marca,
String modelo, Integer potencia, Integer velocidadeMaxima,
Integer tipoMotor) {
super(cilindros, numeroRodas, marca, modelo, potencia);
this.velocidadeMaxima = velocidadeMaxima;
this.tipoMotor = tipoMotor;
}
@Override
public String toString() {
return "[Moto Marca: "+getMarca()+" Modelo: "+getModelo()+" Preço: "+getPreco()
+" Tipo de Motor: "+getTipoMotor()+" Potencia: "+getPotencia()
+" Cilindros: "+getCilindros()+" Numero de Rodas: "+getNumeroRodas()
+" Velocidade Máxima: "+getVelocidadeMaxima()+"]";
}
}
[/code]
[code]package entity;
public abstract class Veiculos {
private Integer cilindros;
private Integer numeroRodas;
private String marca;
private String modelo;
private Integer potencia;
private Double preco;
public Double getPreco() {
return preco;
}
public void setPreco(Double preco) {
this.preco = preco;
}
@Override
public String toString() {
return "[Cilindros: "+this.cilindros+" Numero de Rodas: "
+this.numeroRodas+" Marca: "+this.marca+" Modelo "+this.modelo+" Potência "+this.potencia+"]";
}
public Veiculos() {
// TODO Auto-generated constructor stub
}
public Veiculos(Integer cilindros, Integer numeroRodas, String marca,
String modelo, Integer potencia) {
super();
this.cilindros = cilindros;
this.numeroRodas = numeroRodas;
this.marca = marca;
this.modelo = modelo;
this.potencia = potencia;
}
public Integer getCilindros() {
return cilindros;
}
public void setCilindros(Integer cilindros) {
this.cilindros = cilindros;
}
public Integer getNumeroRodas() {
return numeroRodas;
}
public void setNumeroRodas(Integer numeroRodas) {
this.numeroRodas = numeroRodas;
}
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}
public String getModelo() {
return modelo;
}
public void setModelo(String modelo) {
this.modelo = modelo;
}
public Integer getPotencia() {
return potencia;
}
public void setPotencia(Integer potencia) {
this.potencia = potencia;
}
}
[/code]