Usando variavel de outra classe

7 respostas
TeRRa

[i]Bom Dia galera,
Estou querendo utilizar uma variavel de outra classe e não estou conseguindo.
Gostaria de saber se alguém poderia me dar alguma dica.
Segue código:

<blockquote>import javax.swing.*;

public class calc_fatorial {

public static void main(String[]args){

ent_sai_fat num=new ent_sai_fat();

num.entrada();

while(num>0){

JOptionPane.showMessageDialog(null, num);

}

}

}

<blockquote>import javax.swing.*;

public class ent_sai_fat {

void entrada(){

String Strnum=JOptionPane.showInputDialog(Digite um número para calcular seu valor fatorial.);

Integer num=Integer.parseInt(Strnum);

}

}</blockquote>

Eu estou querendo utilizar a variavel NUM da classe ent_sai_fat. Mas está dando erro no While dizendo “The operator * is undefinied…”.

Obrigado !

Até

7 Respostas

leo.junior

Bom dia!
Antes de qualquer coisa, acho melhor vc dar uma estudada nessa apostila.

Isso vai te ajudar bastante!

Abraço!

walissongpi
import javax.swing.*; 
public class ent_sai_fat { 
void entrada(){ 
String Strnum=JOptionPane.showInputDialog("Digite um número para calcular seu valor fatorial."); 
Integer num=Integer.parseInt(Strnum); 
} 
}

a variável "num" foi declarada dentro do método (variavel local) e vc não pode utilizar ela fora do método.
coloque ela global ou receba/passe paramentros.

veja:
import javax.swing.*; 
public class ent_sai_fat { 
Integer num; //declaração global (atributos do objeto)
void entrada(){ 
String Strnum=JOptionPane.showInputDialog("Digite um número para calcular seu valor fatorial."); 
num=Integer.parseInt(Strnum); 
} 
}

na outra classe vc está tentanto acessar a variável diretamente só ne na linha indicada vc está declarando um objeto. Atravéz deste objeto vc vai acessar a variável.

public class calc_fatorial { 
public static void main(String[]args){ 
ent_sai_fat objeto=new ent_sai_fat(); //essa linha aqui está errada.
 
while(objeto.num>0){ // vc NÃO pode comparar um objeto com numeros assim.
JOptionPane.showMessageDialog(null, num); 
} 
}

veja:

public class calc_fatorial {
public static void main(String[]args){
ent_sai_fat objeto=new ent_sai_fat(); /
objeto.entrada();
while(objeto.num>0){
JOptionPane.showMessageDialog(null, objeto.num);
}
}
adrianoseven

Querido… dá uma estudada antes. Tem muita coisa errada aí.

  1. Classes devem começar com a primeira letra Maiuscula.
  2. Você tem uma variável String (num) e está comparando ela como se fosse numero no while ( num > 0 ). Comparação de Strings não são assim…
  3. Use para escrever os codigos e não citação…
  4. Siga o censelho do amigo léo.junior (acima)
TeRRa

walissongpi, muito obrigado !!
consegui compreender !!

Leo e Adriano, valeu! Vou dar uma estudada sim ! Já peguei a apostila linkada! Obrigado mesmo!
E desculpe qualquer coisa…

Abraço a todos…

A

Simples: na declaração da variavel, declare ela como public. Ela está como variavel local, e tem de ser publica:

public num = ...
walissongpi

[quote=Alex Rocha]Simples: na declaração da variavel, declare ela como public. Ela está como variavel local, e tem de ser publica:

public num = ...

Não necessariamente publica. Ela pode ser protected ou default. Somente as variáveis private não podem ser acessadas a partir de outras classes.

J
walissongpi:
import javax.swing.*; 
public class ent_sai_fat { 
void entrada(){ 
String Strnum=JOptionPane.showInputDialog("Digite um número para calcular seu valor fatorial."); 
Integer num=Integer.parseInt(Strnum); 
} 
}

a variável "num" foi declarada dentro do método (variavel local) e vc não pode utilizar ela fora do método.
coloque ela global ou receba/passe paramentros.

veja:
import javax.swing.*; 
public class ent_sai_fat { 
Integer num; //declaração global (atributos do objeto)
void entrada(){ 
String Strnum=JOptionPane.showInputDialog("Digite um número para calcular seu valor fatorial."); 
num=Integer.parseInt(Strnum); 
} 
}

na outra classe vc está tentanto acessar a variável diretamente só ne na linha indicada vc está declarando um objeto. Atravéz deste objeto vc vai acessar a variável.

public class calc_fatorial { 
public static void main(String[]args){ 
ent_sai_fat objeto=new ent_sai_fat(); //essa linha aqui está errada.
 
while(objeto.num>0){ // vc NÃO pode comparar um objeto com numeros assim.
JOptionPane.showMessageDialog(null, num); 
} 
}

veja:

public class calc_fatorial {
public static void main(String[]args){
ent_sai_fat objeto=new ent_sai_fat(); /
objeto.entrada();
while(objeto.num>0){
JOptionPane.showMessageDialog(null, objeto.num);
}
}

Desejo setar o valor (String) de uma Combobox em um Jtex em outra classe. Fiz assim:

ClasseB onde se encontra a JCombobox:

[/code]public class jdLogin extends javax.swing.JDialog { //JDIALOG

String num; //declaração global (atributos do objeto)
void entrada(){ //conteúdo do objeto/VARIÁVEL
//JComboBox test = new JComboBox();
//test.getSelectedItem();
num = (String) cbxNatu.getSelectedItem();

} [/code]

ClasseB onde desejo setar, em um JTextfield, a String q peguei da Combo na ClasseA:

[/code]public class Acolh_JFrame extends JFrame { //JFRAME PRINCIPAL
...
public Acolh_JFrame() { // CONSTRUTOR

initComponents();
setIcon();
Container();
janela();

JScrollBar pane = jScrollPane2.getVerticalScrollBar();
pane.setEnabled(false);

jdLogin obj = new jdLogin(this, true);
obj.entrada();
jtxLogar.setText(obj.num); [/code]

Só que não dá certo. Se for um texto setado em um JText qualquer da ClasseA no lugar do JCombobox é sem problemas.
Não consigui resolver, mesmo convertendo a variável da Combo p String.

Fico muito grato pela ajuda. Até pq este tópico me adiantou muita coisa.
OBJ!!! Aguardando...

Criado 5 de maio de 2010
Ultima resposta 21 de mai. de 2014
Respostas 7
Participantes 6