Dúvida rápida sobre uso de método

Olá,

comecei a estudar Java fazem 3 semanas, através do livro Java Como Programar - 4ª edição, H. M. Deitel e P. J. Deitel. Estou no [color=blue]capítulo 6 - Métodos[/color]. E no exercício 6.3:


/* Applet exemplificando o uso de métodos */

// Um método de cálculo de quadrados, definido pelo programador
// Fig. 6.3 - pags. 264 e 265

// Pacotes do núcleo de Java
import java.awt.Container;

// Pacotes de extensão de Java
import javax.swing.*;

public class SquareIntegers extends JApplet {
	
	// prepara a GUI e calcula quadrados de inteiros de 1 a 10
	public void init()
	{
		// JTextArea para exibir resultados
		JTextArea areaDeSaida = new JTextArea();
		
		// obtém painel de conteúdo do applet (Área de exibição de componentes GUI)
		Container container = getContentPane(); // que bicho é esse???
		
		// anexa areaDeSaida ao Container
		container.add( areaDeSaida );
		
		int resultado; // armazena o resultado da chamada para o método square
		String saida = "";
		
		// repete 10 vezes
		for (int contador = 1; contador <= 10; contador++) {
			
			// calcula o quadrado de contador e armazena em resultado
			resultado = square( contador );
			
			// acrescenta resultado ao String sa�da
			saida += "O quadrado de " + contador + " é "
                     + resultado + "\n";
			
		} // fim da estrutura for
		
		areaDeSaida.setText( saida );
		
	} // fim do método init()

// definição do método square
	public int square( int y )
	{
		return y * y;	
	} 
// fim do método square
	
} // fim da classe public SquareIntegers

na [size=18]linha 21[/size].

Minha pergunta é: [color=red]Como é possível usar um método de uma classe através de uma variável de referência, sem antes instanciar a classe com new???[/color]

O correto não seria fazer:

Container container = new Container();
container.getContentPane();

Não entendi. Alguma ideia? :slight_smile:

getContentPane() tá na classe que vc extendeu… lá vai chamar um método que chama outro que chama outro e em algum lugar vai ter um new

(uma caracteristica que eu nao gosto nesse livro sao os applets…)

[quote=rogelgarcia]getContentPane() tá na classe que vc extendeu… lá vai chamar um método que chama outro que chama outro e em algum lugar vai ter um new

(uma caracteristica que eu nao gosto nesse livro sao os applets…)[/quote]

Hhehehehe … chega a ser engraçado, mas acontece que esse é um dos primeiros livros sobre Java, e na época Applets eram a promessa. Eu tenho a 2 edicao em ingles desse livro (comprei por 10 reais em uma feira em São Paulo) e tem uma ênfase exagerada nos recursos de multimídia e bibliotecas gráficas, como Java2D. Na época, (do livro, não quando comprei) nem Swing existia.

[quote=rmendes08][quote=rogelgarcia]getContentPane() tá na classe que vc extendeu… lá vai chamar um método que chama outro que chama outro e em algum lugar vai ter um new

(uma caracteristica que eu nao gosto nesse livro sao os applets…)[/quote]

Hhehehehe … chega a ser engraçado, mas acontece que esse é um dos primeiros livros sobre Java, e na época Applets eram a promessa. Eu tenho a 2 edicao em ingles desse livro (comprei por 10 reais em uma feira em São Paulo) e tem uma ênfase exagerada nos recursos de multimídia e bibliotecas gráficas, como Java2D. Na época, (do livro, não quando comprei) nem Swing existia.[/quote]

É justamente por isso que nao gosto… utiliza coisas de 10 anos atrás…

É tipo isso que acontece ali… O pai já escreveu o método, então o filho só reaproveita…
Aconselharia dar uma lida sobre herança…

public class Pai {
	
	public void metodoImplementadoNoPai() {
		System.out.println("Método do Pai.");
	}

}

class Filho extends Pai {
	
	public void metodoImplementadoNoFilho() {
		super.metodoImplementadoNoPai();
	}
	
}

Obrigado pelas respostas. Ainda não cheguei no capítulo que trata de Herança. Mas de um modo geral, o [color=blue]new[/color] não foi usado porque o método está dentro do init() como no caso do square() ou nada a ver?