Aplicar variáveis à método de outra classe

8 respostas
VitorDias

Olá a todos, estou aprendendo java e me surgiu o seguinte problema:
Fiz um programa para teste da seguinte maneira:

class Teste{

double r;

void valor1(double r1){

r=r1;}

double valor2(double r2){

return r2+r;}

}

Agora eu quero criar uma outra classe “TestaTeste” com um método “tt” que aplique um determinado valor b (por exemplo 100) em r1, um outro determinado valor a (por exemplo 50) em r1 e utilize esses dois valores a e b na soma definida no método valor2 (r2 + r = a + b = 100 + 50) da classe Teste. Como eu faço isso?

O que eu sei é isso, não sei terminar o código:

class TestaTeste{

double tt(){

Teste a = new Teste();

a.valor1(50);

Teste b = new Teste();

b.valor1(100);

Desde já agradeço, Vitor.

8 Respostas

rmendes08

Eu acho que o que você quer é isso:

TestaTeste{
   tt(){  
      Teste a = new Teste();
      a.valor1( 50 );
      double d = a.valor2( 100 ); //assim o valor de d é 150
   }
}

Mas percebe-se que você está confuso ainda! Normal. Parece que você ainda não entendeu a diferença classes x objetos e a diferença variáveis locais x variáveis de instância. Explique melhor o seu problema que a sua dúvida fica mais clara, e fica mais fácil podermos ajudar! :wink:

VitorDias

@ rmende08
Obrigado pela ajuda ! Desculpa se não fui muito claro, comecei tem pouco tempo, ainda tô pegando o linguajar do negócio ehheh
Mas era isso mesmo que eu queria. Agora pegando o seu exemplo, se eu fizesse algo assim:

TestaTeste

tt(){

Teste a =new Teste();

a.valor1( 50 );

double d = a.valor2( 100 )

Teste b =new Teste();

b.valor1( 20 );

double e = b.valor2( 60 )

double f = e.valor2( d )

}

}

Usar o valor de “d” obtido e o valor de “e” obtido e os aplicar no método valor2 da classe Teste. Como eu faço isso funcionar? Não consigo compilar isso ! :?

rmendes08
TestaTeste{ //faltou abrir chave aqui
    tt(){
       Teste a =new Teste();
       a.valor1( 50 );
       double d = a.valor2( 100 )
       Teste b =new Teste();
       b.valor1( 20 );
       double e = a.valor2( 60 )
       double f = e.valor2( d ) //o erro está aqui: você não pode invocar métodos da classe Teste
                                         //por uma variável double
    }
}

Assim, eu não tô conseguindo entender ainda o que você pretende com essa classe :!: :!:

rmendes08

Só pra saber, você já programou em alguma outra linguagem de programação ?

rmendes08

ah … e uso as tags code para postar código

VitorDias

Única linguagem que eu sei um pouco além de java é html mesmo. :?

Bom, é parte de um exercício que eu tô fazendo, só que eu generalizei um pouco pra não ficar muito específico. No exercício mesmo, pede que você crie um programa que calcule a resistência equivalente em um circuito elétrico:

  • uma classe “Resistor” (Teste), em que são colocados três métodos: um em que é entrado o valor de um resistor (valor1), outro que calcula a resistência equivalente entre 2 resistrores em paralelo (o entrado e mais um definido pelo usuário - valor2 - r1 e r2) e outro que calcula a resistência equivalente entre 2 resistores, em série (o entrado e mais o definido pelo usuário).
    Depois uma outra classe que chame esses objetos da classe “Resistor” (Teste) e calcule num circuito específico a resistência equivalente do mesmo a partir de valores definidos, no caso r1=50 e r2=100 (classe TestaTeste no exemplo generalizado).

Nessa última classe que eu mandei, eu queria que a classe “Teste” calculasse o valor da soma d = a+100 (em que a=50) e da soma e = b+60 (em que b=20) e depois fizesse o valor da soma d + e = a + 100 + b + 60.

ivandasilva

Também faltou colocar o tipo de retorno do método TT. Por exemplo

void TT(){ // O que o método irá fazer }

rmendes08

Agora eu entendi. A minha dica é o seguinte, não faça generalizações sem necessidade! Se você vai criar uma classe cujos objetos são resistores, nada mais natural do que criar uma classe Resistor. Logo você vai aprender mecanismos sofisticados para lidar com generalizações/especificações em Java. Perceba como fica mais fácil entender o problema quando você é específico:

class Resistor{
    double resistencia = 0.0;

    double resistenciaSerie( Resistor r ){}
    double resistenciaParalelo( Resistor r ){}
}

Simplesmente porque agora sabemos do que se trata!

Não tenha pressa em aprender orientação a objetos, você vai ver que é a base de toda a programação em Java.

obs: HTML não é linguagem de programação

Criado 13 de setembro de 2008
Ultima resposta 14 de set. de 2008
Respostas 8
Participantes 3