curso : introdução orientação a objetos

14
Introdução Conceitos básicos Programação Orientada a Objetos

Upload: danielrpgj30

Post on 26-Jun-2015

16.433 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Curso : Introdução Orientação a Objetos

Introdução Conceitos básicos

Programação Orientada a Objetos

Page 2: Curso : Introdução Orientação a Objetos

Introdução

Page 3: Curso : Introdução Orientação a Objetos

Introdução• Uma abordagem típica usada no desenvolvimento de programas

complexos consiste em decompor os programas em diversos módulos e dividir cada módulo em diversas funções. Cada função é responsável por parte da solução do problema. Esta abordagem de desenvolvimento se baseia na decomposição funcional. Embora a decomposição funcional tenha sido amplamente utilizada nos últimos anos, apresenta algumas deficiências tais como o fraco acoplamento entre dados e funções.

• A orientação a objetos, também conhecida como Programação Orientada a Objetos (POO) ou ainda em inglês Object-Oriented Programming (OOP) é um paradigma de análise, projeto e programação de sistemas de software baseado na composição e interação entre diversas unidades de software chamadas de objetos. Em outras palavras, os softwares são compostos por módulos (objetos) cujos dados e funções são fortemente acoplados.

Page 4: Curso : Introdução Orientação a Objetos

Conceitos Básicos

• Os principais conceitos de orientação a objetos são: classes, objetos, estado, comportamento, encapsulamento, mensagens e abstração.

Page 5: Curso : Introdução Orientação a Objetos

Classes• Em orientação a objeto, uma classe é uma estrutura que abstrai um

conjunto de objetos com características similares. Uma classe define o comportamento de seus objetos através de métodos e os estados possíveis destes objetos através de atributos. Em outros termos, uma classe descreve os serviços providos por seus objetos e quais informações eles podem armazenar.

Page 6: Curso : Introdução Orientação a Objetos

Objetos• No conceito de sistemas orientados a objetos, um objeto representa uma entidade que pode ser

física, conceitual ou de software. É uma abstração de algo que possui fronteira definida e significado para a aplicação.

• Dentro da terminologia das linguagens de programação, um objeto passa a existir a partir de um "molde". Este "molde", definido como classe do objeto, define os limites, seus atributos e suas funções. Podem ser criados vários objetos ou instâncias de uma classe.

• A vantagem do uso de objetos na programação é que estes permitem utilizar funções e atributos conhecidos (interface) sem necessidade de conhecimento sobre sua estrutura interna (encapsulamento). Para ilustrar: utilizamos o objeto "liquidificador" pressionando seus botões, mas não precisamos saber como funciona seu "motor". Se for necessário trocar o "motor", não será necessário alterar o modo de usá-lo.

• Objeto também considerado como uma instância de uma classe, quando um objeto é criado ele precisa ser inicializado, ou seja, para uma classe podemos ter vários objetos.

Page 7: Curso : Introdução Orientação a Objetos

Estado e comportamento• Uma das principais características da orientação a objeto é o forte acoplamento entre dados e

funções. • O estado de um objeto é representado por seus dados ou mais especificamente atributos. • O comportamento de um objeto é representado por seus métodos ou mais especificamente subs

ou functions.• Como exemplo tempos a classe Mamífero que define que um mamífero(objeto) possui altura, cor e

peso(atributos) e pode se comunicar (comportamento) com outros mamíferos(objetos).

Page 8: Curso : Introdução Orientação a Objetos

EncapsulamentoEncapsulamento é justamente o empacotamento dos atributos e dos métodos numa mesma classe. Isto protege os dados contra corrupção, pois somente os métodos da classe poderão alterar as estruturas de dados desta classe em questão, ilustradas pela figura.

Page 9: Curso : Introdução Orientação a Objetos

Mensagem• Os objetos se comunicam entre si através de mensagem. A mensagem

especifica que um determinado método de um objeto necessita utilizar um ou mais métodos de outro objeto. Podem ser passados objetos como parâmetro, e, opcionalmente, algum resultado ou valor pode ser retornado. As mensagens especificam que os métodos devem ser executados, não como estes métodos devem ser executados.

• Quando um objeto A quer que o objeto B faça uma ação, o objeto A, envia uma mensagem ao objeto B: “A pede para B fazer Ação “ = “A pede para B executar método 1”

Page 10: Curso : Introdução Orientação a Objetos

Abstração

• Abstração é o exame seletivo de determinados aspectos de um problema. O objetivo da abstração é isolar os aspectos que sejam importantes para algum propósito e suprimir os que não o forem. A abstração deve sempre visar a um propósito, porque este determina o que é e o que não é importante.

Page 11: Curso : Introdução Orientação a Objetos

• Como exemplo conceitual de abstração, poderíamos analisar o mapa do mundo para a china antiga. Para eles, na época, o mundo estava sob seus domínios.

• Percebemos que o mapa abstrai muitos detalhes do mundo real.

Page 12: Curso : Introdução Orientação a Objetos

• Abstração é o processo de extrair as características essenciais de um objeto real. A abstração é necessária para se ter um modelo fiel da realidade sobre a qual se possa operar. O conjunto de características resultante da abstração forma um tipo de dados abstrato com informações sobre seu estado e comportamento.

• A abstração nem sempre produz os mesmos resultados, depende do contexto onde é utilizada. No exemplo do mapa mundial, para a china antiga o que vale seria o mapa antigo e para os geógrafos do mundo atual o que vale seria o mapa mundi atual, realista e detalhado.

Page 13: Curso : Introdução Orientação a Objetos

Exemplo de abstração• No exemplo abaixo, todo a característica (atributos) e comportamento(métodos) comum a todos os mamíferos foi

abstraído na classe abstrata Mamífero. • Classe abstrata não pode ser instanciada, em outras palavras não se pode criar objetos diretamente de Mamífero.

A classe abstrata serve apenas para encapsular os métodos e atributos comuns a todos os mamíferos.• A partir da classe abstrata criamos as classes concretas, que podem ser instanciadas. São classes que representam

um mamífero específico, que além de conter todo o comportamento e característica de um mamífero, possui seus próprios. Utilizamos a herança na orientação a objetos para estruturar esta relação.

Page 14: Curso : Introdução Orientação a Objetos

Polimorfismo• o polimorfismo permite que referências de tipos de classes mais abstratas

representem o comportamento das classes concretas que referenciam. Assim, um mesmo método pode apresentar várias formas, de acordo com seu contexto. O polimorfismo é importante pois permite que a semântica de uma interface seja efetivamente separada da implementação que a representa. O termo polimorfismo é originário do grego e significa "muitas formas" (poli = muitas, morphos = formas).