Baixe o app para aproveitar ainda mais
Prévia do material em texto
GABARITO DISCIPLINA EEP101 - Programação Orientada a Objetos APLICAÇÃO 16/06/2021 CÓDIGO DA PROVA P010/P011 QUESTÕES OBJETIVAS Questão 1.1 Um dos princípios da programação orientada a objetos é o encapsulamento, diretamente relacionado ao acesso e modificação de dados da classe. Assim, é correto afirmar que através do encapsulamento, é possível: a. abstrair conceitos e dados da classe. b. hierarquizar classes e dados. c. abstrair funções. d. não permitir que dados sejam modificados fora da classe que o possui. e. definir atributos e especificar classes. RESOLUÇÃO A resposta correta é: não permitir que dados sejam modificados fora da classe que o possui. Justificativa Uma forma de proteção dos dados ao acesso e modificação. Questão 1.2 Na linguagem Java, uma forma de implementar o polimorfismo é fazendo o uso de interface. A esse respeito, marque a alternativa incorreta. a. Uma interface é um contrato, as classes devem implementar alguns dos métodos. b. A classe que faz uso de uma interface deverá usar no seu cabeçalho a palavra implements seguido do nome da interface. c. Uma interface é um contrato, as classes devem implementar todos os métodos. d. Não é possível criar objetos a partir de uma interface. e. É possível criar hierarquia de interfaces. RESOLUÇÃO A resposta errada é: Uma interface é um contrato, as classes devem implementar alguns dos métodos. Justificativa O contrato deve ser cumprido, por isso todos os métodos da interface devem ser implementados sem exceção. Questão 1.3 Observe o código Java a seguir, que implementa a classe Data. Nesta classe há atributos private e o acesso é restrito aos métodos da classe, chamados “getters” e “setters”. Esta propriedade implementada nesta classe, consiste em: public class Data { private int dia; private int mes; private int ano; public Data(int dia, int mes, int ano) { this.dia = dia; this.mes = mes; this.ano = ano; } public int getDia() { return dia; } public void setDia(int dia) { this.dia = dia; } public int getMes() { return mes; } public void setMes(int mes) { this.mes = mes; } public int getAno() { return ano; } public void setAno(int ano) { this.ano = ano; } @Override public String toString() { return "Data [dia=" + dia + ", mes=" + mes + ", ano=" + ano + "]"; } } a. herança b. encapsulamento c. polimorfismo d. associação de classes e. interface. RESOLUÇÃO A resposta correta é: encapsulamento. Justificativa Encapsulamento é uma propriedade da orientação a objetos de forma que acesso e modificação de atributos da classe, sejam realizadas somente por métodos da classe ou ainda por métodos de classes de mesmo pacote, de tal forma a garantir segurança dos dados manipulados pelos objetos das classes. Questão 1.4 Observe o código Java a seguir, em que a classe ImprimirP herda características e funcionalidades da classe Thread. Marque a alternativa incorreta: public class ImprimirP extends Thread{ int idTarefa; int tempo; public ImprimirP(int id, int t) { this.idTarefa = id; this.tempo = t; } public void run() { try { System.out.println("Tarefa #"+this.idTarefa+" vai dormir "+this.tempo+" milisegundos"); Thread.sleep(this.tempo); }catch(InterruptedException e) { e.printStackTrace(); } System.out.println("Tarefa #"+this.idTarefa+" acordou!!"); } } public class TesteThreadImprimirP { public static void main(String[] args) { // TODO Auto-generated method stub ImprimirP t1 = new ImprimirP(1, 5000); t1.start(); ImprimirP t2 = new ImprimirP(2, 500); t2.start(); ImprimirP t3 = new ImprimirP(3, 3000); t3.start(); } } a. Há três threads rodando. b. A classe ImprimirP implementa o método run() que ativa a execução de uma tarefa que será executada em paralelo. c. Há três tarefas sendo executadas em paralelo. d. A tarefa é escrever String sobre status, identificador e o tempo da tarefa. e. O início da tarefa se dá pela execução do método super. RESOLUÇÃO A resposta correta é: O início da tarefa se dá pela execução do método super. Justificativa O início da tarefa se dá pela execução do método start da superclasse Thread. QUESTÕES DISSERTATIVAS Questão 2 Escreva o código em Java das classes a seguir, com atributos privados e métodos acessadores e modificadores. Implemente o conceito de polimorfismo nos construtores da classe Bebida e o conceito de herança entre classes, ou seja, BebidaAlcoolica é uma especialização de Bebida. RESOLUÇÃO import java.util.Date; public class Bebida { private String nome; private String codigo; private Double preco; public Bebida() { } public Bebida(String nome, String codigo, Double preco) { this.nome=nome; this.codigo=codigo; this.preco=preco; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getCodigo() { return codigo; } import java.util.*; public class BebidaAlcoolica extends Bebida{ private Double teor; public BebidaAlcoolica(Double teor, Double preco, String codigo, String nome) { super.setPreco(preco); super.setCodigo(codigo); super.setNome(nome); this.teor=teor; } public Double getTeor() { return teor; } public void setTeor(Double teor) { this.teor = teor; } } Bebida Nome: String Código: String Preço: Double Getters e Setters BebidaAlcoolica Teor: Double Getters e Setters public void setCodigo(String codigo) { this.codigo = codigo; } public Double getPreco() { return preco; } public void setPreco(Double preco) { preco = preco; } } Rubricas | critérios de correção Cada classe: 0.2*2 = 0.4 ponto Todos os atributos private: 0.2 ponto Polimorfismo no construtor, mínimo 2 construtores com parâmetros diferentes: 0.2 ponto Herança: 0.2 ponto Cada método implementado: 0.1 *10 = 1 ponto Questão 3 Exemplifique o uso da classe de objetos List, do pacote java.util, adicionando 3 objetos nesta estrutura de dados e mostrando seu conteúdo. RESOLUÇÃO import java.util.*; public class TestaList { public static void main(String[] args) { // TODO Auto-generated method stub List<String> lista1 = new ArrayList<>(); lista1.add("Maria"); lista1.add(1, "Joao"); lista1.add("Ana"); lista1.add("Ana"); lista1.add(1,"teste"); System.out.println("ArrayList de Nomes: " + lista1); } } Rubricas | critérios de correção Considerar cada item pedido (a)classe de objetos List, (b)pacote java.util, (c) 3 objetos na estrutura de dados e (d)mostrar o conteúdo, 0.5 pontos.
Compartilhar