Top Banner
POO – Fundamentos Parte III Professor Vicente Paulo de Camargo
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

Nov 10, 2018

Download

Documents

dokhanh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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