Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários...

Preview:

Citation preview

Orientação a Objetos

IntroduçãoIntrodução

Objetos: o que são?• Olhando o mundo real pode-se ver vários objetos:

mesa, cadeiras, alunos, professores etc.• Esses objetos no mundo real possuem duas

características básicas: todos possuem estados/propriedades e comportamentos/funcionalidades apropriados.

– Exemplo: um cachorro • estados: nome, raça.

• Comportamento: balançar rabo, enterrar osso.

Software e objetos

• Objetos no contexto de um software representam objetos do mundo real. Assim eles também possuem estados e comportamentos.

• Objetos registram seus estados em uma ou mais variáveis. Um objeto implementa seu comportamento utilizando-se de métodos. Um método é uma função ou uma subrotina que está associada a um objeto.

Definição

• Um objeto é um conjunto de variáveis e métodos correlacionados.

variáveisMétodo

Método

Método

Método

Método

Um Objeto

• Assim dados um determinado objeto, por exemplo o aluno João, este possui suas próprias variáveis e seus próprios métodos.

• Instância é outro nome de um objeto específico.– Assim as variáveis de um objeto específico são as

variáveis de instância, assim como os métodos de instância.

Encapsulamento

• O diagrama anterios mostra as variávesi do objeto ao centro. Os métodos a sua volta escondem as variáveis de outros objetos.

• O empacotamento destas variáveis é chamado de encapsulamento.

• Entretanto existe ainda possibilidade de se deixar certas variáveis de um objeto serem acessadas diretamente.

Encapsulamento

• O fato de encapsular variáveis e métodos sob o conceito de objetos possibilita dois importantes benefícios .– Modularidade.– Ocultação de informação.

Mensagens

• Um único objeto não é de muita serventia. Um programa possui vários objetos que se interrelacionam. É atraves destas inter-relações que os programa obtém sua funcionalidade.

• Os objetos se interrelacionam a partir de mensagem que trocam entre si.

Mensagens

Objeto A

Objeto B

Mensagem

Mensagens

• Invariavelmente, quando da comunicação entre objetos, é necessário a passagem de parâmetros para tornar a mensagem mais específica

Cliente

Garçom

SolicitarSuco(morango)

Mensagens

• Assim uma mensagem possui 3 componentes:– O objeto que receberá a mensagem.– A mensagem em si.– Qualquer parâmetro necessário para a mensagem.

Mensagens

• Mensagens possuem dois benefícios importantes:– As mensagem entre objetos envolvem

praticamente todo a manipulação de comportamento de um objeto.

– Um objeto não necessita estar em um mesmo processo, ou em uma mesma máquina para receber a mensagem.

Classes

• No mundo real tem-se muitos objetos de um mesmo tipo. Por exemplo alunos. Assim um determinado aluno é uma instância (objeto) de uma determinada classe.

• Em particular cada objeto possui suas próprias variáveis e métodos com seus próprios valores e comportamentos apropriados.

Classes

• Em software pode-se obter a vantagem do fato dos objetos compartilharem um conjunto de variáveis e métodos, ou seja serem do mesmo tipo.

• Pode-se criar um molde para se criar estes objetos. Este molde se chama classe.

Definição de Classe

• Uma classe é um molde de define as variáveis e os métodos comuns a todos todos os objetos de um determinado tipo.

Variáveis de Classe

• O classe pode possuir variáveis. Uma variável de classe possui informação que é compartilhada por todas as instâncias da classe.

• Exemplo, se os carros que saem de uma linha de produção possuem 4 rodas, então ao invés da variável número de rodas estar associada ao objeto, esta estaria associada a classe. Qualquer alteração neste valor implicaria na mudança de valor para todos as instâncias.

Métodos da Classe

• Uma classe também pode declarar um método de classe. Estes métodos somente podem ser chamados através da classe, enquanto que os métodos de instância somente podem ser chamados pelas respectivas instâncias.

Objetos e Classes

• Os objetos existem.

• As classes são apenas os moldes deste objetos.

variáveis

Método

Método

Método

Método

Método

As classes serão representados com fundo cinza para diferenciar do objetos de fundo transparente.

Herança

• Uma das vantagens dos sistemas orientados a objetos é que as classes podem ser definidas utilizando-se outras classes.

• Por exemplo, podemos definir a classe cadeira.– Sabemos que cadeira de rodas, cadeira de balanço e

cadeira escolar são também cadeiras.

– O que sabemos também é que cada uma destas cadeiras possui um conjunto particular de variáveis e comportamento.

Herança

variáveis

Método

Método

Método

Método

Método

variáveis

Método

Método

Método

Método

Método

variáveis

Método

Método

Método

Método

Método

variáveis

Método

Método

Método

Método

Método

Cadeira

Cadeira de Rodas Cadeira de balanço Cadeira escolar

Herança

• Neste caso as classes cadeira de rodas, cadeira escolar e cadeira de balanço herdam todos as variáveis e métodos definidos nas classe cadeira.

• Um subclasse pode adicionar novos métodos e variáveis específicos de sua característica.

• Entretanto uma subclasse pode sobrepor uma variável ou método herdado.

Herança

• Uma subclasse possibilita a especificação de comportamentos especializados. É através de herança que se pode se reutilizar código.

• Pode-se definir uma classe abstrata que define apenas os comportamentos. Fica a cargo das classes descendente a implementação destes métodos.

Polimorfismo

• Várias classes podem implementar uma mesmo método, porém de forma diferente.

• Exemplo:– o método CalcularArea de um polígono.– Classe Polígono e subclasses retângulo, quadrado,

triângulo.

Interfaces

• Um interface é uma declaração de um conjunto de métodos que não contém código de implementação.

• Uma classe pode implementar várias interfaces.

Exemplos em Java

• Classe ponto.public class Point {// Variáveis public int x = 0;public int y = 0; // método de construção public Point(int x, int y) { this.x = x; this.y = y; }}

Exemplos em Java

• Classe retângulopublic class Rectangle {

public int width = 0;

public int height = 0;

public Point origin;

// Método de coonstrução

public Rectangle(Point p, int w, int h) {

origin = p;

width = w;

height = h;

}

}

Exemplos em Java

public class CreateObjectDemo {

public static void main(String[] args) {

// cria o objeto ponto e um retangulo

Point origin_one = new Point(23, 94);

Rectangle rect_one = new Rectangle(origin_one, 100, 200);

}

}

Referências

• The Java Tutorial - a practical guide for programmers.

• www.sun.com.

• Thinking in Java. Bruce Eckel. • Disponível na internet.

Dúvidas?

camposmf@gmail.com