Buscar

POO_Aula5-6_Introducao_POO

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Principais conceitos de OO F
Instutito de Informa´tica da UFG
Programac¸a˜o Orientada a Objetos
Cieˆncias da Computac¸a˜o
Prof. Dr. Vin´ıcius Sebba Patto
2o Semestre de 2012
Programac¸a˜o Orientada a Objetos
Principais conceitos de OO F
Classes, interfaces e implementac¸o˜es
Classe - relembrando
Uma classe define propriedades (estado) e
operac¸o˜es/me´todos (comportamento) que sa˜o comuns
aos objetos.
Uma classe define um tipo, a partir do qual todos os
objetos sa˜o criados.
Um objeto e´ uma instaˆncia de uma classe.
O estado de um objeto e´ o conjunto de valores dos seus
atributos.
O estado de um objeto so´ pode (ou deve!) ser
modificado pelos me´todos.
Objetos tambe´m sa˜o chamados de instaˆncias.
Programac¸a˜o Orientada a Objetos
Principais conceitos de OO F
Classes, interfaces e implementac¸o˜es
Classe em UML
Representac¸a˜o de uma classe conforme UML
(Unified Modeling Language):
Programac¸a˜o Orientada a Objetos
Principais conceitos de OO F
Classes, interfaces e implementac¸o˜es
Classe em java
public class VeiculoMotorizado {
private String nome;
private float velocidade;
private boolean ligado;
private String combustivel;
public void acelera( ) { velocidade+= 1.0; }
public void frea( ) { velocidade−= 1.0; }
public void liga( ) { ligado = true; }
public void desliga( ) { ligado = false; }
}
Programac¸a˜o Orientada a Objetos
Principais conceitos de OO F
Classes, interfaces e implementac¸o˜es
Interface
E´ uma colec¸a˜o de operac¸o˜es que especificam
servic¸os de uma classe.
Estabelecem as requisic¸o˜es/mensagens
(assinaturas) aos objetos.
Detalhes da implementac¸a˜o dos me´todos sa˜o
feitos em classes.
Uma interface deve ser implementada por uma
classe.
Podem conter constantes.
Programac¸a˜o Orientada a Objetos
Principais conceitos de OO F
Classes, interfaces e implementac¸o˜es
Interface em UML
Representac¸a˜o de uma interface conforme
UML:
Programac¸a˜o Orientada a Objetos
Principais conceitos de OO F
Classes, interfaces e implementac¸o˜es
Interface em java
public interface Motorizado {
public void acelera( );
public void frea( );
public void liga( );
public void desliga( );
}
Programac¸a˜o Orientada a Objetos
Principais conceitos de OO F
Classes, interfaces e implementac¸o˜es
Implementac¸a˜o de uma interface em UML
Implementac¸a˜o de uma interface em UML:
Programac¸a˜o Orientada a Objetos
Principais conceitos de OO F
Classes, interfaces e implementac¸o˜es
Implementac¸a˜o de uma interface em Java
public class VeiculoMotorizado implements Motorizado {
private String nome;
private float velocidade;
private boolean ligado;
private String combustivel;
public void acelera( ) { velocidade+= 1.0; }
public void frea( ) { velocidade−= 1.0; }
public void liga( ) { ligado = true; }
public void desliga( ) { ligado = false; }
}
Programac¸a˜o Orientada a Objetos
Principais conceitos de OO F
Classes, interfaces e implementac¸o˜es
Heranc¸a e POO
Em OO temos:
Caracter´ısticas e estruturas de objetos equivalem
aos atributos.
Comportamento de objetos sa˜o definidos pelos
me´todos (responsa´veis pelo recebimento de
mensagens).
Heranc¸a
E´ o mecanismo que permite a`s classes herdar me´todos e
atributos de outras classes sem a necessidade de os reescrever.
Permite adicionar ou modificar o comportamenteo de classes
existentes.
Programac¸a˜o Orientada a Objetos
Principais conceitos de OO F
Classes, interfaces e implementac¸o˜es
Heranc¸a em UML
Representa-se uma heranc¸a em UML da seguinte maneira:
Programac¸a˜o Orientada a Objetos
Principais conceitos de OO F
Classes, interfaces e implementac¸o˜es
Heranc¸a em java
public class VeiculoTerrestre extends VeiculoMotorizado {
private int numeroRodas;
private int numeroMarchas;
public void sinalizarConvDireita( ) {
//TODO
}
public void sinalizarConvEsquerda( ) {
//TODO
}
}
Programac¸a˜o Orientada a Objetos
Principais conceitos de OO F
Visibilidade, escopo e outros modificadores
Visibilidade
Modificadores de acesso (UML e Java):
private: me´todos e atributos (acess´ıvel somente
dentro da classe).
package - Default: atributos, me´todos e classes
(acess´ıvel dentro do pacote - auseˆncia do
modificador).
protected: atributos e me´todos (acess´ıvel somente
a` classe e subclasses - em Java tambe´m e´ acess´ıvel
no pacote).
public: atributos, me´todos e classes (acess´ıvel fora
da classe).
Programac¸a˜o Orientada a Objetos
Principais conceitos de OO F
Visibilidade, escopo e outros modificadores
Visibilidade - Dicas
private: atributos e me´todos dispon´ıveis apenas dentro
da classe.
package - Default: atributos, me´todos e classes que
devem ficar escondido dentro de um pacote.
protected: atributos e me´todos que podem ser usados
por quem extende a classe.
public: constantes e me´todos que formam parte da
classe pu´blica.
Programac¸a˜o Orientada a Objetos
Principais conceitos de OO F
Visibilidade, escopo e outros modificadores
Visibilidade - Resumo
- private # protected ˜package + public
atributo X X X X
me´todo X X X X
classe - - X X
Programac¸a˜o Orientada a Objetos
Principais conceitos de OO F
Visibilidade, escopo e outros modificadores
Escopo
Determina a durac¸a˜o de atributos e varia´veis.
O que delimita o escopo sa˜o { }.
{
int x = 0;
if(condicao){
boolean b = false;
x++;
// x e b estao disponiveis dentro do bloco if
}
//fora do if, apenas x esta disponivel
}
Programac¸a˜o Orientada a Objetos
Principais conceitos de OO F
Visibilidade, escopo e outros modificadores
Varia´veis
Local: e´ declarada dentro de um me´todo e seu ciclo de vida esta´
relacionada ao escopo. Devem ser explicitamente inicializadas.
De instaˆncia: e´ declarada fora de qualquer me´todo e inicializada
quando o objeto e´ instanciado. Podem ser inicializada
implicitamente (e´ o atributo da classe).
De classe:assim como a varia´vel de instaˆncia, e´ declarada fora de
qualquer me´todo e inicializada quando o objeto e´ instanciado.
Todavia, essa varia´vel e´ comum a todos os objetos criados a partir
da classe. Para declarar uma varia´vel de classe, utiliza-se o
modificador static.
Varia´veis de classe e de instaˆncia e os me´todos compo˜em os
membros da classe.
Programac¸a˜o Orientada a Objetos
Principais conceitos de OO F
Visibilidade, escopo e outros modificadores
Exemplo de varia´veis locais, de instaˆncia e
de classe
public class Feiticeiro{
private int pontosIndividuais; //de instancia
private static int pontosEquipe; //de classe
public void consumoReservas( ) {
int i = 0; //local
// TODO ...
}
}
Programac¸a˜o Orientada a Objetos
Principais conceitos de OO F
Visibilidade, escopo e outros modificadores
Modificador static - me´todo esta´tico
Como visto anteriormente, permite criar varia´veis de
classe.
Quando usado com me´todos, permite a chamada de
me´todos esta´ticos sem a instanciac¸a˜o de objetos.
Me´todos esta´ticos sa˜o usados para acessar varia´veis
esta´ticas e na˜o de instaˆncias.
Exemplo: me´todo main( ) - permite iniciar a execuc¸a˜o
de uma classe sem que um objeto seja instanciado.
Programac¸a˜o Orientada a Objetos
Principais conceitos de OO F
Visibilidade, escopo e outros modificadores
Modificador final - constante
Ao usar com um atributo, este se torna uma constante.
Assim como varia´veis de classe e de instaˆncia, podemos ter
“constantes de classe e de instaˆncia”.
Exemplo:
public class Jogador{
private final int PONTUACAO_MAX;
//constante para instancia (pode ser inicializada no construtor).
private static final int NUM_ESTAGIOS = 10;
//constante comum a todos objetos do tipo Jogador
}
Programac¸a˜o Orientada a Objetos
Principais conceitos de OO F
Visibilidade, escopo e outros modificadores
Modificador final - constante
Por que
private final int PONTUACAO_MAX = 100;
e´ diferente de
private static final int PONTUACAO_MAX = 100;
?
Alocac¸a˜o de espac¸o na memo´ria e´ diferente (para
instaˆncia e para classe).
Programac¸a˜o Orientada a Objetos
Principais conceitos de OO F
Visibilidade,escopo e outros modificadores
Modificador final - me´todo
O me´todo na˜o pode ser sobrescrito por outros me´todos
em subclasses.
Me´todos private e static sa˜o implicitamente final porque
na˜o podem ser sobrescritos.
Um me´todo final na˜o pode ter sua declarac¸a˜o mudada.
Todas subclasses usam a mesma implementac¸a˜o.
protected final int soma(int a, int b){ }
Programac¸a˜o Orientada a Objetos
Principais conceitos de OO F
Visibilidade, escopo e outros modificadores
Modificador final - classe
A classe na˜o pode ser herdada.
Declarar me´todos do tipo final em uma classe do tipo
final, na˜o adiciona nenhum significado.
Necessidade: seguranc¸a. Exemplo: String e System.
public final class MinhaClasse{ }
Programac¸a˜o Orientada a Objetos
Principais conceitos de OO F
Visibilidade, escopo e outros modificadores
Classe abstrata
Sa˜o classes das quais objetos na˜o podem ser instanciados (ao
contra´rio das concretas).
Sa˜o usadas somente como superclasses.
Sa˜o incompletas e possuem partes ausentes (a serem
implementadas - me´todos abstratos).
Exemplo:
public abstract class Empregado{
private String nome;
public String getNome( ) {
return nome;
}
...
}
Programac¸a˜o Orientada a Objetos
Principais conceitos de OO F
Visibilidade, escopo e outros modificadores
Me´todo abstrato
Presentes nas classes abstratas, precisam ser implementados.
Exemplo:
public abstract class Empregado{
private String nome;
public String getNome( ) {
return nome;
}
public abstract float calculaSalario( );
//Semelhante aos metodos em interfaces.
}
Programac¸a˜o Orientada a Objetos
Principais conceitos de OO F
Fim
That’s all!
Por enquanto e´ so´, pessoal!
Programac¸a˜o Orientada a Objetos
	Principais conceitos de OO
	Classes, interfaces e implementações
	Visibilidade, escopo e outros modificadores
	F
	Fim

Continue navegando