14
Programação Orientada a Objetos DEFINIÇÕES

POO Aula01 Conceitos

  • Upload
    jessica

  • View
    212

  • Download
    0

Embed Size (px)

DESCRIPTION

conceito

Citation preview

Page 1: POO Aula01 Conceitos

Programação Orientada a ObjetosDEFINIÇÕES

Page 2: POO Aula01 Conceitos

Motivação

⑨ A programação Orientada a objetos (POO):

⑨ É um paradigma de programação

⑨ traz para o desenvolvimento de programas conceitos mais semelhantes ao que encontramos no nosso dia a dia, tornando a tarefa programação mais intuitiva;

⑨ Objeto:

⑨ qualquer artefato sobre o qual se pode armazenar informações e efetuar tarefas.

Page 3: POO Aula01 Conceitos

Programação Orientada a Objetos

⑨ Mais formalmente:

⑨ O termo orientação a objetos pressupõe uma organização de software em termos de coleção de objetos discretos incorporando estrutura e comportamento próprios.

⑨ Esta abordagem de organização é essencialmente diferente do desenvolvimento tradicional de software, onde estruturas de dados e rotinas são desenvolvidas de forma apenas fracamente acopladas.

Page 4: POO Aula01 Conceitos

Programação Orientada a Objetos

⑨ Histórico

⑨ Termo criado por Alan Key, autor da linguagem de programação SmallTalk.

⑨ A primeira linguagem a usar os conceitos de OO Simula76, criada por Ole Johan Dahl e Kristen Nygaard em 1967.

⑨ Alguns exemplos de linguagens modernas utilizadas por grandes empresas em todo o mundo que adotaram essas idéias: Java, C#, C++, Object Pascal (Delphi), Ruby, Python, Lisp, PHP...

⑨ A maioria delas adota as idéias parcialmente, dando espaço para o antigo modelo procedural de programação, como acontece no C++ e no Object Pascal

⑨ Este tipo de linguagem segue a idéia de utilizar uma linguagem previamente existente como base e adicionar novas funcionalidades a ela.

⑨ Outras são mais "puras", sendo construidas do zero focando-se sempre nas idéias por trás da orientação a objetos como é o caso das linguagens SmallTalk, JAVA e Python onde TUDO é orientado a objetos.

Page 5: POO Aula01 Conceitos

Conceitos Básicos

⑨ A filosofia da Orientação a Objetos

⑨ A POO foi criada para tentar aproximar o mundo real do mundo virtual:

⑨ a idéia fundamental é tentar simular o mundo real dentro do computador.

⑨ Na POO o programador é responsável por moldar o mundo dos objetos e explicar para estes objetos como eles devem interagir entre si.

⑨ Os objetos "conversam" uns com os outros através do envio de mensagens, e o papel principal do programador é especificar quais serão as mensagens que cada objeto pode receber, e também qual a ação que aquele objeto deve realizar ao receber aquela mensagem em específico.

Page 6: POO Aula01 Conceitos

Conceitos Básicos

⑨ Classes, atributos e métodos

⑨ Uma classe é uma abstração que define um tipo de objeto 

⑨ Os Atributos são variáveis que estarão dentro de cada um dos objetos desta classe e podem ser de qualquer tipo.

⑨ Os Métodos definem que tipo de ações esse tipo de objeto é capaz de realizar

Page 7: POO Aula01 Conceitos

Conceitos Básicos

⑨ Uma analogia

⑨ Classes na Biologia: um animal é uma classe, e tem suas características:

⑨ é um ser vivo capaz de pensar

⑨ precisa se alimentar para viver

⑨ O Ser Humanos e os pássaros são sub-classes de animais: tem todas as características de um animal, mas também tem algumas peculiaridades suas

⑨ Uma classe não tem vida. Os seres pertencentes a esta classe é que possuem as características que os indica como participantes desta classe.

⑨ O cachorro é um Objeto (ou instância) da classe Cachorro.

⑨ A classe Cachorro não pode latir, não pode fazer xixi no poste, ela apenas especifica e define o que é um cachorro.

Page 8: POO Aula01 Conceitos

Conceitos Básicos

⑨ Uma analogia

⑨ A criação de uma nova Classe é dividida em duas partes: os seus atributos e os seus métodos.

⑨ Atributos:

⑨ a classe Cachorro poderá ter o atributo nome que será do tipo String. Assim, cada Objeto desta classe terá uma variável própria chamada nome, que poderá ter um valor qualquer

⑨ Métodos:

⑨ Os objetos se comunicam através de mensagens. Quando um objeto desta classe receber uma mensagem de algum outro objeto contendo o nome de um método, a ação correspondente a este método será executada.

Page 9: POO Aula01 Conceitos

Exemplo

⑨ A classe carro

⑨ Atributos

⑨ Marca

⑨ Modelo

⑨ Cor

⑨ Métodos

⑨ Acelerar

⑨ Frear

⑨ Travar portas

Page 10: POO Aula01 Conceitos

Conceitos Básicos

⑨ Construtores

⑨ Um construtor é um método com uma função especial: ele serve para inicializar os atributos e é executado automaticamente sempre que você cria um novo objeto.

⑨ Quando você especifica os atributos de uma classe, você apenas diz ao sistema algo como "objetos desta classe Pessoa vão ter uma variável chamada Nome que é do tipo String, uma variável chamada idade que é do tipo inteiro, etc, etc".

⑨ Mas estas variáveis não são inicializadas, elas só serão criadas no construtor. 

⑨ Normalmente, a sintaxe é algo parecido com isto:

⑨ ObjetoJoao = new Pessoa( "João", 13 );

Page 11: POO Aula01 Conceitos

Destrutores

⑨ Destrutor:

⑨ É um método que é chamado quando um objeto da classe encerra-se.

⑨ São usados para eliminar quaisquer variáveis dinamicamente alocadas pelo objeto.

⑨ Podem executar também diversas outras tarefas de “limpeza”.

⑨ Em C++ o nome de um destrutor consiste do til (~), seguido pelo nome da classe.

Page 12: POO Aula01 Conceitos

Herança

⑨ Classes na Biologia:⑨ Um ser humano é um animal, mas possui algumas características próprias.

⑨ Para representar estas características próprias mantendo as características da classe animal utilizamos a Herança.

⑨ Classe x Subclasse⑨ Uma classe pode ampliar as características de outra classe, estendendo-a.

⑨ Desta forma, a classe SerHumano será uma especialização (ou subclasse) da classe Animal.

⑨ A classe Animal seria a classe pai da serHumano, e logicamente, a classe SerHumano seria a classe filha da Animal.

⑨ Uma classe pode sempre ter vários filhos, mas normalmente as linguagens de programação orientadas a objetos exigem que cada classe filha tenha apenas uma classe pai.

⑨ Algumas linguagens permitem que uma classe herde as características de varias classes (herança múltipla)

Page 13: POO Aula01 Conceitos

Polimorfismo

⑨ Muitas formas:

⑨ Um dos conceitos mais “difíceis” de entender na OO.

⑨ Vem da junção de 2 termos gregos:

⑨ Poli – Muito

⑨ Morfo – Forma

⑨ Na orientação a objetos:

⑨ Um mesmo tipo de objeto, sob certas condições, pode realizar ações diferentes ao receber uma mesma mensagem

⑨ Ou seja:

⑨ Apenas olhando o código fonte não sabemos exatamente qual será a ação tomada pelo sistema, sendo que o próprio sistema é quem decide qual método será executado, dependendo do contexto durante a execução do programa.

Page 14: POO Aula01 Conceitos

Bibliografia

⑨ Savitch, Walter – C++ Absoluto, Addison Wesley, 2004