Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

icaro_

[Resolvido] Associaçao de classes

Recommended Posts

Olá bom dia galera...

Seguinte to com alguns probleminhas para associar duas classes e compartilhar seus metodos..

Estou estudando java a algum tempo e ainda nao consegui enteneder oque ocorre com os metodos dentro das class,

ai vai um exemplo..

 

irei usar um carro no qual possuo uma class motor

class Motor{
    String tipo;
    String combustivel;
 int potencia;
 int valvulas;

void configuramotor(){
	this.tipo = JOptionPane.showInputDialog("Inseira o tipo do motor:");
	this.combustivel = JOptionPane.showInputDialog("Qual combustivel usado pelo motor?");
	this.potencia = Integer.parseInt(JOptionPane.showInputDialog("Potência final do motor será de:"));
	this.valvulas = Integer.parseInt(JOptionPane.showInputDialog("Quantas valvulas terá o motor?"));

	                     }				  
	   }

 

e possuo uma class car que seria o carro propriamente dito..

class car{
   String marca;
   String modelo;
   String cor;
   int velocidadmax;
   int velocidadatu;
   String marchaatual;
   boolean ligado;
   Motor engine;

na class car possuo varios metodos,sendo um que monta o carro,

 

void montacarro(){
	    this.marca = JOptionPane.showInputDialog("Qual a marca do Carro?");
           this.modelo = JOptionPane.showInputDialog("Qual o modelo do Carro?");
           this.cor = JOptionPane.showInputDialog("Qual a cor do Carro?");

          //inseri velocidade maxima de acordo com o motor!
           If(this.engine.potencia >= 145 && this.engine.potencia <= 150){
		    this.velocidadmax = 125; 
                                		                       		    }
           If(this.engine.potencia >= 150 && this.engine.potencia <= 250){
		    this.velocidadmax = 155; 
                                				                        }
           If(this.engine.potencia >= 250 && this.engine.potencia <= 600){
		    this.velocidadmax = 220; 
                                		          		                }
           If(this.engine.potencia >= 600 && this.engine.potencia <= 750){
		    this.velocidadmax = 240;
			                                                        }
           If(this.engine.potencia  >= 750){
		    this.velocidadmax = 280; 
                                		   } 
           this.velocidadatu = 0;
           this.marchaatual = "N";
           this.ligado = false;	

 

Pronto cheguei onde queria.. hehe

 

Porque não consigo acessar a class Motor que esta sendo referenciada como "engine" para assim setar a velocidade maxima, como eu poderia fazer referenciar a velocidade a potencia do motor?

Desde já agradeço..

Otima tarde a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes de usar engine, voce precisa criá-lo, configurá-lo e associá-lo a carro.

 

Algo do tipo


  ...
  Motor motor = new Motor();
  motor.configuramotor();
  this.engine = motor;
  ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite!

Desde já agradeço a atenção Kandrade,pelo que vi tive um probleminha com a logica. hehe

Mas devo construir o motor no metodo montacarro da class car?

 

ou seja

  void montacarro(){
       ...
       this.engine = new Motor();
       engine.configuramotor();
       ...
                   }

ou bastaia criar o motor na class principal,

logo depois criar o carro na mesma class e finalmente "adicionar" o motor no carro.

como codigo abaixo

 

  public class carro(){
  ...{
   Motor meumotor = new Motor();
   meumotor.configuramotor();

   car meucarro = new car();
   meucarro.engine = meumotor;  
     }
                      }

Desculpe a insistência,hehe sou novo por aqui,

Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você poderia fazer isso no método montaCarro.

void montacarro() {
       this.marca = JOptionPane.showInputDialog("Qual a marca do Carro?");
       this.modelo = JOptionPane.showInputDialog("Qual o modelo do Carro?");
       this.cor = JOptionPane.showInputDialog("Qual a cor do Carro?");

       this.engine = new Motor();
       engine.configuramotor();
       ...
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.