Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Linguagens de Programação - POO

Grupo Xibombo
by

Franck Bellemain

on 12 July 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Linguagens de Programação - POO

Linguagens de Programacao
Orientadas a Objectos
Atributo
Os atributos definem as características dos objetos

Ex.: a classe Carros tem os Atributos Seguro, Matricula, Ano, etc...
Métodos e comportamento

Definem o comportamento dos objetos, tendo os nomes normalmente definidos por verbos. Para a classe Carro, por exemplo, podem haver os métodos Andar, Parar e Buzinar.
POO
- A evolução
POO
Conteúdos a Falar:
- Estrutura em Árvore
- Encapsulamento e Ocultação
- Herança e Polimorfismo
- Classes abstratas e Métodos abstratos
- Objetos, métodos, comportamentos e instâncias
Objetivos específicos:

- Identificar as diferenças entre uma Linguagem Estruturada e uma Linguagem Orientada por Objetos

- Compreender o conceito de herança e polimorfismo

- Adquirir a noção de objetos e sua classificação

- Adquirir as noções de classe, tipo, métodos, comportamentos e instâncias

- Representar esquematicamente uma classe

- Compreender o conceito de encapsulamento de dados
Vamos começar pelo mais simples....
Programação estruturada
Programação estruturada, desenvolvida por Michael A. Jackson no seu livro "Principles of Program Design" de 1975, é uma forma de programação de computadores que diz que todos os programas possíveis podem ser reduzidos a apenas três estruturas: sequência, decisão e interação
•Estruturas de sequência: Onde uma tarefa é executada após a outra, linearmente.
•Estruturas de decisão: Onde, a partir de um teste lógico, determinado trecho de código é excutado, ou não.
•Estruturas de iteração: Onde, a partir de um teste lógico, determinado trecho de código é repetido por um número finito de vezes.
O termo Programação Orientada a Objetos foi criado por Alan Kay, autor da linguagem de programação Smalltalk.

A POO foi criada para tentar aproximar o mundo real do mundo virtual: a ideia fundamental é tentar simular o mundo real dentro do computador, por isso é que usa objectos. Desta forma, fica a cargo do programador modelar objetos e a interação entre eles.
Essa modelagem leva em consideração alguns conceitos, entre os principais, pode-se citar:
• Classe

• Atributos

• Métodos

• Abstração

• Encapsulamento

• Associação

• Herança

• Polimorfismo
Programação Orientada a Objectos
P O O
Desvantagens
Vantagens
Desvantagens



• Ainda se foca em como a tarefa deve ser feita e não em o que deve ser feito.

• Tende a gerar códigos confusos, onde tratamento dos dados são misturados com o comportamento do programa.
Vantagens



• Oferece um melhor controlo sobre o fluxo de execução do código, quando comparada com a programação imperativa.

• É fácil de se entender, sendo usada em cursos introdutórios de programação.
Vantagens
Desvantagens
Desvantagens

•Não possui o mesmo desempenho de códigos estruturados similares.

•Os conceitos são de difícil compreensão se comparados aos conceitos da Programação estruturada
Vantagens

•Uma melhor organização do código.

•Contribui para o reaproveitamento de código.
Xavier Lima
Ricardo Silva
11º E
TIG
Programaçao
Ano
Matricula
Carro
Abstração
É a habilidade de se concentrar nos principais aspectos de um grupo de objetos, em vez de se preocupar com as suas especificações.

Ex.: Para a classe Carros são definidas as principais características comuns à maioria dos carros sem que haja preocupação especial com objetos muito específicos e, por conseguinte, pouco comuns (e.x. carros com GPS, Airbag,etc...).
Encapsulamento
Tipicamente os limitadores de acesso são:

•públicos (public) - o membro pode ser acedido por qualquer classe. Os membros públicos de uma classe definem sua interface;

•protegidos(protected) - o membro pode ser acedido apenas pela própria classe e suas sub-classes;

•privados (private) - o membro pode ser acedido apenas pela própria classe;

ATENÇÃO

Cada linguagem de programação pode possuir limitadores de acesso próprios.
Associação
É a habilidade pela qual um objeto utiliza recursos de outro.

Por exemplo: Motor é parte de um Carro.
Herança
Este é um dos principais conceitos da POO.

A herança é a partilha de atributos e operações entre classes com base em relações hierárquicas. Ela é usada na intenção de reaproveitar código ou comportamento generalizado ou especializar operações ou atributos.
É a capacidade de criar subclasses a partir de uma superclasse. Essas subclasses herdam, então, todas as características da superclasse.
Polimorfismo
É o princípio pelo qual uma subclasse sobrescreve um comportamento (método) herdado de sua superclasse.

Por exemplo, a classe Carro implementa o método Buzinar, mas a classe Condutor derivada da classe Pessoa, precisa de algo mais específico, envolvendo mais dados. Então a classe Condutor sobrescreve o método Buzinar tornando-o mais específico.
É uma classe que é um subtipo de uma ou mais classes (denominadas superclasses). Como tal, ela herda todas as características de suas superclasses. Em outras palavras, todas as características de uma classe são reusáveis por suas subclasses. Se a classe B herda de A, então dizemos que B é uma subclasse de A.
Subclasse
Superclasse
Uma classe que é um supertipo de uma ou mais classes (também chamadas de subclasses). Como tal, ela é uma classe a partir da qual todas as suas características são herdadas por suas subclasses. Em outras palavras, todas as características de uma superclasse são reusáveis por aquelas classes que são seus subtipos. Se a classe B herda de A, então dizemos que A é uma superclasse de B.
Classe
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.
Objeto
Um objeto é capaz de armazenar estados através de seus atributos e reagir a mensagens enviadas a ele, assim como se relacionar e enviar mensagens a outros objetos.

Exemplo de objetos da classe Humanos: João, José, Maria.
O Método é uma subrotina que é executada por um objeto ao receber uma mensagem. Os métodos determinam o comportamento dos objetos de uma classe. O envio de mensagens (chamada de métodos) pode alterar o estado de um objeto.
Instância
Chama-se instância de uma classe, um objeto cujo comportamento e estado são definidos pela classe.
As instâncias de uma classe partilham o mesmo conjunto de atributos, embora sejam diferentes quanto ao conteúdo desses atributos. Por exemplo, a classe "Empregado" descreve os atributos comuns a todas as instâncias da classe "Empregado". Os objetos dessa classe podem ser semelhantes, mas variam em atributos tais como "nome" e "salário"
Métodos Abstratos
Uma classe abstrata possui métodos abstratos. Esses métodos são implementados nas suas subclasses com o objetivo de definir o seu comportamento específico. O método abstrato define apenas a assinatura do método e, portanto, não tem código.
Classe Abstrata
A classe abstrata é sempre uma superclasse que não possui instâncias. Ela define um modelo para determinada funcionalidade e geralmente fornece uma implementação incompleta dessa funcionalidade. Caso a classe abstrata não possua nenhuma implementação (possuindo apenas as assinaturas dos métodos), ela também pode ser chamada de Interface.
Cada uma das classes derivadas da classe abstrata completa a funcionalidade da classe abstrata, adicionando um comportamento específico.
"Resumo" final
O Paradigma Estruturado é o que domina atualmente cursos introdutórios de programação, mas é o Paradigma Orientado a Objetos que é a estrela da festa em sistemas maiores. Dificilmente encontra-se um grande projeto de software sem a utilização de POO, sendo este, requisito fundamental para profissionais da área de programação. Em suma, cada paradigma tem suas vantagens e desvantagens, sendo indicados para fins específicos. Enquanto que no Estruturado temos simplicidade de termos e facilidade de aprendizagem, que o levam para as primeiras aulas de programação, no Orientado a Objetos, temos mais recursos e melhores organização e reaproveitamento de código, colocando em um novo nível, os paradigmas Imperativo e Estruturado, dos quais ele herda características.
Em linguagens orientadas a objetos, é possível encapsular o estado de um objeto. Em termos práticos, isso realiza-se limitando o acesso a atributos de uma classe exclusivamente através dos seus métodos. Para isso, as linguagens orientadas a objetos oferecem limitadores de acesso para cada membro de uma classe.
O encapsulamento protege os dados do objeto do uso arbitrário e não-intencional.
Estrutura em árvore
A Estrutura em Árvore tem como base dar a POO uma forma de catalogar e diferenciar o código, em base de estruturas hierárquicas dependentes, como estilo de uma árvore genealógica.
Métodos:
Comportamento:
-Conjunto de métodos
Full transcript