Construtores

Pessoal,

Eu tenho esse exercício pra fazer, mas estou com dúvidas:

[quote]01) criar uma classe Roda com:
campos privados:
int raio, String material (ferro ou liga)
construtor:
Roda(int raio, String material)

  1. criar uma classe Motor com:
    campos privados:
    int capacidade, String combustivel
    construtor:
    Motor(int capacidade, String combustivel)

  2. criar uma classe Carro com:
    campos privados:
    int ano, String marca, String modelo,
    String cor, Motor motor,
    Roda dianteiraEsquerda, Roda dianteiraDireita,
    Roda traseiraEsquerda, Roda traseiraDireita
    construtor:
    Carro(int ano, String marca, String modelo,
    String cor, Motor motor,
    Roda dianteiraEsquerda, Roda dianteiraDireita,
    Roda traseiraEsquerda, Roda traseiraDireita)
    Carro(int ano, String marca, String modelo,
    String cor, int capacidade, String combustivel,
    int raio, String material)

  3. criar uma classe UsaCarro com:
    método:
    main(String[] args)
    - pedir os dados por teclado
    - criar 2 carros: um usando cada construtor
    - imprimir os dados dos dois carros[/quote]

Eu estou com dúvidas onde tá em negrito.

Meus códigos:

[code]class Motor {
int capacidade;
String combustivel;

Motor (int capacidade, String combustivel) {
	this.capacidade = capacidade;
	this.combustivel = combustivel;
}

}

class Roda {
int raio;
String material;

Roda (int raio, String material) {
	this.raio = raio;
	this.material = material;
}

}

class Carro {
int ano;
String marca;
String modelo;
String cor;
Motor motor;
Roda dianteiraEsquerda;
Roda dianteiraDireita;
Roda traseiraEsquerda;
Roda traseiraDireita;

Carro (int ano, String marca, String modelo, String cor, Motor motor,
		Roda dianteiraEsquerda, Roda dianteiraDireita, Roda traseiraEsquerda,
		Roda traseiraDireita) {
	this.ano = ano;
	this.marca = marca;
	this.modelo = modelo;
	this.cor = cor;
	this.motor = motor;
	this.dianteiraEsquerda = dianteiraEsquerda;
	this.dianteiraDireita = dianteiraDireita;
	this.traseiraEsquerda = traseiraEsquerda;
	this.traseiraDireita = traseiraDireita;
}

Carro (int ano, String marca, String modelo, String cor, int capacidade,
	   String combustivel, int raio, String material) {
		this.ano = ano;
		this.marca = marca;
		this.modelo = modelo;
		this.cor = cor;
		this.capacidade = new Motor(capacidade, combustivel);//errado
		this.combustivel = new Motor(capacidade, combustivel);//errado
		this.raio = new Roda(raio, material);//errado
		this.material = new Roda(raio, material);//errado
}

}[/code]

e

[code]import java.util.Scanner;
class UsaCarro {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Entre com o ano do carro: ");
int ano = sc.nextInt();
System.out.println("Entre com a marca do carro: ");//Ele pede a marca junto com o modelo e ignora a marca!
String marca = sc.nextLine();
System.out.println("Entre com o modelo do carro: “);”);//Ele pede a marca junto com o modelo e ignora a marca!
String modelo = sc.nextLine();
System.out.println("Entre com a cor do carro: ");
String cor = sc.nextLine();

	System.out.println();
	System.out.println();
	System.out.println("Veiculo cadastrado.");
	System.out.println("Ano: " + ano);
	System.out.println("Marca: " + marca);
	System.out.println("Modelo: " + modelo);
	System.out.println("Cor: " + cor);
}

}[/code]

A sua duvida está no contrutor… mas vc o criou corretamente… errou apenas na hora de setar os valores no campo…

[quote=claudneto]

[code]class Motor {
int capacidade;
String combustivel;

Motor (int capacidade, String combustivel) {
	this.capacidade = capacidade;
	this.combustivel = combustivel;
}

}

class Roda {
int raio;
String material;

Roda (int raio, String material) {
	this.raio = raio;
	this.material = material;
}

}

class Carro {
int ano;
String marca;
String modelo;
String cor;
Motor motor;
Roda dianteiraEsquerda;
Roda dianteiraDireita;
Roda traseiraEsquerda;
Roda traseiraDireita;

Carro (int ano, String marca, String modelo, String cor, Motor motor,
		Roda dianteiraEsquerda, Roda dianteiraDireita, Roda traseiraEsquerda,
		Roda traseiraDireita) {
	this.ano = ano;
	this.marca = marca;
	this.modelo = modelo;
	this.cor = cor;
	this.motor = motor;
	this.dianteiraEsquerda = dianteiraEsquerda;
	this.dianteiraDireita = dianteiraDireita;
	this.traseiraEsquerda = traseiraEsquerda;
	this.traseiraDireita = traseiraDireita;
}

Carro (int ano, String marca, String modelo, String cor, int capacidade,
	   String combustivel, int raio, String material) {
		this.ano = ano;
		this.marca = marca;
		this.modelo = modelo;
		this.cor = cor;
		this.motor= new Motor(capacidade, combustivel);//agora está certo
		this.dianteiraEsquerda= new Roda(raio, material);//correto
		this.dianteiraDireita = this.dianteiraEsquerda;
		this.traseiraEsquerda = this.dianteiraEsquerda;
		this.traseiraDireita = this.dianteiraEsquerda;
}

}[/code]
}[/code][/quote]

[code]class Carro {
int ano;
String marca;
String modelo;
String cor;
Motor motor;
Roda dianteiraEsquerda;
Roda dianteiraDireita;
Roda traseiraEsquerda;
Roda traseiraDireita;

Carro (int ano, String marca, String modelo, String cor, Motor motor,
		Roda dianteiraEsquerda, Roda dianteiraDireita, Roda traseiraEsquerda,
		Roda traseiraDireita) {
	this.ano = ano;
	this.marca = marca;
	this.modelo = modelo;
	this.cor = cor;
	this.motor = motor;
	this.dianteiraEsquerda = dianteiraEsquerda;
	this.dianteiraDireita = dianteiraDireita;
	this.traseiraEsquerda = traseiraEsquerda;
	this.traseiraDireita = traseiraDireita;
}

Carro (int ano, String marca, String modelo, String cor, int capacidade,
	   String combustivel, int raio, String material) {
		this.ano = ano;
		this.marca = marca;
		this.modelo = modelo;
		this.cor = cor;
		this.motor = new Motor(capacidade, combustivel);
		Roda r = new Roda (raio, material);
		this.dianteiraEsquerda = r;
		this.dianteiraDireita = r;
		this.traseiraEsquerda = r;
		this.traseiraDireita = r;
}

}[/code]

Assim funciona???

O Scanner eu consegui…é só colocar os números depois das Strings! ¬¬"

Funciona… é a “mesma coisa”…

Blz…

Vlw!

Eu pensei assim pq as 4 rodas são iguais!

Então não tem como colocarem rodas diferentes!