Dúvida de conceito básico

1 resposta
R

Olá pessoal
Gostaria muito de tirar um dúvida sobre conceito de OO que não entedi. Olhem esse pequeno exemplo :

import javax.swing.JOptionPane;
import javax.swing.JTextArea;

public class Teste {

public static void main(String args[])

{

JOptionPane Pane = new JOptionPane();

JTextArea JT = new JTextArea();

JT.setText(apenas um teste);

Pane.showMessageDialog(null,JT,“teste”,Pane.INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(null,JT,“teste”,JOptionPane.INFORMATION_MESSAGE);

System.exit(0);

}

}

A minha dúvida é a seguinte : pq não é obrigatório criar um objeto JOptionPane para que eu possa utiliza-lo no programa?
Eu criei um objeto “Pane” da classe JOptionPane , mas percebi que posso utilizar o objeto (ou seria classe nesse caso?) JOptionPane sem que precise instancia-lo.
Pq não posso usar essa mesma ideia com o JTextArea? Por exemplo, se tento utiliza-lo da seguinte forma : JTextArea.setText(“Apenas um teste”) o programa não compila., ou seja, para utilizar o JTextArea eu preciso criar um objeto , mas para utilizar o JOptionPane isso não é necessário.

Não sei se fui claro na explicação da minha dúvida… :frowning: mas espero que alguem possa me ajudar.

Um abraço!

Flávio

1 Resposta

marciolx

não é obrigatório porque neste caso você está usando um método static da classe. Métodos static pertencem à classe e não à instâncias da classe, não é necessário instanciar um objeto para chamá-los, mas se você o fizer não estará errado.

veja a api:
http://java.sun.com/j2se/1.4.1/docs/api/javax/swing/JOptionPane.html

sobre o modificador static:

Criado 28 de agosto de 2003
Ultima resposta 28 de ago. de 2003
Respostas 1
Participantes 2