5COP088 – Laboratório de Programação Aula 2 – Java 5COP088 Laboratório de Programação Aula 2 Java Prof. Dr. Sylvio Barbon Junior Sylvio Barbon Jr – [email protected] 1 5COP088 – Laboratório de Programação Aula 2 – Java Aula 2 – Orientação a Objetos 1) Discussão 2) Encapsulamento 3) Herança 4) Polimorfismo 5) Sobrescrita e Sobrecarga 6) Conversão de Variáveis de Referência 7) Implementação de Interface 8) Tipos de Retorno 9) Construtores e Instanciamento 10) Estáticos 11) Acoplamento e Coesão 5COP088 – Laboratório de Programação Aula 2 – Java Aula 2 – Discussão Garbage Collector “Coletor de Lixo” 5COP088 – Laboratório de Programação Aula 2 – Java Aula 2 – Encapsulamento 1) O encapsulamento ajuda a ocultar a implementação por trás de uma interface ou API 2) O código encapsulado fornece dois recursos: - Proteção das variáveis de instância (private) - Os métodos get e set fornecem acesso ás variáveis de instância; 3) “herda de” e “subtipo de” são equivalentes (extends); 4) “Tem um”, significa que a instância de uma classe “tem uma” referência de outra ou da mesma classe; 5COP088 – Laboratório de Programação Aula 2 – Java Aula 2 – Encapsulamento 5COP088 – Laboratório de Programação Aula 2 – Java Aula 2 – Encapsulamento 5COP088 – Laboratório de Programação Aula 2 – Java Aula 2 – Encapsulamento 5COP088 – Laboratório de Programação Aula 2 – Java Aula 2 – Encapsulamento 5COP088 – Laboratório de Programação Aula 2 – Java Aula 2 – Herança 1) A herança é um mecanismo que permite que uma classe seja um subclasse de outra, herdando variáveis e métodos da superclasse; 2) A herança é necessária para o polimorfismo, sobrescrição, sobrecarga e conversão. 3) Todas as Classes (exceto Object) são subclasses do tipo Object. 5COP088 – Laboratório de Programação Aula 2 – Java Aula 2 – Herança 5COP088 – Laboratório de Programação Aula 2 – Java Aula 2 – Herança 5COP088 – Laboratório de Programação Aula 2 – Java Aula 2 – Herança 5COP088 – Laboratório de Programação Aula 2 – Java Aula 2 – Herança 5COP088 – Laboratório de Programação Aula 2 – Java Aula 2 – Polimorfismo 1) Polimorfismo significa muitas formas; 2) Uma variável de referência é sempre de um só tipo, mas ela pode referir-se a um objeto do subtipo; 3) Um objeto pode ser pode ser referido por tipos diferentes, desde que sejam de mesmo tipo ou subtipo do objeto; 4) O tipo de variável de referência (NÃO DO OBJETO) determina quais métodos poderão ser chamados. 5) As chamadas polimórficas a métodos se aplicam apenas a métodos de instâncias sobrescritos. 5COP088 – Laboratório de Programação Aula 2 – Java Aula 2 – Polimorfismo 5COP088 – Laboratório de Programação Aula 2 – Java Aula 2 – Polimorfismo 5COP088 – Laboratório de Programação Aula 2 – Java Aula 2 – Polimorfismo Saída: Tiro de meta!!! >>Fernando Prass Defesa!!! 5COP088 – Laboratório de Programação Aula 2 – Java Aula 2 – Sobrescrição e Sobrecarga (Overide e Overload) 1) Os métodos podem ser sobrescritos ou sobrecarregados, os construtores podem ser sobrecarregados e não sobrescritos; 2) O métodos abstract devem ser soberscritos pela primeira superclasse não concreta (não abstract); 3) Considerando o método sobrescrito: - Deve ter a mesma lista de argumentos; - Deve ter o mesmo tipo de retorno (considerar subclasse); - Não deve ter um modificador de acesso mais restritivo; - Pode ter um modificar de acesso menos restritivo; 4) Métodos final não podem ser sobrescritos; 5COP088 – Laboratório de Programação Aula 2 – Java Aula 2 – Sobrescrição e Sobrecarga (Overide e Overload) 5) Só os métodos herdados podem ser sobrescritos; 6) Sobrecarga significa dizer que é o mesmo nome de método porém com argumentos diferentes; 7) Os métodos sobrecarregados: - Devem ter listas de argumentos diferentes; - Podem ter tipos de argumentos diferentes; - Podem ter modificadores de acesso diferentes; 8) Os métodos de uma superclasse podem ser sobrecarregados; 9) O Polimorfismo é aplicado a sobrescrita e não à sobrecarga. 5COP088 – Laboratório de Programação Aula 2 – Java Aula 2 – Sobrescrição e Sobrecarga (Overide e Overload) 10) O tipo de objeto (e não a variável de referência) determina qual método sobrescrito será usado no tempo de execução; 11) O tipo de referência determina qual o método sobrecarregado será usado no tempo de compilação. 5COP088 – Laboratório de Programação Aula 2 – Java Aula 2 – Sobrescrição e Sobrecarga (Overide e Overload) 5COP088 – Laboratório de Programação Aula 2 – Java Aula 2 – Sobrescrição e Sobrecarga (Overide e Overload) 5COP088 – Laboratório de Programação Aula 2 – Java Aula 2 – Sobrescrição e Sobrecarga (Overide e Overload) 5COP088 – Laboratório de Programação Aula 2 – Java Referências Java Como Programar - Deitel,P.; Deitel, H.. Learn Java Now - Davis, Stephen Randy. Big Java / Cay Horstmann ; tradução: Edson Furmankiewicz. -