48
Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Embed Size (px)

Citation preview

Page 1: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

• TÉCNICAS DE PROGRAMAÇÃO II

• Prof. Marcelo West

Page 2: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Conteúdo:

•Orientação a Objetos

Page 3: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Histórico

•SIMULA

▫Anos 60 •  

▫Utilizada para simulações •  

▫Conceitos de Classe e SubClasse

Page 4: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•SMALLTALK •  

▫Anos 70 •  

▫Desenvolvida pela XEROX •  

▫Primeira linguagem orientada a objetos de fato

•  ▫Cada elemento do SMALLTALK é tratado como

um objeto

Page 5: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Analogia Biológica•  •Alan Kay, •  

▫Um dos pais do paradigma da orientação a objetos

•  ▫Analogia biológica

Page 6: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Como seria um sistema de software que funcionasse como um ser vivo?

• •Cada “célula” interagiria com

outras células através do envio de mensagens para realizar um objetivo comum

• 

Page 7: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Adicionalmente, cada célula se comportaria como uma unidade autônoma

•  •Construir um sistema de software a

partir de agentes autónomos que interagem entre si

Page 8: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Princípios da Orientação a Objetos•  •Qualquer coisa é um objeto •  •Objetos realizam tarefas através da

troca de mensagens com outros objetos

Page 9: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Cada objeto pertence a uma determinada classe

•  •Uma classe agrupa objetos similares •  •A classe define as características e

comportamento associado ao objeto

Page 10: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Programação Orientação a Objetos•  •  •Sistema de software como um conjunto

de agentes interconectados •  •Agentes = Objetos

Page 11: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Cada objeto é responsável por realizar tarefas específicas

•  •É através da interação entre objetos que

uma tarefa computacional é realizada

Page 12: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

• Linguagens Orientadas a Objetos•  • Simula•  • Smalltalk•  • C++•  • Object Pascal•  • Java•  • .NET

Page 13: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

Page 14: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Um sistema Orientado a Objetos é uma simulação de um cenário real (vida) ou fictício (filme)

Page 15: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Para construir sistemas Orientados a Objetos é necessário entender os conceitos por trás do paradigma

Page 16: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

• Objeto•  

•  • Unidade que utilizamos para representar

abstrações em um sistema computacional •  

• No mundo real objeto é tudo que podemos tocar

•  • No mundo imaginário um objeto é tudo

que podemos representar

Page 17: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Objeto• •A interação entre estes objetos

formam grupo de objetos mais complexos que agrupado a outros grupos de objetos complexos dão origem ao sistemas reais, como por exemplo o funcionamento de um carro

Page 18: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Características dos Objetos• •Único • •Possui atributos que definem caraterísticas e/ou estado

Page 19: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Possuem capacidade de realizar ações que chamamos de métodos ou funções

Page 20: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Normalmente se diz que um objeto é uma instância de uma Classe.

O que é uma Classe ?

Page 21: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Classe•  •Estrutura (molde) que define os atributos e/ou estados de um conjunto de objetos com características similares.

Page 22: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

• Define o comportamento de seus objetos (ações que o objeto pode fazer) através de métodos.

• • Descreve os serviços (ações) providos

por seus objetos

• Quais informações eles podem armazenar

Page 23: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Atributos de uma Classe• •Caraterísticas e/ou estado de uma

classe • •Após a classe ser instanciada em um

objeto os atributos vão receber valores (caraterísticas e/ou estados) que definem o objeto

Page 24: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Métodos de uma Classe•  •Conjunto de ações que um determinado objeto pode executar

• •Definem o que um objeto pode fazer

Page 25: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•São acionados por outros objetos

• ▫Os objetos se comunicam através de métodos

• ▫Troca de mensagens

Page 26: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Construtor da Classe• • • Método especial definido na classe e executado

no momento que o objeto é instanciado • • Diferente de outro método pois não possui

retorno • •Deve ter o mesmo nome da classe.

Page 27: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Pode receber parâmetros • ▫Normalmente utilizados para inicializar os valores dos atributos do objeto

Page 28: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Para representar classes e objetos em modelos computacionais podemos utilizar uma notação chamada UML

Page 29: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•UML• •Unified Modeling Language • •Linguagem para representação de modelos visuais com um significado especifico e padronizado

Page 30: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•UML não é uma linguagem de programação • • Os modelos são representados através de

diagramas que possuem semântica própria

•  O diagrama que representa a descrição das classes é o Diagrama de Classes

Page 31: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Estereótipo de uma Classe em UML•  •  

Page 32: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

Page 33: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

Page 34: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

Page 35: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

Page 36: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

Page 37: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Abstração• •  Representa as características que devem

conter em uma classe para atender a um determinado problema

• • Somente as características necessárias para

atender a um determinado problema • • Representação de um determinado ponto de

vista ou abstração do problema

Page 38: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Para desenvolver aplicações O.O. é necessário identificar os objetos na vida real, extrair a classe que aquele objeto pertence e selecionar os atributos e métodos que serão necessários levando em consideração o modelo computacional que está sendo desenvolvido

Page 39: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Associações•   • Forma como uma classe se relaciona com outra

classe

• Uma classe pode conter atributos que geram instâncias de outra classe

•  Uma classe pode conter outra classe como atributo

•  Quando isto ocorre dizemos que uma classe possui outra classe associada a ela

Page 40: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

Page 41: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

Page 42: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Encapsulamento• •  •Separar o programa em partes, tornando

cada parte mais isolada possível uma da outra

• •A ideia é tornar o software mais flexível,

fácil de modificar e de criar novas implementações

Page 43: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Permite utilizar o objeto de uma classe sem necessariamente conhecer sua implementação

• •Protege o acesso direto aos atributos de

uma instância fora da classe onde estes foram criados

Page 44: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Uma grande vantagem do encapsulamento é que toda parte encapsulada pode ser modificada sem que os usuários da classe em questão sejam afetados

Page 45: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

• Herança•  •  • Capacidade que uma classe tem de herdar as

características e comportamentos de outra classe •  • Classe pai é chamada de superclasse e a filha de

subclasse •  • Em Java só é permitido herdar de uma única classe,

ou seja, não permite herança múltipla

Page 46: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•O objetivo da herança é especializar o entendimento de uma classe criando novas características e comportamentos que vão além da superclasse

Page 47: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG

•Generalização

•Ao mesmo tempo que a especialização amplia o entendimento de uma classe, a generalização vai no sentido inverso e define um modelo menos especializado e mais genérico

Page 48: Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG TÉCNICAS DE PROGRAMAÇÃO II Prof. Marcelo West

Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG