Matéria
O primeiro teste de Programação com Objectos incide sobre o paradigma de programação com objectos e na linguagem de programação Java.
A matéria deste teste inclui os seguintes tópicos:
- O paradigma de programação com Objectos, o que inclui polimorfismo, herança, encapsulação, ...
- Os princípios de programação dados nas aulas teóricas: aberto-fechado, programar para uma interface, ...
- A sintaxe e semântica da linguagem de programação Java.
- A matéria leccionada inclui os seguintes capítulos do livro da cadeira:
- Chapter 2: Classes and Objects: A Trip to Objectville
- Chapter 3: Primitives and References: Know Your Variables
- Chapter 4: Methods Use Instance Variables: How Objects Behave
- Chapter 5: Writing a Program: Extra-Strength Methods
- Chapter 6: Get to Know the Java API: Using the Java Library
- Chapter 7: Inheritance and Polymorphism: Better Living in Objectville
- Chapter 8: Interfaces and Abstract Classes: Serious Polymorphism
- Chapter 9: Constructors and Garbage Collection: Life and Death of an Object
- Chapter 10: Numbers and Statics: Numbers Matter
- Chapter 11: Exception Handling: Risky Behavior
- Chapter 14: Serialization and File I/O: Saving Objects
- Chapter 16: Collections and Generics: Data structures
- Chapter 17: Package, Jars and Deployment: Release Your Code
Os alunos devem saber especificar classes, com métodos e atributos. Devem saber utilizar as estruturas de dados já oferecidas pela linguagem e biblioteca do Java para guardar conjuntos de objectos. Um conjunto de objectos pode ser guardado num array, mas caso o número de elementos a guardar não seja conhecido no momento da criação, então esta estrutura de objectos não é muito vantajosa. Neste caso, o melhor é utilizar uma das várias classes da biblioteca do Java que permitem guardar coleções de objectos: ArrayList, LinkedList, HashMap, HashSet, ... . A classe a utilizar depende das características de acesso ao conjunto de objectos. Depois é necessário saber iterar sobe o conjunto de objectos. Pode-se utilizar um Iterator, ou então utilizar o ciclo foreach (que tem a vantagem que também funciona para vectores). É uma boa prática de programação nunca utilizar um ciclo for (começando na posição 0 e terminado na última posição da coleção) para iterar o conteúdo de uma coleção porque este forma de iteração normalmente não é eficiente, ao contrário do ciclo foreach ou da utilização de um Iterator.
Estrutura Tipo do Teste
A estrutura do 1º teste é a seguinte (teste tipo: TesteTipo-1.pdf):
- Um problema de modelação, a concretizar utilizando o diagrama UML de classes (sem programação) - 3 valores;
- Um problema de programação em Java. do mesmo tipo dos realizados nas aulas de laboratório - 1 valor;
- Duas perguntas de resposta aberta ("teóricas") sobre aspectos relativos à programação OO e/ou modelação - 3 valores;
- 5 perguntas de resposta múltipla sobre programação OO, Java e modelação (diagramas UML de classes) - 3 valores.