Introduzir os conceitos de programação orientada a objetos e metodologia 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.
Projeto orientado a objetos. Encapsulamento e ocultação de informação. 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. 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 depurar programas 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. 4. Projetar, implementar e testar a implementaçã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 métodos de overloading e overriding em uma linguagem orientada a objetos.
Livro Texto: - DEITEL, H. M.; DEITEL, P.J.: Java - Como Programar, Prentice-Hall, 8ª Edição, 2010, ISBN 9788576055631. - DEITEL, H. M.; DEITEL, P.J.: C++ - Como Programar, Prentice-Hall, 5ª Edição, 2006, ISBN 9788576050568. Bibliografia Complementar: - FILHO, A. M. S. - Introdução à Programação Orientada a Objetos com C++, Editora Campus, 2010, ISBN 9788535237023. - ECKEL, B.: Thinking in Java, Prentice Hall, 4ª Edição, 2006, ISBN 9780131872486 - ECKEL, B.: Thinking in C++, vol 1, Prentice Hall, 2ª Edição, 2000, ISBN 9780139798092. - BORATTI, I. C. - Programação Orientada a Objetos em Java, Visual Books, 2007, ISBN 9788575021996. - THOMAS, D.; HANSSON, D.; BREEDT, L.; CLARK, M. Agile Web Development with Rails. 2nd Edition. (Paperback, Dec 14, 2006).