Você está na página 1de 22

JAVA

Lucilvan Freitas Silva

Roteiro
Relao entre objetos
Agregao Composio Associao

Herana
Reuso de uma classe
Tudo que foi definido para uma classe vai ser aproveitado em outra classe

Representa Especializao
Um tipo mais genrico cujas caractersticas sero herdadas por outras classes Comportamento pode ser herdado e/ou modificado

Exemplo
B herda de A B subtipo de A B subclasse de A Todos os atributos e mtodos definidos em A tambm existem em B

Cont...

Cont...

Cont...

Subtipos
Uma classe que herda de outra chamada de subtipo
Herana representa relacionamento um
Carro um veculo Livro um publicao Cachorro um mamfero

Podemos ter uma varivel do tipo classeA referenciando uma objeto do tipo classeB

Visibilidade
public
Membros acessveis por qualquer classes

protected
Membros acessveis por classe e subclasses

private
Membros acessveis por apenas objetos da prpria classe

Default(pacote)
Membros acessveis por classes do mesmo pacote e subclasses

Sobrescrita
Redefinio de mtodo na subclasse
Sobrecrever o mtodo Mudar comportamento definido na superclasse

Cont...
Chamada de mtodo da superClasse
super.metodo();

Pode ser chamado em qualquer mtodo

Classes e Objetos
Tudo herda de object Define Alguns mtodos
public string toString(); public boolean equals(); ...

instanceof
Operador
Determina se um objeto obj de uma classe Classe
Retorna valor lgico Sintaxe: obj instanceof Classe

Construtores
Toda classe Java tem pelo menos um construtor, se no for definido, existir um padro sem parmetro
Public NomeClasse(){}

Todo construtor deve chamar o construtor da superclasse


Primeiro comando do construtor O compilador coloca o cdigo caso o programados no coloque

Cont...
O cdigo

Pode no compilar se a ClasseA no possuir um construtor sem parmetro

Polimorfismo
Muda comportamento
Mtodo executado depende da classe do objeto Mesma chamada executa mtodos diferentes
Obj.metodo();
Vai executar o mtodo que foi definido para a classe do objeto referenciado por obj

Permite executar mtodos de subclasses mesmo sem conhec-las Usado junto com sobrescrita

Cont...
Ter

4 impresso diferente; Experimente usar super.m();

Classes Abstratas
No podem ser instanciadas
Usadas com herana
Definir superclasse com caractersticas e comportamento comuns e cada subclasse implementa suas especificidades No existem animais da classe mamfero, apenas de suas subClasses

Palavra abstract antes do nome da classe

Cont..
Mtodos tambm podem ser abstratos
No possuem implementao Devem ser implementados pelas subclasses
Ou estas tambm sero abstratas

Se uma classe possuir pelo menos um mtodos abstrato, ela deve ser abstrata Classes abstratas podem ter mtodos implementados

Classe final
No podem ser herdadas
No possuem subclasses

No podem ser abstratas


Por consequncia, no possuem mtodos abstratos Palavra final antes do nome da classe

Atividade
Defina duas classes de Contato
ContatoPessoa Fisica ContatoPessoaJuridica

Defina um mtodo para contar os contatos de cada tipo Faa a classe Contato abstrata Sobrescreva o mtodo toString Inclua uma opo de menu para mostrar todos os contatos
Acrescente os mtodos que achar necessrio

Cont...
Desafio
Crie uma classe ContaBancaria fazendo com que a mesma possa aceitar dois tipo de conta: Conta corrente e Conta poupana