POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade)...

26
POO – Fundamentos Parte III Professor Vicente Paulo de Camargo

Transcript of POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade)...

Page 1: POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade) Considere uma classe de funcionários com os atributos nome, cpf, departamento, função

POO – Fundamentos Parte III

Professor Vicente Paulo de Camargo

Page 2: POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade) Considere uma classe de funcionários com os atributos nome, cpf, departamento, função

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

Page 3: POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade) Considere uma classe de funcionários com os atributos nome, cpf, departamento, função

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

Page 4: POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade) Considere uma classe de funcionários com os atributos nome, cpf, departamento, função

HERANÇA SIMPLES – cont.

ESQUEMA

PROGRAMAÇÃO ORIENTADA A OBJETOS

Page 5: POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade) Considere uma classe de funcionários com os atributos nome, cpf, departamento, função

HERANÇA SIMPLES – cont.

EXEMPLO

PROGRAMAÇÃO ORIENTADA A OBJETOS

Page 6: POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade) Considere uma classe de funcionários com os atributos nome, cpf, departamento, função

HERANÇA SIMPLES – cont.

EXEMPLO

Essa estrutura de classes é denominada de

HIERARQUIA DE CLASSES

PROGRAMAÇÃO ORIENTADA A OBJETOS

Page 7: POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade) Considere uma classe de funcionários com os atributos nome, cpf, departamento, função

HERANÇA SIMPLES – CODIFICAÇÃO JAVA

Representa

a herança no

código

PROGRAMAÇÃO ORIENTADA A OBJETOS

Page 8: POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade) Considere uma classe de funcionários com os atributos nome, cpf, departamento, função

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

Page 9: POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade) Considere uma classe de funcionários com os atributos nome, cpf, departamento, função

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

Page 10: POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade) Considere uma classe de funcionários com os atributos nome, cpf, departamento, função

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

Page 11: POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade) Considere uma classe de funcionários com os atributos nome, cpf, departamento, função

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

Page 12: POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade) Considere uma classe de funcionários com os atributos nome, cpf, departamento, função

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

Page 13: POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade) Considere uma classe de funcionários com os atributos nome, cpf, departamento, função

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

Page 14: POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade) Considere uma classe de funcionários com os atributos nome, cpf, departamento, função

POO - FUNDAMENTOS

HERANÇA - UML

subclasses

superclasse

Page 15: POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade) Considere uma classe de funcionários com os atributos nome, cpf, departamento, função

Exercícios sobre herança simples

PROGRAMAÇÃO ORIENTADA A OBJETOS

Page 16: POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade) Considere uma classe de funcionários com os atributos nome, cpf, departamento, função

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

Page 17: POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade) Considere uma classe de funcionários com os atributos nome, cpf, departamento, função

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

Page 18: POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade) Considere uma classe de funcionários com os atributos nome, cpf, departamento, função

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

Page 19: POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade) Considere uma classe de funcionários com os atributos nome, cpf, departamento, função

POO - FUNDAMENTOS

ENCAPSULAMENTO - visibilidades

Page 20: POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade) Considere uma classe de funcionários com os atributos nome, cpf, departamento, função

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

Page 21: POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade) Considere uma classe de funcionários com os atributos nome, cpf, departamento, função

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

Page 22: POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade) Considere uma classe de funcionários com os atributos nome, cpf, departamento, função

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;

}

}

Page 23: POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade) Considere uma classe de funcionários com os atributos nome, cpf, departamento, função

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.

Page 24: POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade) Considere uma classe de funcionários com os atributos nome, cpf, departamento, função

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.

Page 25: POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade) Considere uma classe de funcionários com os atributos nome, cpf, departamento, função

POO - FUNDAMENTOS

LISTA DE EXERCÍCIOS

Page 26: POO Fundamentos Parte III - vpcamargo.com.br · POO - FUNDAMENTOS EXERCÍCIO (beans/visibilidade) Considere uma classe de funcionários com os atributos nome, cpf, departamento, função

POO - FUNDAMENTOS

F I M