Introduzir os conceitos de programação orientada a objetos e as metodologias de desenvolvimento de software segundo esse paradigma.
Projeto orientado a objetos. Encapsulamento e ocultação de informação (information hiding). Separação de comportamento e implementação. Classes e subclasses. Herança. Polimorfismo. Hierarquias de classes. Classes de coleções e métodos de iteração
Projeto orientado a objetos. Encapsulamento e ocultação de informação iinformation hiding). Separação de comportamento e implementação. Classes e subclasses. Herança. Overriding. Dynamic dispatch. Polimorfismo. Relação entre Polimorfismo (de subtipo) e Herança.Hierarquias de classes. Classes de coleções e métodos de interação. Conjuntos. Listas. Mapas.Objetivos de aprendizado: 1. Justificar a filosofia do projeto orientado a objetos e os conceitos de encapsulamento, abstração, herança e polimorfismo.2. Projetar, implementar. testar e depurarprogramas simples em uma linguagem de programação orientada a objetos.3. Descrever como o mecanismo de classes suporta encapsulamento e ocultação de informação (information hiding).4.Projetar, implementar e testar a implernentação de relações "é-um" (is-a) entre objetos usando uma hierarquia de classes e herança.5. Comparar e contrastar as noções de overloading e overriding métodos numa linguagem orientada aobjetos.6. Descrever como iteradores (iterators) acessam os elementos de coleções.
· Livro Texto:- ECKEL, B. Thinking in Java, Prentice Hall, http://www.bruceEckel.com – vol. 1 e 2.- JAVA – Como Programar. 6a. Edição. Deitel, Prentice-hall.- METSKER, S. J.; Padrões de Projeto em Java. Bookman, 2004.