Universidade do MinhoEscola de Engenharia Departamento de Inform´tica
  Equipa Ensino Pós-Graduações Projectos Publicações   pt | en
   Programação Orientada aos Objectos (LCC)
 
  [Geral] Programa [Avaliação] [Material de Apoio]  
 
 
 

Ano: 2005/2006 - Semestre: 2

Cursos: LMCC

Programa Resumido

Programação Orientada Aos Objectos. Programação por 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. - Classese 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ão 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 abstracção. - 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çã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) e operadores. 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ções de 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 Interfacesem 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ência de 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 dasdiversas 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.