Ano: 2003/2004 - Semestre: 2 Cursos: LESI e LMCCPrograma Resumido Programação Orientada Aos Objectos em Java. Programa
1. MATÉRIA TEÓRICA DE PPO:
1.1.- Introdução à Programação por Objectos.
- Origem do paradigma. Via Simulação. Via Computação.
- Conceitos básicos fundamentais.
- Modelos: de processos versus de objectos.
- A procura da modularidade no software.
- Independência do contexto como condição fundamental.
- Encapsulamento versus independência e modularidade.
- Modularização pelos dados: a solução em PPO.
1.2.- Noção de "Objecto" em PPO.
- Noção de "objecto" em PPO. Estrutura e Comportamento.
- Encapsulamento e protecção nos objectos.
- Interacção entre objectos. Mensagens vs. Métodos.
- Introdução ao Polimorfismo.
- Tipos de objectos: instâncias e classes.
1.3.- Classes, Hierarquia de Classes e Herança.
- Definição de Classe em PPO.
- Relação Classe-Instâncias. Introdução.
- Mecanismo de instanciação.
- Classes e sua Hierarquia. Superclassificação.
- Relações entre Classes.A herança.
- Herança lógica versus herança de implementação.
- Herança como mecanismo de reutilização e de programação incremental.
- Herança simples e múltipla.
- Algoritmo de procura de métodos.
- Herança versus Agregação.
1.4.- Classes e Herança.
- Criação de Classes.
- Classes "run-time" versus Classes para "compile-time".
- Tipos estáticos e dinâmicos das variáveis.
- Polimorfismo, <93>static<94> e <93>dynamic binding<94>.
- Classes nã�[20;1Ho instanciáveis.
1.5.- Classes Abstractas.
- Definição de Classe Abstracta. Importância das Classes Abstractas.
- Classes Abstractas vistas como Tipos Abstractos de Dados.
- Classes Abstractas como mecanismo de abstra
- Classes Abstractas como mecanismo de reutilização e de extensibilidade.
- Polimorfismo. Estudo dos diferentes tipos.
1.6.- Concepção de aplicações em PPO.
- Subclassificação e herança versus agregação.
- Subclasses como especializações.
- Subclasses para implementação.
- Algumas regras de concepção em PPO.
1.9.- Actuais principais aplicações do paradigma dos objectos.
- Linguagens e Tecnologia de interacção.
- Tecnologia de Sistemas Operativos e "plataformas".
- Metodologias OO de Análise e Concepção de Software (UML, Rational
Rose, Together, etc.
2. PROGRAMAÇÃO POR OBJECTOS EM JAVA:
ESTUDO DA LINGUAGEM JAVA4 (JAVA 1.41)
2.1.- Programaç�[24;1Hão por Objectos em JAVA.
Características do ambiente de desenvolvimento JDK.
A JVM (<93>Java Virtual Machine<94>). Byte-code.
Estrutura dos programas.
Bibliotecas. Packages.
2.2.- Tipos básicos (não objectos) eres.
Numéricos. Booleanos. Declarações.
Arrays Java e suas inconveniências vs. a classe Vector. A classe ARRAY como
classe <93>servidora<94> de operações sobre <93>arrays<94>.
2.3.- Estruturas de controlo.
Condicionais simples e compostas.
Estruturas Iterativas.
2.4.- Definição de Classes e Instâncias em JAVA.
Construtores. Métodos e variáveis de instância e de classe.
Tipos de qualificadores de visibilidade e acesso das variáveis e constantes.
2.5.- Hierarquia de Classes em JAVA.
Classe Object. Classes versus Packages.
Herança simples.
Redefinição e sobreposição de métodos e variáveis.
Classes e subclasses. Exemplos clássicos.
Compatibilidades entre instâncias de classes e subclasses.
O mecanismo de <93>dynamic type checking<94>.
2.6.- Classes Abstractas em JAVA.
Declaração.
Polimorfismo e sua utilização. Regras da linguagem.
<93>Static-checking<94> vs. <93>Run-time checking<94> em JAVA.
Exemplos com classes abstractas.
<93>Casting<94>.
2.7.- O mecanismo de Excepções da linguagem JAVA.
Cláusulas try, catch, finally, throws e throw.
Regras de utilização.
2.8.- Interfaces JAVA como especificaçõesde Tipos de Dados.
Classes como subclasses e classes como subtipos. Análise aprofundada.
Herança múltipla de Interfaces em JAVA.
Regras para a implementação de Interfaces em Classes.
2.9.- Estudo das Streams de JAVA.
Streams de caracteres versus streams de bytes.
Streams de input e streams de output. As classes abstractas Writer e Reader.
Subclasses de Writer e Reader. Mecanismo de <93>aninhamento<94> de streams.
As ObjectStreams como mecanismo de persistênciade dados. Serializable.
Exemplos de eficiência no uso de streams na gravação e leitura de 300.000
Fichas com a informação típica de um Aluno.
Comparação da eficiência das diversas soluções.
2.10.- Os Packages JAVA como mecanismos de Meta-Modularidade.
Estudo dos packages principais de JAVA.
Revisão das classes e interfaces fundamentais de JAVA, tais como Object, Number, Math, Array, Class, StringBuffer, Collections (cf. Vector, Stack, ArrayList, Hashtable, HashMap,LinkedList), Number, StringTokenizer, Stream, Exception e outras, e das interfaces List, Map, Iterator, Enumeration, Cloneable e Serializable.
Importância das <93>inner classes<94> e de outras construções de JAVA como suporte efectivo a implementações genéricas de estruturas de dados.
|