icaro_ 0 Denunciar post Postado Janeiro 26, 2012 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
Kandrade 7 Denunciar post Postado Janeiro 26, 2012 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
icaro_ 0 Denunciar post Postado Janeiro 27, 2012 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
Vergil 15 Denunciar post Postado Janeiro 27, 2012 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
icaro_ 0 Denunciar post Postado Janeiro 28, 2012 Hehe.. funcionou beleza agora.. Obrigado pela força .. abraço.. Compartilhar este post Link para o post Compartilhar em outros sites