Upload
internet
View
108
Download
6
Embed Size (px)
Citation preview
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
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
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
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
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
•
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
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
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
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
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
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
Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG
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)
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
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
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
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
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
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 ?
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.
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
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
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
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
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.
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
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
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
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
Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG
•Estereótipo de uma Classe em UML• •
Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG
Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG
Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG
Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG
Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG
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
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
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
Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG
Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG
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
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
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
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
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
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
Instituto Federal de Educação, Ciência e Tecnologia do Norte de Minas Gerais - IFNMG