Dúvida Classes e Atributos

5 respostas
H

Tenho essa classe

public class Carro {

String cor;

String modelo;

double velocidadeAtual;

double velocidadeMaxima;
//liga o carro

void liga() {

System.out.println(O carro está ligado);

}
//acelera uma certa quantidade

void acelera(double quantidade) {

double velocidadeNova = this.velocidadeAtual + quantidade;

this.velocidadeAtual = velocidadeNova;

}
//freia uma certa quantidade

void freia(double quantidade) {

double velocidadeNova = this.velocidadeAtual - quantidade;

this.velocidadeAtual = velocidadeNova;

}
//devolve a marcha do carro

int pegaMarcha() {

if (this.velocidadeAtual < 0) {

return -1;

}
if (this.velocidadeAtual >= 0 && this.velocidadeAtual < 40) {
  	return 1;
  }
  
  if (this.velocidadeAtual >= 40 && this.velocidadeAtual <80) {
  	return 2;
  }
  
  else {
  	return 3;
  }

}
}

Essa

public class Motor {

int potencia = 100;

String tipo = Chevrolet;

}

E esse objeto

public class TestaCarro {

public static void main(String[] args) {

Carro meuCarro;

meuCarro = new Carro();

meuCarro.cor = Verde;

meuCarro.modelo = Fusca;

meuCarro.velocidadeAtual = 0;

meuCarro.velocidadeMaxima = 80;

Motor motor;

motor = new Motor();
//liga o carro
  meuCarro.liga();
  
  //acelera o carro
  meuCarro.acelera(20);
  System.out.println(meuCarro.velocidadeAtual);
  
  //marcha
  meuCarro.pegaMarcha();
  
  //motor
  System.out.println(motor.potencia);
  System.out.println(motor.tipo);

}

}

Eu queria que todo Carro já viesse com motor e no TestaCarro gostaria de imprimir o tipo de motor e a potência ao digitar algum método.

5 Respostas

K

Recebe o motor no construtor do carro

/// a Classe carro deve ter um atributo do tipo Motor e receber no construtor e  ter um getter para o motor 

Carro gol = new Carro(new Motor());
gol.getMotor().getPotencia();
F

Olá amigo, para que todo carro inicie com um motor, você deveria declara uma variável do tipo Motor na Classe Carro e para imprimir os valores do motor, criar um método.

public class Carro {
String cor;
String modelo;
double velocidadeAtual;
double velocidadeMaxima;
Motor motor = new Motor();

void exibirMotor(){

System.out.println(motor.potencia);

System.out.println(motor.tipo);

}
H

Muito obrigado, leu meus pensamentos. Eu tinha feito a parte de instanciar mas não conseguia descobrir como exibir a potencia e tipo de uma vez só, claro, deveria criar um método e chamá-lo depois no objeto.

H

Como faço para imprimir o return das marchas?

G

System.out.println(meuCarro.pegaMarcha());

Ou vc pode atribuir a uma variável e dar print nela

int marcha = meuCarro.pegaMarcha();
System.out.println(marcha);
Criado 6 de setembro de 2017
Ultima resposta 8 de set. de 2017
Respostas 5
Participantes 4