1. Monte um tutorial acerca de como representar os conceitos básicos em uma linguagem orientada a objetos de sua escolha (excetuando-se Java).

  2. Descreva o que é polimorfismo, como ele ocorre, e qual o seu impacto (vantagens e desvantagens) na programação de sistemas. Exemplifique.

  3. Conceitue sobrescrita (overriding) e sobrecarga (overloading) de métodos em linguagens de programação orientadas a objetos, exemplificando.

  4. Conceitue herança e descreva três situações nas quais seria adequada a sua utilização. Mostre um exemplo de código.

  5. O que são e para que servem as classes abstratas nas linguagens de programação orientadas a objetos? Descreva ao menos três situações nas quais seria adequado usar tais classes.

  6. Qual a vantagem do uso dos tipos genéricos em sistemas orientados a objetos? Em que situações eles devem ser utilizados. Exemplifique ao menos três situações nas quais é interessante usar tal mecanismo.

  7. Em relação aos conceitos de POO, considere as seguintes afirmações:

    1. Os métodos são usados para definir operações em classes.

    2. As classes são usadas como mecanismos de abstração e são usadas para representar conceitos do mundo real e do mundo computacional.

    3. Instâncias de classe normalmente são criadas através do uso dos chamados construtores, que criam objetos de uma determinada classe.

    Assinale a alternativa certa:

    1. Apenas a I é incorreta.

    2. Apenas a II é incorreta.

    3. Apenas a III é incorreta.

    4. Apenas a I e a III são incorretas.

    5. Nenhuma está incorreta.

  8. Em relação à herança em Java, assinale a alternativa correta:

    1. Um objeto de uma superclasse sempre pode ser atribuído, sem erros de compilação, para uma variável cujo tipo é de uma de suas subclasses.

    2. A herança é a única forma usada para acessar métodos e atributos externos a uma classe.

    3. É impossível substituir completamente o comportamento de um método de uma superclasse, podendo-se apenas estender o comportamento deste método.

    4. A sobrecarga é usada para definir mais de um método com o mesmo parâmetro em uma superclasse, para assim poderem ser usados por suas subclasses.

    5. Uma subclasse herda todos os atributos e métodos não privados de sua superclasse. Podem ser adicionados novos atributos e métodos a uma subclasse.

  9. Crie classes para manipular contas bancárias. As contas podem ser dos tipos poupança e conta corrente. Deve ser possível:

    • Obter o saldo da conta

    • Modificar o saldo da conta

    • Sacar um valor da conta

    • Depositar um valor da conta

    • Transferir um valor para outra conta

    • Bloquear e liberar uma conta da seguinte forma: c1.­blo­que­ar() e c1.­li­be­rar(). Se a conta estiver bloqueada, é possível somente obter e modificar o saldo da conta.

  10. Implemente o jogo Campo Minado usando Java para o terminal.


Este artigo é uma adaptação de conteúdo do livro Orientação a Objetos com Java, de Eduardo Kessler Piveta.

Leia também