Problema com instancia de novo objeto

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]

Como assim passa da primeira?

Digão, ela exibe a mensagem e não pega os dados, tentei declarar a váriavel e depois atribuila dentro do set como está no codigo acima que eu vou modificar agora, sendo que na frente ele da erro em outra parte …

Tipo aparece a mensagem de inserção de Modelo, e pula pra mensagem de inserção de Marca

Que que é esse ponto e vírgula sobrando aí?[code]//criacao do m1
Moto m1 = new Moto();

    System.out.print("Digite a Modelo da moto 1: ");  
    m1.setModelo(input.nextLine();); // Nessa linha[/code]

[quote=digaoneves]Que que é esse ponto e vírgula sobrando aí?[code]//criacao do m1
Moto m1 = new Moto();

    System.out.print("Digite a Modelo da moto 1: ");  
    m1.setModelo(input.nextLine();); // Nessa linha[/code][/quote]

Foi pq eu editei aqui e colei o input de cima hahaha ignore ele … vou arruamr

Alguma alma ?

Cara eu rodei teu código aqui (sem alterar uma virgula sequer) e rodou normal. Pegou todos os dados e imprimiu no final

[Carro Marca: marcacarro 1 Modelo: modelo carro 1 Preço: Tipo de Combustivel: gas Potencia: 10 Cilindros: 20 Numero de Rodas: 5 Passageiros: 5]
[Carro Marca: marca carro 2 Modelo: modelo carro 2 Preço: Tipo de Combustivel: 1 Potencia: 1 Cilindros: null Numero de Rodas: 22 Passageiros: 6]
[Carro Marca: carro 3 Modelo: c3 Preço: Tipo de Combustivel: Flex Potencia: 3 Cilindros: 4 Numero de Rodas: 3 Passageiros: 6]
[Moto Marca: m1 Modelo: Preço: 1.0 Tipo de Motor: 2 Potencia: 1 Cilindros: 1 Numero de Rodas: 1 Velocidade Máxima: 1]
[Moto Marca: 6 Modelo: 4 Preço: 5.0 Tipo de Motor: 4 Potencia: 655 Cilindros: 54 Numero de Rodas: 4 Velocidade Máxima: 45]
[Moto Marca: 54 Modelo: 54 Preço: 54.0 Tipo de Motor: 4 Potencia: 5 Cilindros: 5 Numero de Rodas: 5 Velocidade Máxima: 5]

Qual sua duvida. Qual o erro que ocorre? Teste com apenas um carro e uma moto. Pois ficar inserindo esse monte de dados é um saco. :smiley:

Uma sugestão. Se vc quiser cadastrar n carros, crie um vetor de carros e cadastre dentro de um laço. Evite ao extremo duplicar código.

Ao invés de:

System.out.print("Digite a Marca do Carro 1: "); c1.setMarca(input.nextLine());... System.out.print("Digite a Marca do Carro 2: "); c1.setMarca(input.nextLine()); ...
Faça algo como:

int n for(...){ ou while(...){ System.out.print("Digite a Marca do Carro" + n+ ":" );

Se tiver tempo sobrando que tal estudar interfaces gráficas? :smiley: Boa sorte ai no trabalho

carloshsamaral, pelo que entendi já tive um problema parecido por causa do nextLine(), dependendo do que você chamar em seguida ele pula a próxima leitura, pelo que sei é por causa do \n, sempre prefiro o next se for ler somente uma palavra, mas olha esse post que pode te ajudar http://www.guj.com.br/java/253243-problemas-com-string-em-classe-scanner#1316491