Você está na página 1de 32

Programação

Paradigmas de Programação

Eng.Electronica
Linguagens de Programação
Para que estudá-los?
• Capacidade crescente de expressar ideias.
•A profundidade que se consegue pensar é
influenciada pelo poder da linguagem com a qual se
está comunicando os pensamentos.
•Aumenta-se a habilidade de aprender novas
•linguagens.
•Melhora-se a compreensão do significado da
•implementação.
•Habilidade maior de projectar novas linguagens.

Eng.Electronica 2
Linguagens de Programação
O que caracteriza uma linguagem de
programação?
•Sintaxe e semântica bem definidas;
•Implementável (executável) com eficiência
aceitável.
•Universal: deve ser possível expressar todo
problema computável.

Eng.Electronica 3
Por que tantas linguagens?

• C, C++, Java, Basic, COBOL, Lisp, Haskell,


Modula-2, Oberon, Prolog,, Pascal, Ada,
Smalltalk, Símula, Algol, Fortran ,ASM, Scheme,
CLOS, Maude, Python, Glass, etc

Eng.Electronica 4
Por que tantas linguagens?

• Propósitos Diferentes;
• Avanços Tecnológicos.
• Interesses comerciais.
• Cultura e background científico.

Eng.Electronica 5
Paradigma
• O que significa um paradigma?
• Como se traduz este significado para o
contexto da programação?
• Como se pode caracterizar um paradigma?

Eng.Electronica 6
Paradigma de Programação
Paradigma de Programação e o modelo, padrão
ou estilo de programação suportado por
linguagens que agrupam certas características
comuns.
Paradigma de Programação pode ser definido
como um conjunto de modelos, normas e
padrões que diferenciam os vários tipos de
linguagens de programação existentes, a partir
de seus princípios, funcionalidades e objetivos.

Eng.Electronica 7
Programação Procedural
É o paradigma de programação estilo “receita de
bolo”, onde fornecemos ao computador a
sequência de passos exatos.
As primeiras linguagens de programação, como
Assembler, Fortran, COBOL e BASIC seguem este
paradigma.

Eng.Electronica 8
Programação Estruturada
Surgiu da pesquisa sobre algoritmos e estruturas
de dados para ordenação e classificação. Um
programa estruturado deve dar a mesma
atenção à organização do código e à
organização dos dados:
• Algoritms + Data Structures = Programs

Eng.Electronica 9
Programação Orientada a Objectos
• Surgiu na linguagem Simula mas só foi
plenamente desenvolvido na linguagem
Smalltalk.
• Organiza o código em objectos, que
encapsulam tanto dados quanto código em
uma unidade.
• É a base das linguagens mais modernas como
C++, Python e Java.

Eng.Electronica 10
Programação Orientada a Objectos
Programação Orientada a Objectos modela o
programa em termos de objectos do mundo
real. A POO divide o programa em vários
objectos inter-relacionados. Ela complementa a
programação modular, suportando
encapsulamento, assim como eliminando
deficiências da reutilização através da herança
e do polimorfismo.

Eng.Electronica 11
Programação Orientada a Objectos
• POO é uma das principais inovações no
desenvolvimento de software da última década.
• Complexidade: Principal problema na elaboração de
programas.
– Quão maior a complexidade, maior a possibilidade de haver
erros.
• Erros de software têm elevado custo de correção
– Podem causar situações de falhas operacionais;
– Podem colocar vidas em perigo.

Eng.Electronica 12
Programação Orientada a Objectos
• POO compreende uma nova abordagem de
conceber e construir programas.
• POO permite lidar com a complexidade.
• POO facilita a manutenção.
• POO possibilita a obtenção de programas mais
confiáveis.

Eng.Electronica 13
Vantagens da POO
• Confiável – Aceita alterações em uma parte do
programa. È possível validar um
componente independentemente dos outros,
podendo-se reutilizá-lo com confiança.
• Reutilizável – Assim como os módulos,
podemos utilizar objectos em muitos programas
diferentes. A POO introduz a herança para
permitir que se estenda objectos existentes.

Eng.Electronica 14
Vantagens da POO
• Manutenção – Para corrigir um erro, simplesmente
corrige-se o problema em um lugar. Como a
mudança no código é transparente, todos os
objectos se beneficiarão.
• Extensível – A POO apresenta vários recursos para
estender o código. Esses recursos são:
• herança, polimorfismo, sobreposição, delegação e
uma validade de padrões de projecto.

Eng.Electronica 15
Vantagens da POO
• Oportuno – Quando divide-se o programa em
vários objectos (uma classe para cada
desenvolvedor) o desenvolvimento de cada parte
pode ser em paralelo. O software natural
simplifica o projecto de sistemas complexos,
porque pode-se concentrar no problema a
resolver.

Eng.Electronica 16
Os três pilares da OO
• Encapsulamento
• Herança
• Polimorfismo

Eng.Electronica 17
Classes
• Uma classe define um MODELO que descreve
uma entidade real ou abstrata.

Eng.Electronica 18
Classes – Atributos e Métodos
• Uma Classe define o ESTADO e o
COMPORTAMENTO de uma entidade (objeto).
• Chamamos de ATRIBUTOS às partes
responsáveis por definir o ESTADO de um
objecto.
• Chamamos de MÉTODOS às partes
responsáveis por definir o COMPORTAMENTO
de um objecto.

Eng.Electronica 19
Classes - Atributos
• Os atributos são variáveis responsáveis por
armazenar informações associadas a uma
determinada classe
• Exemplo : Para uma classe Pessoa :
- cor do cabelo
- cor dos olhos
- altura
- peso

Eng.Electronica 20
Classes - Métodos
São procedimentos definidos para uma classe,
responsáveis por realizar tarefas pertinentes a
mesma, alterando assim os ATRIBUTOS ou o
ESTADO de um objecto.
Exemplo : Classe Pessoa :
- Acordar
- Andar
- Estudar
- Cantar

Eng.Electronica 21
Acessibilidade de uma Classe
modificadores
Define a forma com que um elemento (atributo
ou método) pode ser visto e utilizado por outras
classes.
Os qualificadores em java : public, private,
protected são responsáveis por definir a
visibilidade de atributos e métodos

Eng.Electronica 22
Acessibilidade - public
Define que um atributo ou método é de acesso
“público”. Qualquer classe pode acessar.

Eng.Electronica 23
Acessibilidade - protected
Define que um atributo ou método é de acesso
“protegido”. Apenas classes “filhas” (que
possuem herança) podem acessar.

Eng.Electronica 24
Acessibilidade - private
Define que um atributo ou método é de acesso
“privado”. Apenas a própria classe possui acesso.

Eng.Electronica 25
Classes X Objetos
• Classe é um modelo de Objeto
• Objeto é a realização de uma Classe
• Um objeto é uma instância de uma classe
• Podemos obter 1 ou mais objetos de uma classe

Exemplo : Classe Pessoa :


Objetos :
- João
- Maria
- José
- Rute

Eng.Electronica 26
Heranca
O conceito de herança, é fundamental para
programação orientada a objectos é um dos
factores de sucesso que permite uma maneira de
organizar melhor o código.
Quando se projetam as classes que farão parte
de um sistema, é aconselhável ter em mente um
conceito muito importante da programação
orientada a objetos: a herança.

Eng.Electronica 27
Herança
Ao se programar em Java, há a necessidade de
trabalharmos com várias classes. Muitas vezes,
classes diferentes tem características comuns,
então, ao invés de criarmos uma nova classe com
todas essas características usamos as características
de um objecto ou classe já existente.
• Ou seja, herança é, na verdade, uma classe derivada
de outra classe, ou quando uma classe herda
atributos de outra.

Eng.Electronica 28
Heranca
A herança fornece um grande benefício. Ao concentrarmos
características comuns em uma classe e derivar as classes
mais específicas a partir desta, estamos preparados para a
adição de novas funcionalidades ao sistema. Se mais
adiante uma nova propriedade comum tiver que ser
adicionada, não precisaremos efectuar alterações em
todas as classes. Basta alterar a superclasse. As classes
derivadas serão automaticamente actualizadas.
Dizemos que a superclasse é uma generalização e a
subclasse uma especializaçao.

Eng.Electronica 29
Herenca
Para fazermos uma classe herdar as
características de uma outra, usamos a palavra
reservada extends logo após a definição do
nome da classe. Dessa forma:
• class NomeDaClasseASerCriada extends Nome
DaClasseASerHerdada

Eng.Electronica 30
Polimorfismo
Polimorfismo, que vem do grego "muitas formas". É o
termo definido em linguagens orientadas a objecto -
como o Java - para a possibilidade de se usar o mesmo
elemento de forma diferente, que são de chamadas de
métodos. Portanto, o polimorfismo se manifesta apenas
em chamadas de métodos. Polimorfismo significa que
uma chamada de método pode ser executada de várias
formas. Quem decide "a forma" é o objecto que recebe
a chamada.

Eng.Electronica 31
Polimorfismo
O sentido da palavra polimorfismo é o uso de um
único nome para definir várias formas distintas, é
uma facilidade que permite que dois ou mais
objectos diferentes respondam a mesma
mensagem.

Eng.Electronica 32

Você também pode gostar