1 conceitos de orientaÇÃo a objetos. 2 conceitos de orientação a objeto histórico os conceitos...
TRANSCRIPT
1
CONCEITOS DE CONCEITOS DE ORIENTAÇÃO A ORIENTAÇÃO A
OBJETOSOBJETOS
2
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
HistóricoHistórico
Os conceitos de orientação a objetos vêm Os conceitos de orientação a objetos vêm sendo discutido há muito tempo, desde o sendo discutido há muito tempo, desde o lançamento da 1lançamento da 1a linguagem orientada a linguagem orientada a objeto – SIMULA.objeto – SIMULA.
Primeiros autores dessa metodologia foram Primeiros autores dessa metodologia foram Peter Coad, Edward Yourdon e Roger Peter Coad, Edward Yourdon e Roger PressmanPressman
HistóricoHistórico
Os conceitos de orientação a objetos vêm Os conceitos de orientação a objetos vêm sendo discutido há muito tempo, desde o sendo discutido há muito tempo, desde o lançamento da 1lançamento da 1a linguagem orientada a linguagem orientada a objeto – SIMULA.objeto – SIMULA.
Primeiros autores dessa metodologia foram Primeiros autores dessa metodologia foram Peter Coad, Edward Yourdon e Roger Peter Coad, Edward Yourdon e Roger PressmanPressman
3
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Os conceitos discutidos por Coad, Yourdon e Os conceitos discutidos por Coad, Yourdon e Pressman são:Pressman são:
• Orientação a objeto é uma tecnologia para a produção de Orientação a objeto é uma tecnologia para a produção de
modelos que especifique o domínio do problema de um modelos que especifique o domínio do problema de um
sistema;sistema;• Quando construídos corretamente, sistemas orientados a Quando construídos corretamente, sistemas orientados a
objetos são flexíveis a mudanças, operando com objetos são flexíveis a mudanças, operando com
componentes totalmente reutilizáveis; componentes totalmente reutilizáveis; • Orientação a objeto não é só teoria, mas uma tecnologia Orientação a objeto não é só teoria, mas uma tecnologia
de eficiência e qualidade comprovada usada em inumeros de eficiência e qualidade comprovada usada em inumeros
projetos de sistemas.projetos de sistemas.
Os conceitos discutidos por Coad, Yourdon e Os conceitos discutidos por Coad, Yourdon e Pressman são:Pressman são:
• Orientação a objeto é uma tecnologia para a produção de Orientação a objeto é uma tecnologia para a produção de
modelos que especifique o domínio do problema de um modelos que especifique o domínio do problema de um
sistema;sistema;• Quando construídos corretamente, sistemas orientados a Quando construídos corretamente, sistemas orientados a
objetos são flexíveis a mudanças, operando com objetos são flexíveis a mudanças, operando com
componentes totalmente reutilizáveis; componentes totalmente reutilizáveis; • Orientação a objeto não é só teoria, mas uma tecnologia Orientação a objeto não é só teoria, mas uma tecnologia
de eficiência e qualidade comprovada usada em inumeros de eficiência e qualidade comprovada usada em inumeros
projetos de sistemas.projetos de sistemas.
4
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
As principais metodologias que deixaram a As principais metodologias que deixaram a orientação objeto popular nos anos 90 são:orientação objeto popular nos anos 90 são:
• Booch – Booch – definiu que um sistema é analisado a partir de um
número de visões, onde cada visão é descrita por vários
diagramas – visão Macro e Micro de processos;
• OMT- Técnica de Modelagem de Objetos, desenvolvida pela
GE por Rumbaugh, opera sobre análise de requisito e teste
dos modelos – apoia-se em objetos, funções e use-case;
• OOSE/Objectory - baseia em Jacobson sendo orientado a
objeto e utilizando use-cases, definindo os requisitos iniciais
do sistema, abordados como ator externo.
As principais metodologias que deixaram a As principais metodologias que deixaram a orientação objeto popular nos anos 90 são:orientação objeto popular nos anos 90 são:
• Booch – Booch – definiu que um sistema é analisado a partir de um
número de visões, onde cada visão é descrita por vários
diagramas – visão Macro e Micro de processos;
• OMT- Técnica de Modelagem de Objetos, desenvolvida pela
GE por Rumbaugh, opera sobre análise de requisito e teste
dos modelos – apoia-se em objetos, funções e use-case;
• OOSE/Objectory - baseia em Jacobson sendo orientado a
objeto e utilizando use-cases, definindo os requisitos iniciais
do sistema, abordados como ator externo.
5
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
UML – Unified Modeling LanguageUML – Unified Modeling LanguageUML – Unified Modeling LanguageUML – Unified Modeling Language
Diante desta diversidade de conceitos, "os três amigos", Grady Booch, James
Rumbaugh e Ivar Jacobson decidiram criar uma Linguagem de Modelagem
Unificada - UML. Eles disponibilizaram inúmeras versões preliminares da UML
para a comunidade de desenvolvedores e a resposta incrementou muitas
novas idéias que melhoraram ainda mais a linguagem.O objetivo da UML é descrever qualquer tipo de
sistema, em termos de diagramas orientados a
objetos.
6
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
UML – Unified Modeling LanguageUML – Unified Modeling LanguageUML – Unified Modeling LanguageUML – Unified Modeling Language
Principais Sistemas que utilizam a UML:
·Sistemas de Informação: Armazenar, pesquisar, editar e mostrar informações para os
usuários. – manipular banco de dados;.
· Sistemas Técnicos: Manter e controlar equipamentos técnicos como de
telecomunicações, equipamentos militares ou processos industriais;
· Sistemas Real-time Integrados: Executados em simples peças de hardware integrados a
telefones celulares, carros, alarmes etc. Estes sistemas implementam programação de baixo
nível e requerem suporte real-time;
· Sistemas Distribuídos: Distribuídos em máquinas onde os dados são transferidos facilmente
de uma máquina para outra;
· Sistemas de Negócios: descreve os objetivos, especificações (pessoas, computadores etc.),
as regras (leis, estratégias de negócios etc.), e o atual trabalho desempenhado nos processos
do negócio.
7
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Para entendermos os conceitos de Para entendermos os conceitos de orientação a objetos, vamos orientação a objetos, vamos começar com duas perguntas começar com duas perguntas fáceis: fáceis: 1ª) Olhe para os automóveis da 1ª) Olhe para os automóveis da Figura abaixo:Figura abaixo:
Para entendermos os conceitos de Para entendermos os conceitos de orientação a objetos, vamos orientação a objetos, vamos começar com duas perguntas começar com duas perguntas fáceis: fáceis: 1ª) Olhe para os automóveis da 1ª) Olhe para os automóveis da Figura abaixo:Figura abaixo:
8
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
9
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
10
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
11
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
12
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
e responda: Quais e responda: Quais características similares características similares você identificaria nesses você identificaria nesses veículos?veículos?
e responda: Quais e responda: Quais características similares características similares você identificaria nesses você identificaria nesses veículos?veículos?
13
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
2ª) Como se calcula 2ª) Como se calcula um seguro total para um seguro total para cada um desses cada um desses veículos?veículos?
2ª) Como se calcula 2ª) Como se calcula um seguro total para um seguro total para cada um desses cada um desses veículos?veículos?
14
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Pois bem, até hoje o foco da Pois bem, até hoje o foco da modelagem concentrou-se nas modelagem concentrou-se nas funcionalidades de um sistema. funcionalidades de um sistema. Módulos distintos atuavam Módulos distintos atuavam diretamente sobre as bases de diretamente sobre as bases de dados, às vezes de forma dados, às vezes de forma desordenada.desordenada.
Pois bem, até hoje o foco da Pois bem, até hoje o foco da modelagem concentrou-se nas modelagem concentrou-se nas funcionalidades de um sistema. funcionalidades de um sistema. Módulos distintos atuavam Módulos distintos atuavam diretamente sobre as bases de diretamente sobre as bases de dados, às vezes de forma dados, às vezes de forma desordenada.desordenada.
15
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Quando qualquer alteração era Quando qualquer alteração era feita nessas bases, diversos feita nessas bases, diversos módulos eram afetados. Erros módulos eram afetados. Erros advindos dessas alterações, por advindos dessas alterações, por muitas vezes, só eram muitas vezes, só eram descobertos semanas mais tarde.descobertos semanas mais tarde.
Quando qualquer alteração era Quando qualquer alteração era feita nessas bases, diversos feita nessas bases, diversos módulos eram afetados. Erros módulos eram afetados. Erros advindos dessas alterações, por advindos dessas alterações, por muitas vezes, só eram muitas vezes, só eram descobertos semanas mais tarde.descobertos semanas mais tarde.
16
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
A grande vantagem que obtemos com a orientação a objetos é o fato de podermos abstrair de uma maneira mais fiel as situações do dia-a-dia. Para alcançarmos esta facilidade precisamos mudar a forma de pensar sobre sistemas.
A grande vantagem que obtemos com a orientação a objetos é o fato de podermos abstrair de uma maneira mais fiel as situações do dia-a-dia. Para alcançarmos esta facilidade precisamos mudar a forma de pensar sobre sistemas.
17
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Esta abstração é feita por representações do mundo real, chamadas de objetos. Só precisamos voltar a praticar o conhecimento que possuíamos desde a nossa infância: identificar os objetos e seus comportamentos, o que possibilita que eles sejam categorizados.
Esta abstração é feita por representações do mundo real, chamadas de objetos. Só precisamos voltar a praticar o conhecimento que possuíamos desde a nossa infância: identificar os objetos e seus comportamentos, o que possibilita que eles sejam categorizados.
18
ObjetoObjeto
19
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
A A orientação a objetoorientação a objeto é uma abordagem para o desenvolvimento de software que organiza os problemas e a suas soluções como um conjunto de objetos distintos.
A A orientação a objetoorientação a objeto é uma abordagem para o desenvolvimento de software que organiza os problemas e a suas soluções como um conjunto de objetos distintos.
20
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Passamos a identificar os objetos Passamos a identificar os objetos por suas características e por suas características e comportamentos. Ao olharmos comportamentos. Ao olharmos uma caneta, independentemente uma caneta, independentemente de seu formato ou cor de sua de seu formato ou cor de sua tinta, conseguimos identificá-latinta, conseguimos identificá-la
Passamos a identificar os objetos Passamos a identificar os objetos por suas características e por suas características e comportamentos. Ao olharmos comportamentos. Ao olharmos uma caneta, independentemente uma caneta, independentemente de seu formato ou cor de sua de seu formato ou cor de sua tinta, conseguimos identificá-latinta, conseguimos identificá-la
21
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
22
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Na concepção de modelagem Na concepção de modelagem de sistemas, de sistemas, um objeto é um objeto é qualquer coisa existente no qualquer coisa existente no mundo realmundo real, em formato , em formato concreto ou abstrato, ou seja, concreto ou abstrato, ou seja, que exista fisicamente ou que exista fisicamente ou apenas conceitualmente.apenas conceitualmente.
Na concepção de modelagem Na concepção de modelagem de sistemas, de sistemas, um objeto é um objeto é qualquer coisa existente no qualquer coisa existente no mundo realmundo real, em formato , em formato concreto ou abstrato, ou seja, concreto ou abstrato, ou seja, que exista fisicamente ou que exista fisicamente ou apenas conceitualmente.apenas conceitualmente.
23
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
São exemplos de objetos: aluno, professor, São exemplos de objetos: aluno, professor, mesa, cadeira, caneta, automóvel, mesa, cadeira, caneta, automóvel, disciplina, estoque, avaliação, seguro, disciplina, estoque, avaliação, seguro, janela do Windows, botão, caixa de janela do Windows, botão, caixa de diálogo, etc. Isto significa que ao diálogo, etc. Isto significa que ao modelarmos um sistema baseado no modelarmos um sistema baseado no paradigma da orientação a objetos, nada paradigma da orientação a objetos, nada mais estamos fazendo do que modelar os mais estamos fazendo do que modelar os conceitos existentes em nosso cotidiano.conceitos existentes em nosso cotidiano.
São exemplos de objetos: aluno, professor, São exemplos de objetos: aluno, professor, mesa, cadeira, caneta, automóvel, mesa, cadeira, caneta, automóvel, disciplina, estoque, avaliação, seguro, disciplina, estoque, avaliação, seguro, janela do Windows, botão, caixa de janela do Windows, botão, caixa de diálogo, etc. Isto significa que ao diálogo, etc. Isto significa que ao modelarmos um sistema baseado no modelarmos um sistema baseado no paradigma da orientação a objetos, nada paradigma da orientação a objetos, nada mais estamos fazendo do que modelar os mais estamos fazendo do que modelar os conceitos existentes em nosso cotidiano.conceitos existentes em nosso cotidiano.
24
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Os objetos possuem características Os objetos possuem características ou propriedades que são seus ou propriedades que são seus atributos. Esses atributos identificam atributos. Esses atributos identificam o estado de um objeto. Um atributo é o estado de um objeto. Um atributo é uma abstração do tipo de dados ou uma abstração do tipo de dados ou estado que os objetos da classe estado que os objetos da classe possuem. Vejamos o exemplo da possuem. Vejamos o exemplo da Figura abaixo:Figura abaixo:
Os objetos possuem características Os objetos possuem características ou propriedades que são seus ou propriedades que são seus atributos. Esses atributos identificam atributos. Esses atributos identificam o estado de um objeto. Um atributo é o estado de um objeto. Um atributo é uma abstração do tipo de dados ou uma abstração do tipo de dados ou estado que os objetos da classe estado que os objetos da classe possuem. Vejamos o exemplo da possuem. Vejamos o exemplo da Figura abaixo:Figura abaixo:
25
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Atributos do objeto Joana:
Nome: Joana Souza
Endereço: Rua Santa Cecília, 1000
Sexo: Feminino
Altura: 1,75 m
Peso: 60 Kg
Estado Civil: Solteira
Cor dos olhos: verdes
Cor dos cabelos: castanhos
etc.
26
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Tipicamente, identificamos e Tipicamente, identificamos e diferenciamos objetos por seus atributos. diferenciamos objetos por seus atributos. Podemos fazer uma brincadeira: a cada Podemos fazer uma brincadeira: a cada atributo que eu relacionar, tentem atributo que eu relacionar, tentem identificar possíveis objetos. Vocês vão identificar possíveis objetos. Vocês vão perceber que ao obtermos um conjunto perceber que ao obtermos um conjunto maior de atributos, podemos mais maior de atributos, podemos mais precisamente identificar o objeto.precisamente identificar o objeto.
Tipicamente, identificamos e Tipicamente, identificamos e diferenciamos objetos por seus atributos. diferenciamos objetos por seus atributos. Podemos fazer uma brincadeira: a cada Podemos fazer uma brincadeira: a cada atributo que eu relacionar, tentem atributo que eu relacionar, tentem identificar possíveis objetos. Vocês vão identificar possíveis objetos. Vocês vão perceber que ao obtermos um conjunto perceber que ao obtermos um conjunto maior de atributos, podemos mais maior de atributos, podemos mais precisamente identificar o objeto.precisamente identificar o objeto.
27
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Vamos considerar a lista de Vamos considerar a lista de atributos: nome, endereço, data atributos: nome, endereço, data de nascimento (até agora posso de nascimento (até agora posso estar falando de um funcionário, estar falando de um funcionário, aluno ou até mesmo um animal aluno ou até mesmo um animal de estimação), especialização, de estimação), especialização, CRM. CRM.
Vamos considerar a lista de Vamos considerar a lista de atributos: nome, endereço, data atributos: nome, endereço, data de nascimento (até agora posso de nascimento (até agora posso estar falando de um funcionário, estar falando de um funcionário, aluno ou até mesmo um animal aluno ou até mesmo um animal de estimação), especialização, de estimação), especialização, CRM. CRM.
28
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Além dos atributos, os objetos possuem Além dos atributos, os objetos possuem comportamentos que modificam seu comportamentos que modificam seu estado ou prestam serviços a outros estado ou prestam serviços a outros objetos. Nesse caso, estamos falando de objetos. Nesse caso, estamos falando de suas operações. Se um funcionário possui suas operações. Se um funcionário possui o atributo Salário, este deve ser o atributo Salário, este deve ser atualizado por operações do tipo atualizado por operações do tipo Reajustar Salário.Reajustar Salário.
Além dos atributos, os objetos possuem Além dos atributos, os objetos possuem comportamentos que modificam seu comportamentos que modificam seu estado ou prestam serviços a outros estado ou prestam serviços a outros objetos. Nesse caso, estamos falando de objetos. Nesse caso, estamos falando de suas operações. Se um funcionário possui suas operações. Se um funcionário possui o atributo Salário, este deve ser o atributo Salário, este deve ser atualizado por operações do tipo atualizado por operações do tipo Reajustar Salário.Reajustar Salário.
29
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Utilizamos de forma conjunta Utilizamos de forma conjunta o conceito de métodos. Um o conceito de métodos. Um método é a implementação de método é a implementação de uma operação, ou seja, sua uma operação, ou seja, sua representação em código.representação em código.
Utilizamos de forma conjunta Utilizamos de forma conjunta o conceito de métodos. Um o conceito de métodos. Um método é a implementação de método é a implementação de uma operação, ou seja, sua uma operação, ou seja, sua representação em código.representação em código.
30
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
At r ibut os:NomeCargo:Salário:Data de Admissão:
: J orge Antônio Gerente
R$ 20.000,00 15/06/1998
Oper açõesReajustar SalárioObter Salário L íquidoObter Tempo de TrabalhoObter tempo de contribuição do I NSS
o
31
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Os métodos de uma classe manipulam somente Os métodos de uma classe manipulam somente as estruturas de dados daquela classe, ou seja, as estruturas de dados daquela classe, ou seja, não podem acessar diretamente os dados de não podem acessar diretamente os dados de outra classe. outra classe.
Os métodos de uma classe manipulam somente Os métodos de uma classe manipulam somente as estruturas de dados daquela classe, ou seja, as estruturas de dados daquela classe, ou seja, não podem acessar diretamente os dados de não podem acessar diretamente os dados de outra classe. outra classe.
32
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Um objeto possui limites nítidos Um objeto possui limites nítidos com relação ao problema em com relação ao problema em estudo. Na modelagem, quando estudo. Na modelagem, quando pensamos em um objeto, pensamos em um objeto, devemos fazê-Io dentro de um devemos fazê-Io dentro de um determinado contexto.determinado contexto.
Um objeto possui limites nítidos Um objeto possui limites nítidos com relação ao problema em com relação ao problema em estudo. Na modelagem, quando estudo. Na modelagem, quando pensamos em um objeto, pensamos em um objeto, devemos fazê-Io dentro de um devemos fazê-Io dentro de um determinado contexto.determinado contexto.
33
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Devemos abstrair as informações Devemos abstrair as informações de um objeto dentro do papel de um objeto dentro do papel que ele exercerá num que ele exercerá num determinado sistema, ou seja, determinado sistema, ou seja, seu ambiente determinará o seu ambiente determinará o limite da modelagem de cada limite da modelagem de cada objeto.objeto.
Devemos abstrair as informações Devemos abstrair as informações de um objeto dentro do papel de um objeto dentro do papel que ele exercerá num que ele exercerá num determinado sistema, ou seja, determinado sistema, ou seja, seu ambiente determinará o seu ambiente determinará o limite da modelagem de cada limite da modelagem de cada objeto.objeto.
34
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Se pensarmos em todos os atributos que Se pensarmos em todos os atributos que identificam uma pessoa, chegaremos a identificam uma pessoa, chegaremos a um número considerável. Todavia se um número considerável. Todavia se modelarmos um objeto Pessoa no papel modelarmos um objeto Pessoa no papel de um aluno, não precisaremos incluir de um aluno, não precisaremos incluir atributos do tipo: altura, peso, cor dos atributos do tipo: altura, peso, cor dos olhos, cor da pele e muitos outros.olhos, cor da pele e muitos outros.
Se pensarmos em todos os atributos que Se pensarmos em todos os atributos que identificam uma pessoa, chegaremos a identificam uma pessoa, chegaremos a um número considerável. Todavia se um número considerável. Todavia se modelarmos um objeto Pessoa no papel modelarmos um objeto Pessoa no papel de um aluno, não precisaremos incluir de um aluno, não precisaremos incluir atributos do tipo: altura, peso, cor dos atributos do tipo: altura, peso, cor dos olhos, cor da pele e muitos outros.olhos, cor da pele e muitos outros.
35
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Todavia, se estivermos Todavia, se estivermos falando do aluno de uma falando do aluno de uma escola para modelos e escola para modelos e manequins, esses atributos manequins, esses atributos serão relevantes.serão relevantes.
Todavia, se estivermos Todavia, se estivermos falando do aluno de uma falando do aluno de uma escola para modelos e escola para modelos e manequins, esses atributos manequins, esses atributos serão relevantes.serão relevantes.
36
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
ClassesClasses
Quando identificamos características e Quando identificamos características e operações similares em objetos distintos, operações similares em objetos distintos, estamos realizando sua classificação, ou seja, estamos realizando sua classificação, ou seja, identificando classes. identificando classes. Uma classe é a representação de um conjunto Uma classe é a representação de um conjunto de objetos que compartilham a mesma de objetos que compartilham a mesma estrutura de atributos, operações e estrutura de atributos, operações e relacionamentos, dentro de um mesmo relacionamentos, dentro de um mesmo contexto (semântica).contexto (semântica).
ClassesClasses
Quando identificamos características e Quando identificamos características e operações similares em objetos distintos, operações similares em objetos distintos, estamos realizando sua classificação, ou seja, estamos realizando sua classificação, ou seja, identificando classes. identificando classes. Uma classe é a representação de um conjunto Uma classe é a representação de um conjunto de objetos que compartilham a mesma de objetos que compartilham a mesma estrutura de atributos, operações e estrutura de atributos, operações e relacionamentos, dentro de um mesmo relacionamentos, dentro de um mesmo contexto (semântica).contexto (semântica).
37
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Assim, uma classe especifica a Assim, uma classe especifica a estrutura de um objeto sem informar estrutura de um objeto sem informar quais serão seus valores. Em quais serão seus valores. Em contrapartida, um objeto contrapartida, um objeto corresponde à ocorrência (instância) corresponde à ocorrência (instância) de uma classe num determinado de uma classe num determinado momento. Por exemplo: momento. Por exemplo:
Assim, uma classe especifica a Assim, uma classe especifica a estrutura de um objeto sem informar estrutura de um objeto sem informar quais serão seus valores. Em quais serão seus valores. Em contrapartida, um objeto contrapartida, um objeto corresponde à ocorrência (instância) corresponde à ocorrência (instância) de uma classe num determinado de uma classe num determinado momento. Por exemplo: momento. Por exemplo:
38
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Obj et o J oanaNomeSexo:Data de Nascimento:Estado Civi l:
: J oana Souza Feminino
01/03/1978 Solteira
Cl asse pessoaNomeSexo
Data de NascimentoEstado civi l
É do tipo
39
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Num sistema, trabalhamos com as Num sistema, trabalhamos com as instâncias de uma classe (os objetos instâncias de uma classe (os objetos criados a partir desta classe). Os criados a partir desta classe). Os dados são carregados nas instâncias. dados são carregados nas instâncias. Para exemplificar, pense num Para exemplificar, pense num formulário de inscrição.formulário de inscrição.
Num sistema, trabalhamos com as Num sistema, trabalhamos com as instâncias de uma classe (os objetos instâncias de uma classe (os objetos criados a partir desta classe). Os criados a partir desta classe). Os dados são carregados nas instâncias. dados são carregados nas instâncias. Para exemplificar, pense num Para exemplificar, pense num formulário de inscrição.formulário de inscrição.
40
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
A secretária de uma A secretária de uma empresa cuidadosamente empresa cuidadosamente desenha esse formulário desenha esse formulário para ser preenchido pelos para ser preenchido pelos clientes, criando uma clientes, criando uma matriz. matriz.
A secretária de uma A secretária de uma empresa cuidadosamente empresa cuidadosamente desenha esse formulário desenha esse formulário para ser preenchido pelos para ser preenchido pelos clientes, criando uma clientes, criando uma matriz. matriz.
41
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Todavia, o que lhes é entregue é Todavia, o que lhes é entregue é uma xerox dessa matriz e não a uma xerox dessa matriz e não a original. O mesmo acontece com as original. O mesmo acontece com as classes e objetos. As classes classes e objetos. As classes funcionam como matrizes. Os funcionam como matrizes. Os objetos (suas instâncias) é que objetos (suas instâncias) é que possuem vida própria. Sendo assim, possuem vida própria. Sendo assim, temos, por exemplo:temos, por exemplo:
Todavia, o que lhes é entregue é Todavia, o que lhes é entregue é uma xerox dessa matriz e não a uma xerox dessa matriz e não a original. O mesmo acontece com as original. O mesmo acontece com as classes e objetos. As classes classes e objetos. As classes funcionam como matrizes. Os funcionam como matrizes. Os objetos (suas instâncias) é que objetos (suas instâncias) é que possuem vida própria. Sendo assim, possuem vida própria. Sendo assim, temos, por exemplo:temos, por exemplo:
42
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Classe Objetos
Funcionário Funcionária Ana Cristina
Funcionário Gustavo
Empresa Empresa Casa de Festas ABC
Empresa Software Ltda
Veículo Veículo Corolla
Veículo Vectra
43
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Uma classe pode ter qualquer Uma classe pode ter qualquer número de atributos ou número de atributos ou mesmo nenhum atributo. Da mesmo nenhum atributo. Da mesma forma, pode ter mesma forma, pode ter qualquer número de qualquer número de operações ou mesmo operações ou mesmo nenhuma operação.nenhuma operação.
Uma classe pode ter qualquer Uma classe pode ter qualquer número de atributos ou número de atributos ou mesmo nenhum atributo. Da mesmo nenhum atributo. Da mesma forma, pode ter mesma forma, pode ter qualquer número de qualquer número de operações ou mesmo operações ou mesmo nenhuma operação.nenhuma operação.
44
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Classe Conta em um sistema bancário
Nome
Atributos
Métodos
45
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Resumindo Classe e Objeto
46
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
47
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
48
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
49
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
A interface serve como intermediária A interface serve como intermediária entre a classe e o mundo externo, entre a classe e o mundo externo, protegendo os usuários dessa classe protegendo os usuários dessa classe de quaisquer alterações futuras. As de quaisquer alterações futuras. As alterações na classe são feitas de alterações na classe são feitas de modo transparente para o usuário.modo transparente para o usuário.
A interface serve como intermediária A interface serve como intermediária entre a classe e o mundo externo, entre a classe e o mundo externo, protegendo os usuários dessa classe protegendo os usuários dessa classe de quaisquer alterações futuras. As de quaisquer alterações futuras. As alterações na classe são feitas de alterações na classe são feitas de modo transparente para o usuário.modo transparente para o usuário.
50
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
51
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
O conceito de encapsulamento é visto O conceito de encapsulamento é visto também de outro ângulo. Determina que também de outro ângulo. Determina que os atributos só podem ser acessados e os atributos só podem ser acessados e atualizados pelas operações do objeto. atualizados pelas operações do objeto. Todavia, mais importante que o conceito Todavia, mais importante que o conceito é levar em conta que atendemos o é levar em conta que atendemos o encapsulamento quando preservamos encapsulamento quando preservamos informações e operações de cunho informações e operações de cunho privado, do conhecimento externo.privado, do conhecimento externo.
O conceito de encapsulamento é visto O conceito de encapsulamento é visto também de outro ângulo. Determina que também de outro ângulo. Determina que os atributos só podem ser acessados e os atributos só podem ser acessados e atualizados pelas operações do objeto. atualizados pelas operações do objeto. Todavia, mais importante que o conceito Todavia, mais importante que o conceito é levar em conta que atendemos o é levar em conta que atendemos o encapsulamento quando preservamos encapsulamento quando preservamos informações e operações de cunho informações e operações de cunho privado, do conhecimento externo.privado, do conhecimento externo.
52
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
53
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
54
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
No desenho anterior temos uma classe No desenho anterior temos uma classe mais genérica (mais genérica (Conta_ComumConta_Comum), chamada ), chamada de classe-mãe ou superclasse, contendo de classe-mãe ou superclasse, contendo atributos que servem a qualquer atributos que servem a qualquer situação. A partir dessa classe criamos situação. A partir dessa classe criamos outras mais específicas outras mais específicas (Conta_Especial e (Conta_Especial e Conta_Poupança)Conta_Poupança), chamadas classes-, chamadas classes-filhas ou subclasses.filhas ou subclasses.Estamos diante dos conceitos de Estamos diante dos conceitos de generalização e especialização.generalização e especialização.
No desenho anterior temos uma classe No desenho anterior temos uma classe mais genérica (mais genérica (Conta_ComumConta_Comum), chamada ), chamada de classe-mãe ou superclasse, contendo de classe-mãe ou superclasse, contendo atributos que servem a qualquer atributos que servem a qualquer situação. A partir dessa classe criamos situação. A partir dessa classe criamos outras mais específicas outras mais específicas (Conta_Especial e (Conta_Especial e Conta_Poupança)Conta_Poupança), chamadas classes-, chamadas classes-filhas ou subclasses.filhas ou subclasses.Estamos diante dos conceitos de Estamos diante dos conceitos de generalização e especialização.generalização e especialização.
55
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Você deve estar se perguntando: e Você deve estar se perguntando: e os atributos da superclasse, como os atributos da superclasse, como serão associados à subclasse? É serão associados à subclasse? É simples: pelo mecanismo de simples: pelo mecanismo de herança, presente nas linguagens herança, presente nas linguagens orientadas a objeto. Dizemos que a orientadas a objeto. Dizemos que a classe-filha tem como origem outra classe-filha tem como origem outra classe.classe.
Você deve estar se perguntando: e Você deve estar se perguntando: e os atributos da superclasse, como os atributos da superclasse, como serão associados à subclasse? É serão associados à subclasse? É simples: pelo mecanismo de simples: pelo mecanismo de herança, presente nas linguagens herança, presente nas linguagens orientadas a objeto. Dizemos que a orientadas a objeto. Dizemos que a classe-filha tem como origem outra classe-filha tem como origem outra classe.classe.
56
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Desta forma, pela herança, Desta forma, pela herança, codificamos apenas os atributos e codificamos apenas os atributos e operações específicos da classe operações específicos da classe descendente, e fazemos com que descendente, e fazemos com que esta receba, automaticamente, e esta receba, automaticamente, e sem qualquer esforço, os atributos e sem qualquer esforço, os atributos e operações de todas as classes operações de todas as classes ancestrais.ancestrais.
Desta forma, pela herança, Desta forma, pela herança, codificamos apenas os atributos e codificamos apenas os atributos e operações específicos da classe operações específicos da classe descendente, e fazemos com que descendente, e fazemos com que esta receba, automaticamente, e esta receba, automaticamente, e sem qualquer esforço, os atributos e sem qualquer esforço, os atributos e operações de todas as classes operações de todas as classes ancestrais.ancestrais.
57
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
Pela herança podemos estabelecer Pela herança podemos estabelecer relações entre classes, permitindo o relações entre classes, permitindo o compartilhamento de atributos e compartilhamento de atributos e operações semelhantes. Assim, temos a operações semelhantes. Assim, temos a flexibilidade de criar uma nova classe, flexibilidade de criar uma nova classe, incluindo somente as diferenças com incluindo somente as diferenças com relação à classe mais genérica. relação à classe mais genérica.
Pela herança podemos estabelecer Pela herança podemos estabelecer relações entre classes, permitindo o relações entre classes, permitindo o compartilhamento de atributos e compartilhamento de atributos e operações semelhantes. Assim, temos a operações semelhantes. Assim, temos a flexibilidade de criar uma nova classe, flexibilidade de criar uma nova classe, incluindo somente as diferenças com incluindo somente as diferenças com relação à classe mais genérica. relação à classe mais genérica.
58
Conceitos de Orientação a ObjetoConceitos de Orientação a Objeto
59
Material desenvolvido pelos professores:Material desenvolvido pelos professores:
Professor Msc Rafael SoaresProfessor Msc Rafael Soares
Professor Msc Sérgio SigristProfessor Msc Sérgio Sigrist
Msc Wladimir da CostaMsc Wladimir da Costa