Nome: Número: Primeira Parte (7 valores) Segunda Parte (3 valores)

Documentos relacionados
Nome: Número: Primeira Parte (3 valores) Segunda Parte (7 valores) PERGUNTA 1.1 PERGUNTA RESPOSTA NOTA

Segunda Parte (3 valores) Primeira Parte (7 valores) Nome: Número: PERGUNTA NOTA PERGUNTA RESPOSTA

Programação com Objectos 1º Teste 2013/2014 1º Semestre 15 de Novembro de 2013, 18:00 (90 minutos)

Programação com Objectos 1º Teste Tipo 1º Semestre (90 minutos)

LEIC-A / MEIC-A 2007/2008 (1º

Programação com Objectos 2º Teste Tipo 1º Semestre (120 minutos)

Segunda Parte (3 valores) Primeira Parte (7 valores) Nome: Número: PERGUNTA NOTA PERGUNTA RESPOSTA

Programação com Objectos. 2º Teste 2015/2016 1º Semestre

Programação com Objectos Teste Teórico 18 de Dezembro de 2008, 19:00 (120 minutos)

Programação com Objectos Teste Teórico (repescagem) 24 de Janeiro de 2009, 09:00 (120 minutos)

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }

Collections Framework

LEIC-A / MEIC-A 2007/2008 (1º

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Linguagem de Programação III

Orientação a Objetos AULA 09

Programação por Objectos. Java

Versão: Escreva já o seu número em todas as folhas da prova.

Prova 2 PMR3201 1o. semestre 2015 Prof. Thiago Martins

Nome: Número: Segunda Parte (3 valores) Primeira Parte (7 valores)

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

Algoritmos e Estruturas de Dados 1

Programação Orientada a Objetos Relacionamentos entre classes

Paradigmas de Programação

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação OO em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM

Interfaces POO. Prof. Marcio Delamaro

Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção.

LEIC-T LERC MEIC-T 2011/2012 1º Semestre Programação com Objetos 2012/01/07 11h00m 3/10

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação

FILAS. As coisas de que uma fila é feita serão chamadas itens. Os itens podem ser números, strings, structs, etc., etc.

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM

Ficha Prática 10. António Nestor Ribeiro, Paulo Azevedo, Mário Martins PPIV (LESI) 2005/06

Prof. Rogério Albuquerque de Almeida. Programação Orientada a Objetos II JAVA Décima Segunda Aula

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas

Programação com genéricos

Herança e Polimorfismo

Prova 2 PMR2300 1o. semestre 2015 Prof. Thiago Martins

Java Basico Parte II. Para obter um comportamento polimorco fazer: cada classe que os herda. Polimorsmo em Java. I Excepc~oes.

Exceções AULA 13. Ricardo Massa F. Lima Sérgio C. B. Soares

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs

Tratamento de Exceção. Programação Orientada a Objetos Java (Rone Ilídio)

TRATAMENTO DE EXCEÇÕES

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática

Tratamento de Exceções. LPG II Java. Tratamento de Exceções. Conceito de Exceções. Exemplo

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Linguagem Algorítmica OO. Linguagem Algorítmica

p Imagine que um Sistema de Controle do Banco pode ser acessado, além dos Gerentes, pelos Diretores do Banco

Tratando exceções em Java

Programação. Orientada a Objetos: Herança. Objetos. Relacionamento entre classes. Análise e Projeto Orientados a. Objetos

Ex: carro_desportivo poderá ser uma subclasse de automóvel (carro_desportivo é_um automóvel)

Palavras Reservadas da Linguagem Java

Aula 9 Herança. Prof. Jefersson Alex dos Santos

Classe Abstrata e Interface

// quando o estado do Sujeito muda

1. Estude e implemente a classe Exemplo1 apresentada abaixo:

Modelo do Mundo Real. Abstração. Interpretação

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Herança. Prof. Fernando V. Paulovich 23 de agosto de 2010

[Desenvolvimento OO com Java] Classes abstratas e interfaces

Tipos, Literais, Operadores

Tipos, Literais, Operadores

Programação Orientada a Objetos SANTOS, Rafael (PLT)

Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador)

Herança. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

extendsé usado para indicar herança em JAVA

1. Por que não utilizar a notação de composição da UML para mostrar que um cachorro é composto de altura, peso, cor e data de nascimento?

Programação orientada a objetos em Java

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Universidade Federal de Uberlândia Faculdade de Computação Prof. Fabiano Azevedo Dorça Programação Orientada a Objetos II. Padrões de Projeto

Engenharia de Software

Notas de Aula 09: Tratamento de exceções

Aula 13 POO 1 Tratamento de Exceções no Java. Profa. Elaine Faria UFU

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Atividade 08 - Utilizando Collections - List

Programação Java (nível intermediário) 4. Polimorfismo

// quando o estado do Sujeito muda

Tratamento de Exceções. Java Avançado. Tratamento de Exceções. Conceito de Exceções. Exemplo

9 Classes Abstractas e Interfaces

Engenharia de Software

Prova 2 PMR3201 1o. semestre 2016 Prof. Thiago Martins

Professor Leonardo Cabral da Rocha Soares Lattes:

Classes e Objetos POO

Tratamento de Exceções em Java

Paradigmas da Programação PPROG. Linguagem JAVA. Contentores de Objetos

Programação Orientada a Objetos com Java. Prof. Júlio Machado

No final deste curso, saberás criar programas através da linguagem de programação Java.

Filas. Prof. Jesus José de Oliveira Neto

Tratamento de Exceção. Tratamento de Exceções. Vantagens de TE. Exemplos de Exceções. Exemplo: Divide1 (sem TE)

Tratamento de Exceções. Grupo de Linguagens de Programação Departamento de Informática PUC-Rio

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Tratamento de Exceções, Multithreads e arquivos (em Java) Programação Orientada a Objetos

PROGRAMAÇÃO ORIENTADA A

Transcrição:

Nome: Número: Programação com Objectos 10 de Novembro de 2015, 08:00 (90 minutos) Primeira Parte (7 valores) Segunda Parte (3 valores) PERGUNTA NOTA PERGUNTA RESPOSTA 1.1 2.1 1.2 2.2 1.3 1.4 2.3 2.4 2.5 1ª PARTE 2ª PARTE certas 0.6 / erradas -0.15 / ausentes 0 Para alterar uma resposta: riscar a resposta antiga e escrever à frente a nova resposta. Considera-se ausência de resposta a apresentação de várias repostas a uma pergunta, mesmo que uma delas esteja certa. Consideram-se não respondidas as perguntas cujas respostas não estejam assinaladas nesta tabela.

2/7 1.1. (3.0 val.) Considere o seguinte domínio: Um jardim zoológico é constituído por vários edifícios e tem funcionários e animais. Um jardim zoológico tem um nome e uma morada. Os animais do jardim zoológico podem estar de boa saúde ou doentes. Cada animal tem um dado peso e ano de nascimento. Os animais comem, dormem e podem ser curados. Existem dois tipos de animais: os herbívoros e os carnívoros. Estes dois tipos de animais distinguem-se pela forma como comem. A forma de comer é específica para cada tipo de animal. Relativamente aos funcionários, os funcionários trabalham. Existem três tipos de funcionários: tratador, veterinário e contabilista. Um tratador tem um nome e está associados a uma ou mais jaulas. O trabalho de um tratador corresponde a alimentar os animais que estão nas jaulas que lhe estão associadas. Por seu lado, um veterinário tem também um nome e está associado a um conjunto de animais. O trabalho de cada veterinário consiste em tratar os animais que lhe estão atribuídos. Finalmente, um contabilista também tem um nome e está atribuído a um dado edifício. O trabalho deste tipo de funcionário corresponde a realizar a contabilidade do jardim zoológico. Cada edifício pode ter zero ou mais jaulas. Cada jaula tem uma dada capacidade e pode ter animais ou estar vazia. A capacidade de uma jaula é medida em função do peso dos animais. Só é possível adicionar um animal a uma jaula desde que o somatório dos pesos dos animais pertencentes à jaula seja menor ou igual à capacidade da jaula. O jardim zoológico mantém a lista actualizada de todas as pessoas que já visitaram o jardim zoológico. Cada visitante tem um ano de nascimento, nome e morada. É ainda mantido o número de vezes que cada visitante já visitou o jardim zoológico. O jardim zoológico deverá ter a funcionalidade de enviar um entrada grátis para os 10 melhores visitantes. Desenhe o diagrama de classes UML correspondente ao domínio apresentado. Represente as classes (seus nomes, métodos e atributos). Indique também as relações de herança e associação.

Programação com Objectos 201511100800 3/7

4/7 (espaço adicional) 1.2. (1.0 val.) Concretize em Java o seguinte domínio. Uma fila (Queue) é uma estrutura de dados do tipo FIFO que é caracterizada por duas operações fundamentais: enqueue e dequeue. A operação enqueue adiciona um novo item ao fim da fila enquanto que a operação dequeue retira o elemento que está no início da fila e devolve esse elemento. Retirar um elemento de uma fila vazia deve lançar uma situação de erro específica. Uma fila pode ter diferentes concretizações, dependendo da forma como os elementos são guardados. Considere apenas o caso em que a estrutura usada para guardar os elementos é a classe da biblioteca do Java LinkedList (que além dos métodos de List tem o método adicional removefirst() que remove o primeiro elemento da lista e devolve esse elemento). Concretize todas as entidades referidas neste domínio (com a excepção de LinkedList, em que pode utilizar a classe já disponível na biblioteca do java). Pretende-se ainda que esta concretização de fila tenha um método adicional, count(object obj), que devolve o número de vezes que o objecto referenciado por obj está guardado na fila.

Programação com Objectos 201511100800 5/7 (espaço adicional)

6/7 1.3. (1.5 val.) Relacione o princípio de desenho aberto-fechado (open/close) com o conceito de polimorfismo. 1.4. (1.5 val.) A seguinte classe Test compila sem erros. No entanto, a execução do método max desta classe pode gerar um erro em tempo de execução. public class Test { (a) Explique porque é necessário fazer public static Object max(object o1, Object o2) { um cast de o1 para Comparable para que if (((Comparable)o1).compareTo(o2) >= 0) este código compile sem erros. return o1; return o2; } } (b) Em que situações é que a execução deste método gera um erro em tempo de execução

Programação com Objectos 201511100800 7/7 2.1. No contexto da linguagem de programação Java, indique qual das seguintes frases é verdadeira: (a) Uma classe apenas pode concretizar uma interface (b) As interfaces só podem estender uma interface (c) Após ter sido criado, é possível alterar o tamanho de um array (d) Não é possível definir um construtor numa classe abstracta (e) são todas falsas 2.2. O conceito de herança em Java é expresso pela seguinte palavra chave: (a) implements (b) inherits (c) extends (d) class (e) nenhuma das anteriores 2.3. Em Java, para impedir que um método possa ser sobrecarregado (overloaded) deve-se utilizar a seguinte palavra chave na definição do método: (a) private (b) unique (c) final (d) static (e) Não é possível impedir um método de ser sobrecarregado 2.4. Em Java, qual das seguintes palavras chave é que não é utilizada no mecanismo de tratamento de excepções: (a) try (b) catch (c) exception (d) throw (e) são todas utilizadas 2.5 Considere o seguinte excerto de código, em que Sub é uma subclasse de Sandwich /* 1: */ Sandwich x = new Sandwich (); /* 2: */ Sub y = new Sub(); /* 3: */ x=y; /* 4: */ y=x; /* 5: */ y = new Sandwich(); /* 6: */ x = new Sub(); Indique as linhas das atribuições inválidas em Java. NÃO ESQUECER DE PREENCHER GRELHA DE RESPOSTAS DA PARTE 2 NA FOLHA DE ROSTO