Prova de Características das Linguagens de Programação (p1) – 2005 / 01 1a questão: Considere o código fonte do applet “KeyPadApp”. Identifique: Os packages a que o código se refere; as classes aí existentes; os objetos, associando-os às classes de que são instâncias; os métodos, associando-os aos seus respectivos objetos; os data-members ou variáveis de instância, associando-os aos seus respectivos objetos; as variáveis locais. import java.awt.*; public class KeyPadApp extends java.applet.Applet { public void init() { add ( new KeyPad( 16 ) ); resize(preferredSize()); } } class KeyPad extends Panel { KeyPad ( int n ) { int s = (int)Math.sqrt(n); setLayout( new GridLayout(s, s) ); for (int i=0; i<n; i++) add( new Button( Integer.toString(i) ) ); } public boolean action(Event e, Object arg) { System.out.println("Button "+arg+" pressed"); return true; } } 2a questão: Explique minuciosamente qual o efeito resultante da execução do applet cujo código encontra-se na 1a questão. 3a questão: Considere o código do applet KeypadApp. Faça o override do método action, a fim de que sejam emitidos tantos beeps quanto o valor contido no label que identifica os botões. Caso também seja necessário adicione novas linhas de código e/ou altere as já existentes. 4a questão: No código do applet KeypadApp, acima, aponte os trechos do código em que foi usado o mecanismo de herança, identificando a classe, a subclasse e os métodos herdados da classe pela subclasse. 5a questão: Dê um exemplo, em Java, de polimorfismo. Boa Sorte! Prof. Oscar Luiz Monteiro de Farias