Ybadoo - Soluções em Software Livre
Turmas
2º Semestre de 2014

Questão 01

O paradigma de programação orientado a objetos tem sido largamente utilizado no desenvolvimento de sistemas. Considerando o conceito de herança, avalia as afirmações abaixo:

  1. Herança é uma propriedade que facilita a implementação de reúso.
  2. Quando uma subclasse é criada, essa herda todas as características da superclasse, não podendo possuir propriedades e métodos próprios.
  3. Herança múltipla é uma propriedade na qual uma superclasse possui diversas subclasses.
  4. Extensão é uma das formas de se implementar herança.

É correto apenas o que se afirma em:

  1. I.
  2. III.
  3. I e IV.
  4. II e III.
  5. II e IV.

Questão 02

O encapsulamento dos dados tem como objetivo ocultar os detalhes da implementação de um determinado módulo. Em linguagens orientadas a objeto, o ocultamento de informação é tornado explícito requerendo-se que todos os métodos e atributos em uma classe tenham um nível particular de visibilidade com relação às suas subclasses e às classes clientes. Em relação aos atributos de visibilidade, assinale a alternativa correta:

  1. Um atributo ou método público é visível a qualquer classe cliente e subclasse da classe a que ele pertence.
  2. Um atributo ou método protegido é visível somente à classe a que ele pertence, mas não às suas subclasses ou aos seus clientes.
  3. Um atributo ou método privado é visível somente às subclasses da classe a que ele pertence.
  4. Um método protegido não pode acessar os atributos privados declarados na classe a que ele pertence, sendo necessária a chamada de outro método privado da classe.
  5. Um método público pode acessar somente atributos públicos declarados na classe a que ele pertence.

Crie uma classe chamada Rational para realizar aritmética com frações. Utilize variáveis do tipo int para representar as variáveis de instância private da classe – o numerador e o denominador. Forneça um método construtor que permita que um objeto dessa classe seja inicializado quando ele for declarado. O construtor deve armazenar a fração na forma reduzida (isto é, a fração 2/4 seria armazenada no objeto como 1 no numerador e 2 no denominador). Forneça um construtor sem argumentos com valores padrão caso nenhum inicializador seja fornecido. Forneça métodos public para cada um dos itens a seguir:

  1. Adição de dois números Rational. O resultado da adição deve ser armazenado na forma reduzida.
  2. Impressão de números Rational na forma a/b, onde a é o numerador e b o denominador.

Questão 04

A programação orientada a objeto não é apenas uma forma de programar, é também um jeito de pensar em um problema utilizando conceitos do mundo real e, não somente conceitos computacionais. Considerando os conceitos da programação orientada a objetos, analise as afirmações abaixo.

  1. O objeto tem determinadas propriedades que o caracterizam e que são armazenadas no próprio objeto. As propriedades de um objeto são chamadas de instâncias.
  2. As mensagens são informações enviadas ao objeto para que ele se comporte de uma determinada maneira. Um programa orientado a objetos em execução consiste em envios, interpretações e respostas às mensagens. São os métodos, os procedimentos residentes nos objetos, que determinam como eles atuarão ao receber as mensagens.
  3. A herança é um mecanismo para o compartilhamento de métodos e atributos entre classes e subclasses, permitindo a criação de novas classes através da programação das diferenças entre a nova classe e a classe-pai.
  4. O encapsulamento é um mecanismo que permite o acesso aos dados de um objeto somente através dos métodos desse. Nenhuma outra parte do programa pode operar sobre os dados do objeto. A comunicação entre os objetos é feita apenas através de troca de mensagens.

É correto apenas o que afirma em:

  1. I e II.
  2. I e III.
  3. III e IV.
  4. I, II e IV.
  5. II, III e IV.

Questão 05

Uma pizzaria fez uma ampliação de suas instalações e o gerente aproveitou para melhorar o sistema informatizado, que era limitado e não atendia a todas as funções necessárias. O gerente, então, contratou uma empresa para ampliar o software. No desenvolvimento do novo sistema, a empresa aproveitou partes do sistema antigo e estendeu os componentes de maneira a usar código validado, acrescentando as novas funções solicitadas. Que conceito de orientação a objetos está descrito na situação hipotética acima?

  1. sobrecarga.
  2. herança.
  3. sobreposição.
  4. abstração.
  5. mensagem.
Desenvolva um segmento que apresente os n primeiros termos da sequência yk+1 = yk + (3k2 + 3k + 1), sendo k = 1, 2, 3, ..., n e y1 = 1. O segmento deverá fazer uma pausa de um segundo antes da impressão de cada número. Crie uma classe e estenda Thread. Como alternativa, você pode implementar a interface Runnable. Substitua o método run() de Thread. É aí que entrará o código que exibirá os números. Crie uma repetição for que seja executado n vezes. Use o método estático Thread.sleep() para fazer uma pausa. Um número do tipo long representará os milissegundos.

Questão Extra

Qual será o resultado da execução do trecho a seguir.

Arquivo Test.java

package com.ybadoo.tutoriais.poo;

public class Test
{
public static void throwit()
{
System.out.print("throwit ");

throw new RuntimeException();
}

public static void main(String[] args)
{
try
{
System.out.print("hello ");

throwit();
}
catch(Exception exception)
{
System.out.print("caught ");
}
finally
{
System.out.print("finally ");
}

System.out.println("after ");
}
}

Resultado da execução

hello throwit caught finally after