POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade)...
Transcript of POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade)...
POO – Fundamentos Parte III
Professor Vicente Paulo de Camargo
HERANÇA SIMPLES
Mecanismo que permite
a uma classe,
denominada de
SUBCLASSE ou CLASSE
FILHA, herdar todos os
atributos e métodos de
outra classe, denominada
de SUPERCLASSE ou
CLASSE MÃE
PROGRAMAÇÃO ORIENTADA A OBJETOS
HERANÇA SIMPLES – cont.
A subclasse pode ter
outros atributos e
outros métodos,
tornando-a uma
ESPECIALIZAÇÃO.
A superclasse é uma
GENERALIZAÇÃO
PROGRAMAÇÃO ORIENTADA A OBJETOS
HERANÇA SIMPLES – cont.
ESQUEMA
PROGRAMAÇÃO ORIENTADA A OBJETOS
HERANÇA SIMPLES – cont.
EXEMPLO
PROGRAMAÇÃO ORIENTADA A OBJETOS
HERANÇA SIMPLES – cont.
EXEMPLO
Essa estrutura de classes é denominada de
HIERARQUIA DE CLASSES
PROGRAMAÇÃO ORIENTADA A OBJETOS
HERANÇA SIMPLES – CODIFICAÇÃO JAVA
Representa
a herança no
código
PROGRAMAÇÃO ORIENTADA A OBJETOS
HERANÇA SIMPLES – CODIFICAÇÃO JAVA
Note que Gerente
tem gratificação
Logo, salário de Gerente
é diferente: É composto
por salário + gratificação
Note o import java.util.Date
PROGRAMAÇÃO ORIENTADA A OBJETOS
HERANÇA SIMPLES – CODIFICAÇÃO JAVA
Crie (SOBRESCREVA)
um outro método
getSalario em Gerente
ERRO
Nota: salario é
private
Solução
?
Também
não é a
solução.
PORQUE?
getSalario chama a si
mesmo infinitas vezes
PROGRAMAÇÃO ORIENTADA A OBJETOS
HERANÇA SIMPLES – CODIFICAÇÃO JAVA
O QUE FAZER
ENTÃO? SOLUÇÃO
O IDEAL Observe o
valueOf
Usar super().
Se for usado,
super deve
ser a primeira
instrução do
construtor
PROGRAMAÇÃO ORIENTADA A OBJETOS
HERANÇA – NÃO ESQUEÇA!!
Toda subclasse tem um relacionamento
É UM com sua superclasse
Exemplos:
Um Caminhão É UM tipo de Transporte
Um Funcionario É UM tipo de Pessoa
PROGRAMAÇÃO ORIENTADA A OBJETOS
UML - INTRODUÇÃO
•UML = Unified Modeling Language = linguagem de
modelagem de sistemas
•Permite especificar, visualizar e documentar modelos
de software orientados a objetos através de
diagramas e notações específicas
•A UML é controlada pelo OMG (Object
Management Group)
•Para Maiores detalhes acesse :
http://docs.kde.org/stable/pt_BR/kdesdk/umbrello/uml-
basics.html
POO – UML e Outros Conceitos
Diagrama de classe
O DIAGRAMA DE CLASSE apresenta as classes de
um sistema com seus atributos, métodos e
respectivos relacionamentos
REPRESENTAÇÃO
DE
CLASSE NA UML
ESTERIÓTIPO
NOME DA
CLASSE
ATRIBUTOS
MÉTODOS
POO – UML e Outros Conceitos
POO - FUNDAMENTOS
HERANÇA - UML
subclasses
superclasse
Exercícios sobre herança simples
PROGRAMAÇÃO ORIENTADA A OBJETOS
POO - FUNDAMENTOS
ENCAPSULAMENTO
Conceito que permite referenciar a proteção de acesso aos
atributos / métodos de uma classe
Para se criar o encapsulamento utiliza-se dos
MODIFICADORES DE ACESSO public, private e protected
permite que o atributo ou método seja acessado a
partir de qualquer classe
permite que o atributo ou método seja acessado
apenas pela mesma classe que os possuiprivate
além de permitir acesso igual ao private permite
acesso aos atributos e métodos pelas subclassesprotected
public
Métodos e atributos sem modificadores classes de pacote
POO - FUNDAMENTOS
ENCAPSULAMENTO
Conceito que permite referenciar a proteção de acesso aos
atributos / métodos de uma classe
Para se criar o encapsulamento utiliza-se dos
MODIFICADORES DE ACESSO public, private e protected
permite que o atributo ou método seja acessado a
partir de qualquer classe
permite que o atributo ou método seja acessado
apenas pela mesma classe que os possuiprivate
além de permitir acesso igual ao private permite
acesso aos atributos e métodos pelas subclassesprotected
public
Métodos e atributos sem modificadores classes de pacote
Esses modificadores
caracterizam a
VISIBILIDADE de um
atributo ou método
POO - FUNDAMENTOS
ENCAPSULAMENTO
Conceito que permite referenciar a proteção de acesso aos
atributos / métodos de uma classe
Para se criar o encapsulamento utiliza-se dos
MODIFICADORES DE ACESSO public, private e protected
permite que o atributo ou método seja acessado a
partir de qualquer classe
permite que o atributo ou método seja acessado
apenas pela mesma classe que os possuiprivate
além de permitir acesso igual ao private permite
acesso aos atributos e métodos pelas subclassesprotected
public
Métodos e atributos sem modificadores classes de pacote
Esses modificadores
caracterizam a
VISIBILIDADE de um
atributo ou método
E também de
classes
POO - FUNDAMENTOS
ENCAPSULAMENTO - visibilidades
POO - FUNDAMENTOS
ENCAPSULAMENTO - complemento
•Os atributos public
podem ser acessados por
um objeto através do uso
de um ponto:
carro.modelo=“Gol”
•As outras visibilidades
permitem o acesso a um
atributo através de um
método
POO - FUNDAMENTOS
BEANS
É uma classe
•Os atributos são acessados e modificados através de métodos
•O construtor não deve ter parâmetros
•Possui métodos acessadores e modificadores (getters e setters)
•Método acessador:
public tipoDoAtributo getNomeDoAtributo()
public boolean isNomeDoAtributo()
Exemplo: public String getNome() / public boolean getTeste()
•Método modificador:
public void setNomeDoAtributo()
Exemplo: public int setIdade()
•Fica a critério do programador em criar ou não esses métodos para
cada atributo
POO - FUNDAMENTOS
BEANSClasse BeanTeste
{
private int atributoUm;
private int atributoDois;
public BeanTeste(){ this.atributoUm=5 }
public int getAtributoUm()
{
return atributoUm;
}
public void setAtributoUm(int atributoUm)
{
this.atributoUm=atributoUm;
}
public int getAtributoDois()
{
return atributoDois;
}
public void setAtributoDois(int atributoDois)
{
this.atributoDois=atributoDois;
}
}
POO - FUNDAMENTOS
EXERCÍCIO (beans/visibilidade)
Considere uma classe de funcionários com os atributos
nome, cpf, departamento, função e salário. Elabore um
programa em Java que permita instanciar 7
funcionários. Efetuar para cada instância a respectiva
distribuição de departamento, sendo que conforme a
função do funcionário o departamento deve ser
alocado para o respectivo funcionário. Assim, considere
a correspondência função/departamento: contador e
auxiliar de contabilidade para Dep. de Contabilidade;
Psicólogo para RH, Economista para Dep. Financeiro;
Administrador para Diretoria Administrativa.
Criar uma aplicação que instancie objetos da classe
bean Funcionario, atribua conteúdos aos seus atributos
através de métodos modificadores e escreva suas
respectivas informações com métodos acessadores.
POO - FUNDAMENTOS
EXERCÍCIO
Considere a classe Carro que possui os atributos: marca,
modelo, velocidade e marcha. O atributo velocidade varia
de 0 a 300 km/h. O atributo marcha possui os valores
(R=ré, 1,2,3,4,5 e P=parado). Elabore uma aplicação que
instancie a classe carro e atribua diversos valores para os
seus atributos e atualize os valores de marcha e
velocidade de tal forma que o programa possa mostra-los
na tela. A classe Carro não deve aceitar valores inválidos
para os seus respectivos atributos (que devem ser
tratados dentro do bean), sendo que o valor da velocidade
deve ser compatível com os valores das
marchas.Exemplo: Carro não deve ter velocidade 300
km/h com marcha =P.A classe Carro deve ser um bean.
POO - FUNDAMENTOS
LISTA DE EXERCÍCIOS
POO - FUNDAMENTOS
F I M