Baixe o app para aproveitar ainda mais
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
Compartilhar