Orientao a Objetos Encapsulamento e Classificao Alcides Calsavara
Orientação a Objetos: Encapsulamento e Classificação Alcides Calsavara 1
Sistema Orientado a Objetos u Um sistema orientado a objetos é uma coleção de objetos que interagem entre si. u Um objeto interage com outro através de uma mensagem que causa um estímulo. 2
Interação entre Objetos 3
Objeto u Um objeto possui um comportamento e um estado : – o comportamento é forma como reage a estímulos – o estado modifica-se de acordo comportamento 4
Comportamento e Estado 5
Encapsulamento u Separação dos aspectos externos de um objeto dos seus detalhes internos de implementação u O estado de um objeto somente é acessível a partir da implementação de seu comportamento 6
Guarantia de Encapsulamento 7
Comportamento u. O comportamento de um objeto é definido por um conjunto de métodos u Um estímulo causa a execução de um método u Um estímulo pode ser uma invocação explícita de um método ou um evento relevante para o objeto 8
Execução de Métodos invocação evento e m() m() 9
Estado u. O estado de um objeto é composto por um conjunto de valores de atributos 10
Classe u Uma classe descreve um conjunto de objetos: as instâncias da classe u Uma classe descreve o comportamento e a composição do estado de todos os seus objetos u Cada classe deve ter um nome distinto 11
Classes e Objetos 12
Tipos u Um tipo pode ser primitivo ou uma classe u Uma classe é um tipo abstrato de dados (ADT) 13
Tipos Primitivos u Os tipos primitivos incluem: – números inteiros: byte, short, int, long – números reais: float, double – valores lógicos: boolean – caracteres: char 14
Classes de Bibliotecas u Exemplos: – String – Applet – Button – System 15
Método u Cada método possui uma assinatura, um tipo de retorno (primitivo ou classe) e uma implementação u A assinatura de um método é composta por um nome e uma lista de parâmetros u Cada parâmetro tem um nome e um tipo (primitivo ou classe) 16
Atributo u Cada atributo tem um nome e um tipo (primitivo ou classe) u Um objeto que possui um atributo cujo tipo é uma classe é um objeto composto, pois contém outro objeto 17
Atributos em Classes e Objetos A boolean b int k B int x String s x =10 b=true k=7 s= char[] v v=Paris String 18
Visibilidade e Encapsulamento u Um atributo deve preferencialmente ser qualificado como privado (private) u Um método pode ser tanto qualificado como privado como público (public) u O conjunto de métodos públicos de uma classe define a sua inteface 19
Estrutura de uma Classe u Uma classe contém um conjunto de atributos e um conjunto de métodos – os atributos devem ter nomes distintos – os métodos devem ter assinaturas distintas u Cada objeto possui um conjunto próprio de valores dos atributos e o conjunto de métodos da classe 20
Classe e Encapsulamento u Os valores dos atributos de um objeto somente são acessíveis a partir dos seus métodos 21
Criação de Objetos u Método construtor – toda classe tem um ou mais métodos construtores – um método construtor tem o mesmo nome da classe e não tem retorno u Operador new – a criação de um novo objeto se dá com a invocação de um método construtor através do operador new 22
Objeto e Referência u Todo objeto é criado dinamicamente pelo operador new e tem a classe (tipo) especificada após esse operador u Um objeto pode ser referenciado e ter seus métodos invocados u Um objeto é eliminado quando não mais é referenciado 23
Classe com Múltiplos Construtores u Cada construtor deve ter uma assinatura própria u Um construtor pode invocar outro através do operador this u O operador this também pode ser usado para resolver ambigüidade quando há coincidência de nomes entre parâmetro e atributo 24
Qualificador static u Em um atributo: indica que o atributo tem uma única ocorrência para todas as instâncias da classe u Em um método: indica que o método pode ser invocado indendentemente de uma instância da classe – um método static acessa apenas atributos static 25
Qualificador final em atributos u. O qualificador final em um atributo indica que este tem um valor constante 26
Finalização de um atributo Exemplo class Geometria { public static final float PI = 3. 1416; private final String PROMPT = "Geom>"; . . . } 27
- Slides: 27