Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
CONTEDO:
1. Controle de Acesso a Membros 2. Herana 3. Sobreposio 4. Classes Abstratas
5. Interfaces
INTRODUO
Como em todas as linguagens de programao, a acessibilidade a uma classe, mtodo e atributo deve seguir algumas regras;
Lista dos principais modificadores:
public Abstract private static protected final
4
padro
Exemplo
//Erro
10
Exemplo
11
Exemplo
12
Exemplo
//Erro
13
Exemplo
14
Exemplo
15
Exemplo
16
Exemplo
//Erro
17
Exemplo
18
Exemplo
19
Exemplo
20
Herana
21
mais especializada
GENERALIZAO / ESPECIALIZAO
Pessoa
especializao
generalizao
Professor
Aluno
23
2.
3.
4.
5.
6.
Campos da superclasse que no sejam privados podem ser utilizados diretamente. Campos privados da superclasse no podem ser herdados pelas subclasses. Construtores da superclasse podem ser utilizados atravs da palavra super. Somente os Construtores da superclasse imediata podem ser utilizados diretamente. Mtodos da superclasse que no sejam privados podem ser utilizados diretamente. Mtodos sobrepostos da superclasse que no sejam privados podem ser utilizados atravs da palavra super.
24
EXEMPLO DE HERANA
Pessoa nome,identidade,nascimento Pessoa(n,i,nasc); qualIdentidade(); toString();
Superclasse ou classe-pai
25
EXEMPLO DE HERANA
class Pessoa { private String nome; private int identidade; private int nascimento; Pessoa(String n,int i,DataCons d) { nome = n; identidade = i; nascimento = d; } public String toString() { return "Nome: "+nome+"\nIdentidade: "+identidade+" "+ "\nData de Nascimento: "+nascimento; } final public float qualIdentidade() { return identidade; } } // fim da classe Pessoa
26
EXEMPLO DE HERANA
class Funcionario extends Pessoa { private int admisso; private float salrio; especifica a herana. Construtores da superclasse podem ser utilizados atravs da palavra super
Funcionario(String nome, int id,int nasc, int adm, float sal) super(nome,id,nasc); admisso = adm; salrio = sal; } public String toString() { return super.toString()+"\n"+ "Data de admisso: "+admisso+ "\n" + "Salrio: "+salrio; } final public float qualSalrio() { return salrio; }
O construtor desta classe delega ao construtor da superclasse a tarefa de inicializar os dados herdados. toString desta classe delega a toString da superclasse a impresso de seus dados. Sintaxe diferente para invocar construtor ou mtodo da superclasse.
27
Sobreposio
28
FUNDAMENTOS Ocorre quando um mtodo de uma classe base reescrito na classe derivada; O mtodo reescrito tem a mesma assinatura que o mtodo da classe base; Mas muda quanto a implementao;
29
EXEMPLO
30
RESTRIES SOBREPOSIO
Alguns mtodos no podem ser sobrepostos em funo das modificaes que recebem: final
Static private
31
Classes Abstratas
32
FUNDAMENTOS Ao subir na hierarquia de heranas, as classes se tornam mais genricas e, provavelmente mais abstratas; Em algum ponto, a classe ancestral se torna to geral que acaba sendo vista mais como um modelo para outras classes do que uma classe com instncias especficas que so usadas;
33
FUNDAMENTOS Classes abstratas correpondem a especificaes genricas, que devero ser concretizadas em classes derivadas (subclasses) Esta classe pode conter mtodos abstratos que so aqueles mtodos apenas declarados, mas que no foram implementados
34
FUNDAMENTOS O mtodo abstrato contm apenas sua assinatura (nome, nmero e tipo dos seus parmetros). Sintaxe:
35
EXEMPLO
UML JAVA
36
Interfaces
37
FUNDAMENTOS
Uma interface uma especificao explcita de um conjunto de mtodos, que so implementados por uma classe
Uma determinada classe pode implementar um nmero ilimitado de interfaces (herana mltipla)
38
FUNDAMENTOS
39
EXEMPLO
40
EXEMPLO
41
EXEMPLO
42
CLASSES ABSTRATAS x INTERFACES Declarao de mtodos Em uma classe abstrata podem ser definidos mtodos abstratos e noabstratos. Todos os mtodos de uma interface so implicitamente abstratos
Declarao de variveis Em uma classe abstrata podem ser definidas variveis de instncia, de
classe e constantes
DVIDAS ???
DUVIDAS ???
44
45
REFERNCIAS
Programao orientada a objetos : Curso tcnico de informtica / Victorio Albani de Carvalho, Giovany Frossard Teixeira. Colatina: IFES, 2012. 134 p. : il.
FAGUNDES, Marco. Herana, Classes Abstratas e Interfaces. Par: PsGraduao da Faculdade de Computao da UFPA, [2007]. 28 slides, color. Acompanha texto. SANTOS, Rafael. Introduo programao orientada a objetos usando Java. So Paulo: Editora Campus, 2003.
46
47