Dúvida Classes e Atributos

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.

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();

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);
}

1 curtida

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.

Como faço para imprimir o return das marchas?

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);
1 curtida