Vous êtes sur la page 1sur 55

POO II

Reviso de OO

Prof. Maurcio Manoel


mauricio.junior@fafica-pe.edu.br
https://edulify.com/mauricio.junior
31 de julho de 2015

Agenda

O que veremos nesta aula ?


Definio
Classe, Atributo, Mtodos e Objetos
Abstrao
Encapsulamento
Composio
Herana (Simples e Mltipla)
Polimorfismo
Classe Abstrata
Interface
Pacotes

Definio
A POO um paradigma de programao de
computadores que usa os conceitos de
Objetos e Classes como elementos centrais
para representar e processar dados usados
nos programas.
POO um paradigma de anlise, projeto e
programao de sistemas de software
baseado na composio e interao entre
diversas unidades de software chamadas de
objetos.

Harvey e Paul Deitel

Definio

Classe, Atributo, Mtodos e Objetos

Classe
uma espcie de forma que molda como os nossos
objetos sero estanciados na memria.
Classe a definio de como os objetos vo ser.
Classe a forma de bolo, objetos so os bolos que se faz
a partir daquela forma.

Classe, Atributo, Mtodos e Objetos

Classe

Fonte: UniversidadeXTI

Classe, Atributo, Mtodos e Objetos

Atributos
Elementos que definem a estrutura de uma classe, ou
seja, suas caractersticas. Basicamente a estrutura de
dados que vai representar a classe.

Classe, Atributo, Mtodos e Objetos

Atributos

Classe, Atributo, Mtodos e Objetos

Mtodos
So blocos de cdigo que pertencem a uma classe e tem
por finalidade realizar uma tarefa. Mtodos geralmente
correspondem uma ao do objeto.

Assinatura

Sobrecarga

Classe, Atributo, Mtodos e Objetos

Mtodos

Classe, Atributo, Mtodos e Objetos

Objetos
So representaes reais de uma classe;
Tambm so conhecidos como instncias da classe.

Classe, Atributo, Mtodos e Objetos

Objetos

Classe, Atributo, Mtodos e Objetos


Na construo da classe faa as perguntas:
O que o objeto vai Representar?
O que o objeto conhece sobre si mesmo?
O que o objeto pode fazer (aes)?

Classe, Atributo, Mtodos e Objetos

Tarefinha 1
Criar a classe PessoaFisica com Nome, CPF, Endereo,
Bairro e Cidade todos do tipo String;
Criar a classe PessoaJuridica com Nome, CNPJ, Inscrio
Estadual, Endereo, Bairro e Cidade todos do tipo String;
Criar um mtodo chamado toString para cada classe que
retorne (Nome, CPF ou CNPJ, Endereo, Bairro e Cidade;
Criar um mtodo chamado getDocumento para cada
classe que retorne o CPF ou CNPJ;
Criar um mtodo chamado formatarDocumento na classe
PessoaFisica e PessoaJuridica.

Dvidas

Abstrao
utilizada para a definio de entidades do mundo real
(considerao as suas caractersticas e aes);
Representao apenas das caractersticas essenciais do
ponto de vista do desenvolvimento do sistema
Concentrao em ideias gerais (o que), no em
detalhes (como)

Abstrao

Abstrao

Abstrao

Encapsulamento
a tcnica utilizada para esconder uma ideia;
Proteo de suas variveis para evitar uma configurao
invlida:
Qtd de banheiros na casa = -1;
Velocidade do Avio durante voo: 0 KM
Nmero de Celular: abcd-efgh

Elimina dependncia de implementao, escondendo-a


de quem usa o objeto no sistema;
No expor detalhes internos para o usurio, tornando o
sistema mais independentes possvel;

Encapsulamento
Quando um controle remoto estraga, o que voc faz?
Troca o controle ou troca a televiso inteira?
O que acontece em um sistema de vendas, aonde temos
cadastros de funcionrios, usurios, gerentes, clientes,
produtos entre outros, se por acaso acontecer um
problema na parte do usurio?

Encapsulamento
Em um processo de encapsulamento os atributos das
classes so do tipo private. Para acessar esses tipos de
modificadores, necessrio criar mtodos setters e
getters.
IMPORTANTE o uso do construtor para inicializao dos
atributos.

Encapsulamento

Composio
Relacionamento tem-um;
Objetos podem ser construdos a partir de outros
objetos;
Decomposio de alguma entidade grande e complexa
em entidades menores;
Permite decompor um problema complexo em problemas
menores e mais simples;
Estratgia de dividir para conquistar!

Composio

Composio

Tarefinha 2
Criar classe Motor com tipo (String), potencia (int);
Criar a classe Chassi com numero (String), ano(int);
Criar a classe Pneu com raio(int), numeroSerie (String),
modelo (String);
Criar a classe Carro com modelo (String),
velocidadeMaxima (int), segundosZeroACem (double),
pneu (Pneu), motor (Motor), chassi (Chassi);

Herana
Hierarquizao de abstraes
Mecanismos para permitir Reuso e Extensibilidade
-UM;

Herana

Tarefinha 3
Criar classe Funcionario com Nome (String), CPF(String) e
Salrio (Double);
Criar a classe Gerente com Nome (String), CPF(String),
Salrio (Double), qtdFuncionario (Int);
Criar a classe Diretor com Nome (String), CPF(String),
Salrio (Double), qtdFuncionario (Inteiro) e Senha
(String);
Criar um mtodo chamado autenticar que receba como
parmetro uma String e valide a senha cadastrada no objeto e
retorne um booleano.

Herana

Tarefinha 4
Aplique o conceito de herana na Tarefinha 3;
Aplique o conceito de herana na Tarefinha 1.

Herana

Tarefinha 5
Criar a classe animal com nome (String), peso (double) e
comida (String);
Criar um mtodo dormir que imprima Dormir e
fazerBarulho que imprima Fazer Barulho;
Criar as classes Cachorro e Galinha que seja filho da
classe Animal;
Fazer programa de teste para imprimir as informaes de
cada animal.

Herana
Reuso de Cdigo
A descrio da superclasse pode ser usada para definir a
subclasse

Extensibilidade
Algumas operaes da superclasse podem ser redefinidas na
subclasse.

Polimorfismo
Permite que diferentes classes tenham mtodos com a
mesma assinatura, porm estes mtodos podem possuir
comportamentos diferentes.

Polimorfismo

Tarefinha 6
Na Tarefinha 5, criar a classe ExibirInformacao com o
mtodo chamado exibirAnimal que receba como
parmetro do tipo animal e imprima o peso e qual
barulho ele faz;
Como exibir os mesmos dados do mtodo exibirAnimal
sem polimorfismo?

Polimorfismo

Tarefinha 7
Criar uma classe Funcionario com nome (String), salario
(Double);
Criar o mtodo getGratificacao;
Criar o mtodo getInfo;

Polimorfismo

Tarefinha 7
Criar uma classe Professor com nome (String), salario
(Double) e horas (Inteiro);
Criar o mtodo getGratificacao que retorne salario +
(horas * 20);
Criar o mtodo getInfo que retorne a String Nome:
fulano, sou Professor com 20h/aula e Salrio R$ 125,00
onde o salrio vem do mtodo getGratificacao.

Polimorfismo

Tarefinha 7
Criar uma classe Monitor com nome (String), salario
(Double) e horas (Inteiro);
Criar o mtodo getGratificacao que retorne salario +
(horas * 10);
Criar o mtodo getInfo que retorne a String Nome:
fulano, sou Monitor com 20h/aula e Salrio R$ 100,00
onde o salrio vem do mtodo getGratificacao.

Polimorfismo

Tarefinha 8
Criar a classe Relatorio;
Criar um mtodo chamado gerencialFuncionario que
receba o atributo do tipo funcionario.
Executar esse mtodo passando como parmetros um
objeto do tipo Professor e Monitor.
Public class Relatorio {
public void gerencialFuncionario(Funcionario f) {
System.out.println(f.getClass().getSimpleName());
System.out.println(f.getInfo());
System.out.println(f.getGratificacao());

}
}

Classe Abstrata
Uma classe abstrata desenvolvida para representar
entidades e conceitos abstratos, NO possuindo
instncias.
Ela define um modelo (template) para uma
funcionalidade e fornece uma parte genrica da
funcionalidade que compartilhada por um grupo de
classes derivadas;

Classe Abstrata

Classe Abstrata

Tarefinha 9
Na classe Monitor da Tarefinha 7, comente o mtodo
getInfo;
Executar novamente a Tarefinha 8;

Classe Abstrata
Como obrigar o desenvolvedor a implementar o mtodo
getInfo na classe Monitor?
Como obrigar que o desenvolvedor no faa uma
instancia de Funcionario (Tarefinha 7) ou Pessoa
(Tarefinha 4)?
RESPOSTA: Altere a classe Funcionario na Tarefinha 7
para uma classe abstrata e execute novamente a
Tarefinha 8

Interface
Contrato entre a classe. Quando uma classe implementa
uma interface, ela est comprometida a fornecer o
comportamento publicado pela interface.

Interface

Interface
Criar a classe Corredor com o mtodo correr;
Criar a classe Nadador com o mtodo nadar;
Criar a classe Ciclista com o mtodo pedalar;

Interface

Tarefinha 10
Criar a interface Ciclista com o mtodo pedalar;
Criar a interface Corredor com o mtodo correr;
Criar a interface Nadador com o mtodo nadar;
Criar a classe triatleta com nome (String), idade (Inteiro) e
que seja filho de Ciclista, Corredor e Nadador.

Interface

Tarefinha 11
Criar a interface AreaCalculavel com o mtodo
calcularArea com tipo de retorno double;
Criar a classe Quadrado que implemente a Interface
AreaCalculavel (lado * lado);
Criar a classe Cubo que implemente a Interface
AreaCalculavel (lado * lado * lado);
Criar uma classe de TesteInterface que implemente o
mtodo imprimirInformacao que receba como parmetro
um atributo do tipo AreaCalculavel;
Passar para o mtodo imprimirInformacao a instancia de
Quadrado e Cubo.

Pacotes
Agrupamento de classes organizadas por uma
determinada categoria;
Pacotes vai auxiliar voc a desenvolver sistemas mais
reusveis e extensveis, organizando as classes do sistema
em "mdulos" que podem ser analisados, reusados e
modificados isoladamente ou com o auxlio de outros
poucos "mdulos".

Pacotes

Classe x Pacote
Classes
Agrupam definies de mtodos, atributos, inicializares, etc.
definem tipos

Pacotes
Agrupam definies de classes relacionadas
estruturam sistemas de grande porte, facilitando a localizao
das classes

Pacotes

Motivao
Organizar seu programa em mdulos;
Java organiza suas classes em pacotes;
Evitar conflitos de nomes (java.util.List e java.awt.List);
Modularizao.

Pacotes

Motivao

Pacotes

Motivao

Pacotes

http://www.fafica.com

package com.fafica

Pacotes

Padro de Codificao
O padro da Oracle para dar nome aos pacotes relativo
ao nome da empresa que desenvolveu a classe;
S possuem letras minsculas, no importa quantas
palavras estejam contidas nele.
com.fafica.aluno
com.fafica.pessoa
com.fafica.pessoal.controller
com.fafica.pessoa.model
com.fafica.pessoa.view
com.fafica.aula01
com.fafica.exemplo

Dvidas

Obrigado !
Maurcio Manoel
mauricio.junior@fafica-pe.edu.br

Vous aimerez peut-être aussi