UFSM > Informática > ELC117 - Paradigmas de Programação

Classes e Objetos

  1. O que há de errado com o programa Errado2.java ?

  2. Porque a saída do programa Errado3.java não é igual a (1.0,1.0)?

  3. Baixe o programa Ordenacao.java. Esse programa ilustra o uso de arrays em Java. Compile e execute esse programa, observando seu resultado.

  4. Para que foi usada a palavra-chave static antes do método ordena no programa Ordenacao.java? O que acontecerá se esta palavra for omitida?

  5. Na linha 22 de Ordenacao.java, a chamada ao método ordena pode ser escrita de que outra forma?

  6. No programa Ordenacao.java, inclua um método que ordena um array de inteiros em ordem decrescente. Modifique o método main para invocar este novo método e teste o programa.

  7. Analise o programa Relogio.java e responda às seguintes questões:
    • Quais são as variáveis de classe e de instância da classe Relogio?
    • Quais são os métodos de classe e de instância da classe Relogio?
    • Qual será o resultado da execução do programa?

  8. Ainda sobre o programa Relogio.java, explique o que acontecerá se:
    • adicionarmos o seguinte código na linha 36 do programa?
      total = 0;
      
    • adicionarmos o seguinte código na linha 40 do programa?
      hora = 10;
      

Herança e Polimorfismo

  1. Analise o programa TesteHeranca.java e explique qual será o resultado de sua execução. Compile e execute o programa, verificando se sua resposta está correta. Dica: para fazer este exercício, leia a seção Overriding and Hiding Methods do Tutorial Java da Oracle.

  2. Considere as seguintes classes:
    public class ClassA {
        public void methodOne(int i) {
        }
        public void methodTwo(int i) {
        }
        public static void methodThree(int i) {
        }
        public static void methodFour(int i) {
        }
    }
    public class ClassB extends ClassA {
        public static void methodOne(int i) {
        }
        public void methodTwo(int i) {
        }
        public void methodThree(int i) {
        }
        public static void methodFour(int i) {
        }
    }
    
    Responda:
    • Qual método de ClassB sobrescreve um método de ClassA?
    • Qual método de ClassB esconde um método de ClassA?
    • Quais métodos de ClassB são inválidos devido à herança de ClassA?

Classes abstratas e interfaces

  1. O programa BichosIncompleto.java ilustra a definição de uma classe abstrata Bicho. Para derivar esta classe, é necessário fornecer o som emitido por cada tipo de bicho (método som()). Complete o programa criando as classes derivadas Gato e Cachorro, que devem respectivamente emitir os sons "Miau" e "Auau".

  2. O método toString da classe Object retorna a representação de um objeto na forma da uma string. Este método pode ser sobreposto para "personalizar" a representação de um objeto. Implemente este método na classe Bicho do programa BichosIncompleto.java e adicione a seguinte linha ao método main:
    System.out.println(g);
    
    Considerando os dados do exercício anterior, o resultado da execução da linha acima deverá ser:
    Garfield
    

  3. Faça os exercícios sobre interfaces do Tutorial Java da Sun/Oracle: http://download.oracle.com/javase/tutorial/java/IandI/QandE/interfaces-questions.html

API Java

  1. O programa JogoDeDados.java ilustra a geração de números aleatórios usando o método random da classe java.lang.Math. Uma maneira alternativa de se trabalhar com números aleatórios é através da classe java.util.Random. Reescreva o programa utilizando esta classe.

  2. O programa MedicaoDeTempo.java ilustra o uso do método currentTimeMillis da classe java.lang.System. Neste caso, o método é usado para medir o tempo gasto na execução do método loop1. Modifique o programa incluindo um método loop2, que deve implementar um laço equivalente ao de loop1 usando do <..> while (..);. Modifique também o método main de modo a comparar os tempos de execução de loop1 e loop2.

  3. Analise o programa Pessoa.java e explique qual será o resultado de sua execução. Sugestão: para fazer este exercício, leia a seção sobre a classe String da plataforma Java.

  4. Escreva um programa Java que utilize o método replace da classe String. Este programa deve receber várias strings na linha de comando e, para cada uma delas, mostrar uma string com as vogais substituídas por pontos, como no exemplo abaixo:
    java TesteReplace lobo ovelha couve
    l.b.
    .v.lh.
    c..v.
    

  5. Reescreva o programa do exercício anterior utilizando o método replaceAll da classe String.

  6. Escreva um programa Java que, dado o nome completo de uma pessoa, mostre as iniciais da pessoa. Você pode assumir que o nome da pessoa contenha maiúsculas e minúsculas. Assim, por exemplo, as iniciais de "Fulano de Tal" são "FT" e as de "João Pereira" são "JP".

Material de Apoio

Página criada em: Fri Jun 10 15:26:24 BRT 2011. Última atualização em: Fri Jun 10 15:44:22 2011. Autoria: Andrea Schwertner Charão.