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

29
Orientação a Objetos Introdução Introdução

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

Page 1: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

Orientação a Objetos

IntroduçãoIntrodução

Page 2: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

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.

Page 3: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

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.

Page 4: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

Definição

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

variáveisMétodo

Método

Método

Método

Método

Page 5: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

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.

Page 6: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

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.

Page 7: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

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.

Page 8: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

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.

Page 9: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

Mensagens

Objeto A

Objeto B

Mensagem

Page 10: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

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)

Page 11: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

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.

Page 12: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

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.

Page 13: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

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.

Page 14: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

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.

Page 15: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

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.

Page 16: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

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.

Page 17: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

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.

Page 18: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

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.

Page 19: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

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.

Page 20: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

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

Page 21: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

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.

Page 22: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

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.

Page 23: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

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.

Page 24: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

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.

Page 25: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

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; }}

Page 26: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

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;

}

}

Page 27: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

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);

}

}

Page 28: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

Referências

• The Java Tutorial - a practical guide for programmers.

• www.sun.com.

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

Page 29: Orientação a Objetos Introdução. Objetos: o que são? Olhando o mundo real pode-se ver vários objetos: mesa, cadeiras, alunos, professores etc. Esses objetos.

Dúvidas?

[email protected]