Ybadoo - Soluções em Software Livre
Turmas
1º Semestre de 2016

Questão 01

Considere a classe em Java apresentada a seguir.

Arquivo TestWriter.java

package com.ybadoo.tutoriais.poo;

public class TestWriter
{
  public static void main(String[] args)
  {
    try
    {
      File file = new File("file.txt")
      file.createNewFile();
      System.out.println(file.exists());
    }
    catch(IOException exception)
    {
      exception.printStackTrace();
    }
  }
}

Qual classe poderia entrar no lugar de IOException?

  1. Error
  2. FileNotFoundException
  3. FileSystemException
  4. RuntimeException
  5. Throwable

Questão 02

Se uma classe na linguagem de programação Java for declarada com o modificador abstract, então essa classe:

  1. não pode ser referenciada.
  2. não pode ser estendida.
  3. não pode ser instanciada.
  4. não pode possuir métodos estáticos.
  5. não pode possuir atributos públicos.

Questão 03

Considere as seguintes classes Java:

public class Latim
{
  ...
}

...

public class Portuguese extends Latim
{
  ...
}

...

public class Test
{
  public static void main(String[] args)
  {
    Latim[] a = new Latim[10]; // 1
    Portuguese[] b = new Portuguese[20]; // 2
    a = b; // 3
    a = new Portuguese[30]; // 4
    b = new Latim[10]; // 5
  }
}

Qual das alternativas a seguir representa o que acontecerá?

  1. O código não compila devido a um erro na linha com comentário 1.
  2. O código não compila devido a um erro na linha com comentário 2.
  3. O código não compila devido a um erro na linha com comentário 3.
  4. O código não compila devido a um erro na linha com comentário 4.
  5. O código não compila devido a um erro na linha com comentário 5.

Questão 04

Uma diferença entre uma classe (class) e uma interface (interface) na linguagem de programação Java é que a classe

  1. pode ter um campo de dados, enquanto a interface não pode.
  2. pode ser implementada em uma interface, enquanto a interface não pode ser implementada.
  3. é usada apenas em interfaces gráficas, enquanto a interface é usada apenas em aplicativos dedicados.
  4. é catalogada em pacotes, enquanto a interface não.
  5. declara e implementa seus métodos, enquanto a interface apenas declara.
Desenvolva uma classe chamada TruncatedCuboctahedron para representar um cuboctaedro truncado, ou seja, um poliedro semi-regular composto por doze quadrados, oito hexágonos e seis octógonos, considerado um dos treze Sólidos de Arquimedes. A classe possui um único atributo denominado edge, do tipo double, que representa a aresta do cuboctaedro truncado e cujo valor deve ser maior ou igual a zero e menor ou igual a quarenta. A aresta do cuboctaedro truncado pode ser obtida e alterada pelo usuário por meio dos métodos getEdge() e setEdge(), respectivamente. Caso a aresta do cuboctaedro truncado receba um valor inválido uma exceção deverá ser lançada. A classe também apresenta os métodos area() e volume(), que retornam a área e o volume do cuboctaedro truncado, respectivamente. A área de um cuboctaedro truncado de aresta a é obtida pela fórmula 12 * (2 + √2 + √3) * a2. O volume de um cuboctaedro truncado de aresta a é obtido pela fórmula (22 + 14 * √2) * a3.

Questão 06

Sejam as seguintes classes Java:

Arquivo CA.java

package com.ybadoo.tutoriais.poo;

public class CA
{
  public int val = 0;

  public void op1(int x)
  {
    val += x;
  }

  public void op2(int x, int y)
  {
    val -= x + y;
  }

  public int getVal( )
  {
    return val;
  }
}

Arquivo CB.java

package com.ybadoo.tutoriais.poo;

public class CB extends CA
{
  public void op1(int x)
  {
    val -= x;
  }

  public void op2(int x, int y)
  {
    try
    {
      val += x/y;
    }
    catch(Exception e)
    {
      val = 10;
    }
    finally
    {
      val++;
    }
  }
}

Arquivo Application.java

package com.ybadoo.tutoriais.poo;

public class Application
{
  public static void main(String[] args)
  {
    CA obj = new CB();
    obj.op1(10);
    obj.op2(5,8);
    System.out.printf("%d\n", obj.getVal());
  }
}

O que será exibido no console quando for executado o método main?

  1. -10
  2. -9
  3. -3
  4. 10
  5. 11

Uma empresa quer manter o registro da vida acadêmica de todos os seus funcionários, de modo que o modelo deve contemplar o registro das seguintes informações, de forma incremental:

  1. Para o funcionário que não estudou, apenas o nome e o código funcional;
  2. Para o funcionário que concluiu o ensino básico, a escola;
  3. Para o funcionário que concluiu o ensino médio, a escola;
  4. Para o funcionário que concluiu o ensino superior, a universidade.

Apresente a implementação, na linguagem de programação Java, da solução do problema apresentado, considerando os conceitos de encapsulamento, herança e polimorfismo do paradigmas de programação orientada a objetos.

Questão extra

Considere a classe em Java apresentada a seguir.

Arquivo Threads2.java

package com.ybadoo.tutoriais.poo;

public class Threads2 implements Runnable
{
  public void run()
  {
    System.out.println("run.");
    throw new RuntimeException("Problem");
  }
 
  public static void main(String[] args)
  {
    Thread t = new Thread(new Threads2());
    t.start();
    System.out.println("End of method.");
  }
}

Qual o resultado da execução do código apresentado:

  1. End of method.
  2. run.
  3. java.lang.RuntimeException: Problem
  4. run.
    java.lang.RuntimeException: Proble
  5. run.
    java.lang.RuntimeException: Problem
    End of method.