Orientação a Objetos: Encapsulamento e Classificação Alcides Calsavara
Sistema Orientado a Objetos Um sistema orientado a objetos é uma coleção de objetos que interagem entre si. Um objeto interage com outro através do envio de uma mensagem. Uma mensagem causa um estímulo no objeto que a recebe. Um objeto inicia uma atividade quando sofre um estímulo, podendo interagir com outros objetos.
Interação entre Objetos C m2 m1 B m3 E D m5 m4
Objeto Um objeto possui um comportamento e um estado : O comportamento é a forma como reage a estímulos e desempenha as suas atividades. O estado é um conjunto de valores que modificam-se de acordo com o comportamento e os estímulos sofridos, isto é, mensagens recebidas.
Comportamento e Estado mensagem estado comportamento
Comportamento O comportamento de um objeto é definido por um conjunto de métodos. O recebimento de uma mensagem causa a execução de um método, isto é, inicia uma atividade. Uma mensagem pode invocar um método explícita ou implicitamente, através da notificação de um evento.
Execução de Métodos mensagem com invocação explícita mensagem com notificação de evento e m1 ( ) m1 ( ) m2 ( )
Estado O estado de um objeto é composto por um conjunto de valores de atributos.
Encapsulamento Separação dos aspectos externos de um objeto dos seus detalhes internos de implementação O estado de um objeto somente é acessível a partir da implementação de seu comportamento, isto é, a partir dos seus métodos.
Guarantia de Encapsulamento mensagem A mensagem E mensagem B mensagem D estado mensagem C método
Classe Uma classe descreve um conjunto de objetos: as instâncias da classe. Uma classe descreve o comportamento e a composição do estado de todos os seus objetos. Cada classe deve ter um nome distinto.
Classes e Objetos
Estrutura de uma Classe 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 Cada objeto possui um conjunto próprio de valores dos atributos e o conjunto de métodos da classe
Método Cada método possui uma assinatura, um tipo de retorno e uma implementação A assinatura de um método é composta por um nome e uma lista de parâmetros Cada parâmetro tem um nome e um tipo
Atributo Cada atributo tem um nome e um tipo. Um objeto que possui um atributo cujo tipo é uma classe é um objeto composto, pois contém outro objeto.
Atributos em Classes e Objetos (classe A) (classe B) b : LÓGICO k : INTEIRO x : INTEIRO s : C x =10 b=V k=7 n : TEXTO (classe C) s= n=Paris
Criação de Objetos Método de iniciação de um objeto toda classe tem um ou mais métodos de iniciação (construção) Operador de criação de objetos a criação de um novo objeto se dá com a invocação de um método de iniciação, através do operador CRIA
Classe e Encapsulamento Os valores dos atributos de um objeto somente são acessíveis a partir dos seus métodos.
Objeto e Referência Um objeto é criado dinamicamente pelo operador CRIA e tem a classe (tipo) especificada após esse operador Um objeto pode ser referenciado e ter seus métodos invocados Um objeto deve ser eliminado quando não mais é referenciado (garbage collection)