SlideShare uma empresa Scribd logo
1 de 42
Paradigmas da programação
Programação orientada por objectos
Modularização em pacotes
 Enumerações
 Instrução de selecção switch
 Gama limitada dos tipos inteiros
2013/2014 Fundamentos de Programação 2
2013/2014 Fundamentos de Programação 3
 Programação esparguete
 Programação estruturada
 Programação procedimental
 Programação baseada em objectos
 Programação orientada por objectos
2013/2014 Fundamentos de Programação 4
Progresso
 Forma
 Instâncias de tipos escalares ou arrays
 Instruções organizadas em estruturas de controlo
 Sem modularização
 Melhorias
 Melhora estruturação do fluxo de controlo dos programas
 Possibilita raciocínio formal acerca de programas
 Aumenta legibilidade dos programas face ao passado
(programação «esparguete»)
2013/2014 Fundamentos de Programação 5
Organização do código em módulos, i.e.,
«cápsulas» com objectivos bem definidos
contendo uma implementação oculta e
expondo ao exterior uma interface. A
modularização favorece a abstracção.
 Forma
 Instâncias de tipos escalares ou arrays
 Instruções organizadas em estruturas de controlo
 Instruções e estruturas de controlo organizadas em rotinas
 Modularização em rotinas
 Funções – Devolvem resultado de um cálculo
 Procedimentos – Agem sobre o mundo, modificando-o
 Melhorias
 Possibilita encapsulamento
 Facilita reutilização
 Melhora localização de erros e facilita manutenção
 Possibilita maximização da coesão e minimização das ligações
2013/2014 Fundamentos de Programação 6
 Forma
 Instâncias de tipos escalares, de arrays ou deTAD
 Instruções organizadas em estruturas de controlo
 Instruções e estruturas de controlo organizadas em rotinas
 Rotinas relacionadas organizadas emTAD
 Modularização
 TAD – Conjunto de dados e operações
 Operações – Rotinas que operam sobre instâncias deTAD
 Melhorias
 Melhora encapsulamento (dados e operações relacionadas)
 Possibilita ocultação da informação
 Muda perspectiva sobre os problemas
2013/2014 Fundamentos de Programação 7
Ou programação centrada
nos dados.
Tipos
abstractos de
dados
 Forma
 Instâncias de classes (objectos), de tipos escalares, de arrays ou deTAD
 Instruções organizadas em estruturas de controlo
 Instruções e estruturas de controlo organizadas em rotinas
 Rotinas relacionadas organizadas emTAD
 Rotinas relacionadas organizadas em classes
 Modularização
 Classes – Modelos para objectos com um dado comportamento
 TAD – Conjuntos de dados e operações
 Operações – Rotinas que operam sobre instâncias deTAD ou sobre objectos
 Métodos – Implementação das operações
 Melhorias
 Introduz noções de extensão e especialização
 Muda drasticamente perspectiva sobre os problemas
2013/2014 Fundamentos de Programação 8
2013/2014 Fundamentos de Programação 9
 Assenta sobre
 Programação estruturada – Controlo de fluxo
 Programação procedimental – Rotinas
 Programação centrada nos dados –TAD e operações
 Vantagens
 Melhor modularização
 Melhor encapsulamento
 Maior possibilidade de reutilização
 Possibilidade de extensão e especialização
 Maior expressividade
 Maior flexibilidade
 Maior robustez
2013/2014 Fundamentos de Programação 10
 Interface
 Operações – Implementadas por um ou mais métodos
 Propriedades – Podem ou não ser implementadas
usando atributos
 Implementação
 Métodos – Implementação de operações
 Métodos auxiliares – Usados pelos outros métodos
 Atributos – Dados que são parte da implementação
2013/2014 Fundamentos de Programação 11
 Tudo (ou quase) são objectos
 Objectos têm
 responsabilidades,
 comportamentos e
 propriedades
 Organização de programas reflecte realidade…
 …mas os objectos são personificados
2013/2014 Fundamentos de Programação 12
Na linguagem usada pelos programadores é muito comum e útil a
prosopopeia. Por exemplo, «depois pede-se a rapidez ao carro»
corresponde a car.speed() ou car.getSpeed().
 Análise do problema
 Que objectos existem?
 Que responsabilidades têm?
 Como colaboram?
 Como classificar os objectos?
 Desenho da solução
 Que classes definir?
 Que objectos construir?
 Que responsabilidades lhes atribuir?
 De que forma os fazer colaborar?
2013/2014 Fundamentos de Programação 13
 Classes
 São tipos
 São modelo para objectos com características comuns
 Declaram-se ou definem-se
 Definem conjunto de possíveis objectos
 São nomes comuns: humano, carro, …
 Objectos
 São instâncias de classes
 Constroem-se
 São nomes próprios: Manuel Silva, o carro do Manuel, …
2013/2014 Fundamentos de Programação 14
 Classes
 Favorecem abstracção
 Permitem encapsulamento
 Possibilitam reutilização
 Objectos
 Representam entidades
▪ reais (e.g., carro) ou
▪ virtuais (e.g., compra)
 Têm identidade
 Têm estado observável através da interface
2013/2014 Fundamentos de Programação 15
Consumidor só conhece
interface.
Implementação oculta.
Por especialização ou por
instanciação.
 Tipos de referência
 Classes de identidade ou referência
▪ Identidade é relevante
▪ Igualdade usualmente não é relevante
 Classes de igualdade ou valor
▪ Identidade não é relevante
▪ Igualdade é relevante
 Tipos de valor
 Identidade não é relevante
 Igualdade é relevante
2013/2014 Fundamentos de Programação 16
E.g., classes Java.
Tipos primitivos em
Java.
E.g., String,
Rational, Point
E.g., Person, Gang,
Car
 Definem características
(propriedades e
operações) comuns a
todas as instâncias
2013/2014 Fundamentos de Programação 17
Car
- licenseNumber : String
- model : String
- yearBuilt : int
- lastInspectionDate : LocalDate
+ getLicenseNumber() : String
+ getModel() : String
+ getLastInspectionDate() : LocalDate
+ getYearAge() : int
+ getNextInspectionDate() : LocalDate
+ isInspected() : boolean
+ setInspectedToday()
Propriedades
Operação
implementaçãointerface
 Instâncias de classe de
referência com
identidade e com
propriedades bem
definidas
2013/2014 Fundamentos de Programação 18
johnsCar : Car
licenseNumber = 00-AA-00
model =VW-GTI-TDI-SLK
yearBuilt = 2005
lastInspectionDate = 2014-11-20
 Operações
 Parte da interface da classe
 São invocadas
 Métodos
 Parte da implementação da classe
 São executados quando se invoca a sua operação
 Uma única operação pode ser implementada por
vários métodos
2013/2014 Fundamentos de Programação 19
Como? Usando polimorfismo de
subtipos, que se verá mais tarde.
 Inicializam instâncias/objectos em construção
 Colocam instâncias/objectos em estado
inicial válido, i.e., cumprindo a condição
invariante de instância
2013/2014 Fundamentos de Programação 20
 Modificadoras – Alteram estado do objecto
(procedimentos)
 Não modificadoras – Não alteram estado do
objecto
 Inspectoras – Devolvem propriedade do objecto e não
têm efeitos laterais (funções)
 «Alter-modificadoras» –Alteram estado do programa
ou do seu ambiente (procedimentos) sem alterar
estado do objecto
2013/2014 Fundamentos de Programação 21
 Cada operação deve ter um objectivo (ou uma
função) único e bem definido
 Operações inspectoras – Nome reflecte o que
devolvem
 Outras operações – Nome reflecte acção realizada
 Uma operação não deve ser simultaneamente
inspectora e modificadora (função e
procedimento)
2013/2014 Fundamentos de Programação 22
 Classes são «pseudo-objectos» fábrica das suas instâncias
 «Pseudo-objectos» fábricas têm características de classe
 Declaração de atributos e métodos de classe: com static
 Boas práticas
 Evitar características de classe, em geral
 Usar para definir constantes
 Exemplo
 Math.PI
2013/2014 Fundamentos de Programação 23
Por oposição às
características de
instância.
final Car johnsCar = new Car("00-AA-00", …);
final Car janesCar = johnsCar;
final Car fredsCar = new Car("01-35-AP", …);
2013/2014 Fundamentos de Programação 24
johnsCar, janesCar : Car
licenseNumber = 00-AA-00
…
fredsCar : Car
licenseNumber = 01-35-AP
…
final Car johnsCar = new Car("00-AA-00", …);
final Car janesCar = johnsCar;
final Car fredsCar = new Car("01-35-AP", …);
2013/2014 Fundamentos de Programação 25
johnsCar : «ref» Car
: Car
licenseNumber = 00-aa-00
…
: Car
licenseNumber = 01-35-AP
…
janesCar : «ref» Car
fredsCar : «ref» Car
Referências: Objectos:
2013/2014 Fundamentos de Programação 26
johnsCar : Car
licenseNumber = 00-aa-00
model =VW-GTI-TDI-SLK
yearBuilt = 2005
lastInspectionDate = 2013-11-20
Car
- licenseNumber : String
…
+ getLicenseNumber() : String
…
Nome da
classe
AtributosOperações
Acesso Nome do objecto
Atributos Valores dos atributos
Classe variável;
variável = null;
Classe outraVariável = null;
Classe aindaOutraVariável =
new Classe(…);
2013/2014 Fundamentos de Programação 27
Inicialização da referência com o valor
especial null, que indica que referência não
referencia qualquer objecto.
Declaração da referência variável, não
inicializada, capaz de referenciar objectos da
classe Classe.
Construção de um novo
objecto e de uma referência
que o referencia.
Construção de uma
referência com valor inicial
nulo.
Construçãodareferência
Atenção! Os tipos primitivos do Java (int, float, char, etc.) são tipos de
valor. Não há referências para eles.As variáveis declaradas são uma
instância do tipo primitivo. Por exemplo:
int anInteger;
anInteger = 10;
int anotherInteger = 20;
Construção do novo objecto
Construçãodareferência
 Usa-se operador . (ponto)
 Objecto (característica de instância)
referênciaParaObjecto.característica
 Classe (característica de classe)
Classe.característica
2013/2014 Fundamentos de Programação 28
Se a referência for nula
(null), é lançada a excepção
NullPointerException.
Ou membros.
 Tudo o que pode ser privado deve ser privado!
 Regras gerais
 Todos os atributos devem ser privados
 Os construtores são usualmente públicos
 As operações devem ser públicas
 Os métodos auxiliares devem ser privados
2013/2014 Fundamentos de Programação 29
As constantes, pelo contrário,
podem e muitas vezes devem ser
públicas.
 Interface
 Operações não privadas
 Constantes não privadas
 Implementação
 Métodos privados
 Atributos privados
 Corpos dos métodos
 Contrato
 Pré e pós-condições das operações e métodos
 Manual de utilização
 Comentários de documentação da classe
 Comentários de documentação de cada característica pública
2013/2014 Fundamentos de Programação 30
não privado ≠ público
etc.
 Características ou membros podem ser
 private – acesso apenas por outros membros da
mesma classe
 package-private (sem qualificador) – adicionalmente,
acesso por membros de classes do mesmo pacote
 protected – adicionalmente, acesso por membros de
classes derivadas (a ver nas próximas aulas)
 public – acesso universal
2013/2014 Fundamentos de Programação 31
Acessibilidadecrescente
Há promiscuidade entre objectos da
mesma classe! Cuidado!
Que é isto? Próximo diapositivo…
2013/2014 Fundamentos de Programação 32
Pacote Pacote
2013/2014 Fundamentos de Programação 33
Classe
Rotina
Rotina
Rotina
Classe
Rotina Rotina
Rotina
Classe
Rotina
Rotina
Rotina
Rotina
Classe
Rotina
Rotina
Classe
Rotina
Rotina
Rotina
Rotina
 Conjuntos de classes com relação lógica forte entre si
 Exemplos
 java.util
 org.junit
 Convenções de nomes
 Só minúsculas
 Sem separação entre palavras
 Abreviaturas e siglas aceitáveis
 Prefixo é nome DNS invertido (e.g., pt.europeia)
 Elementos após prefixo podem ser unidades
organizacionais (e.g., pt.europeia.fp)
2013/2014 Fundamentos de Programação 34
 Interface
 Classes públicas
 Membros não privados de classes públicas
 Implementação
 Para além da implementação das classes…
 … todas as classes privadas de pacote (package-
private)
2013/2014 Fundamentos de Programação 35
 java
 lang
 util
 org
 junit
 omg
 pt
 europeia
▪ fp
▪ eda
 Hierarquia aberta
 Não têm declaração isolada
 Cada ficheiro .java declara o pacote a que
pertence
2013/2014 Fundamentos de Programação 36
package pt.europeia.fp
public class Game {
…
}
Game.java
package pt.europeia.fp
public class Player {
…
}
Player.java
 Relevante quanto a nomes
 Organização lógica (como directórios)
 Menor colisão de nomes
 Irrelevante quanto a categorias acesso
 Pacote e subpacote são independentes
 Membros do subpacote não o são do pacote
 Membros do pacote não o são do subpacote
2013/2014 Fundamentos de Programação 37
2013/2014 Fundamentos de Programação 38
The type top.AtTop is not visibleThe type top.bottom.AtBottom is not visible
 Uma só classe pública por ficheiro
 Classe pública em ficheiro com mesmo nome
 Número arbitrário de classes privadas de
pacote (package-private) por ficheiro, mas…
 Boa prática: Uma só classe por ficheiro!
2013/2014 Fundamentos de Programação 39
 Usualmente, à hierarquia de pacotes
corresponde uma hierarquia de directórios
com os ficheiros correspondentes
2013/2014 Fundamentos de Programação 40
Depende da
implementação do Java.
No Eclipse
(directórios/pastas)
No Eclipse
(pacotes)
 Classes são modelos
 Objectos são instâncias classes de referência
 Em Java variáveis não são instâncias de classes,
mas sim referências para instâncias de classes
 Tudo o que pode ser privado deve ser privado
 Classes devem organizar-se em pacotes
2013/2014 Fundamentos de Programação 41
 Paradigmas da programação
 Programação orientada por objectos
 Modularização em pacotes
2013/2014 Fundamentos de Programação 42

Mais conteúdo relacionado

Mais procurados

14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...Manuel Menezes de Sequeira
 
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...Manuel Menezes de Sequeira
 
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...Manuel Menezes de Sequeira
 
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...Manuel Menezes de Sequeira
 
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana  4: Atribuições especiais, matrizes, ciclos, classes pacoteSemana  4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacoteManuel Menezes de Sequeira
 
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
Semana  1: Programação como arte de resolver problemas, algoritmos e problema...Semana  1: Programação como arte de resolver problemas, algoritmos e problema...
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...Manuel Menezes de Sequeira
 
Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Andre Nascimento
 
Spring framework 2.5
Spring framework 2.5Spring framework 2.5
Spring framework 2.5Diego Pacheco
 
Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesRegis Magalhães
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Marcos Castro
 
Curso de Java (Parte 3)
 Curso de Java (Parte 3) Curso de Java (Parte 3)
Curso de Java (Parte 3)Mario Sergio
 

Mais procurados (20)

14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
 
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
 
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
 
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
 
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana  4: Atribuições especiais, matrizes, ciclos, classes pacoteSemana  4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
 
Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001
 
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
Semana  1: Programação como arte de resolver problemas, algoritmos e problema...Semana  1: Programação como arte de resolver problemas, algoritmos e problema...
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
 
Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#
 
Introducao ao C#
Introducao ao C#Introducao ao C#
Introducao ao C#
 
POO - Aula 003
POO - Aula 003POO - Aula 003
POO - Aula 003
 
Java - Primeiros passos
Java - Primeiros passosJava - Primeiros passos
Java - Primeiros passos
 
Aula 1 | Introdução a C++
Aula 1 | Introdução a C++Aula 1 | Introdução a C++
Aula 1 | Introdução a C++
 
Spring framework 2.5
Spring framework 2.5Spring framework 2.5
Spring framework 2.5
 
Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas Interfaces
 
Java2
Java2Java2
Java2
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)
 
Curso de Java (Parte 3)
 Curso de Java (Parte 3) Curso de Java (Parte 3)
Curso de Java (Parte 3)
 
Programação Orientada por Objectos - Aula 2
Programação Orientada por Objectos - Aula 2Programação Orientada por Objectos - Aula 2
Programação Orientada por Objectos - Aula 2
 
Java primeiros-passos
Java primeiros-passosJava primeiros-passos
Java primeiros-passos
 
Programação Orientada por Objectos - Aula 1
Programação Orientada por Objectos - Aula 1Programação Orientada por Objectos - Aula 1
Programação Orientada por Objectos - Aula 1
 

Destaque

1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...Manuel Menezes de Sequeira
 
Introdução à programação orientada para aspectos
Introdução à programação orientada para aspectosIntrodução à programação orientada para aspectos
Introdução à programação orientada para aspectosManuel Menezes de Sequeira
 
Eng.ª do Software - 3. Processos da engenharia de requisitos
Eng.ª do Software - 3. Processos da engenharia de requisitosEng.ª do Software - 3. Processos da engenharia de requisitos
Eng.ª do Software - 3. Processos da engenharia de requisitosManuel Menezes de Sequeira
 

Destaque (7)

1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
 
Programação Orientada por Objectos - Aula 6
Programação Orientada por Objectos - Aula 6Programação Orientada por Objectos - Aula 6
Programação Orientada por Objectos - Aula 6
 
Introdução à programação orientada para aspectos
Introdução à programação orientada para aspectosIntrodução à programação orientada para aspectos
Introdução à programação orientada para aspectos
 
Programação Orientada por Objectos - Aula 7
Programação Orientada por Objectos - Aula 7Programação Orientada por Objectos - Aula 7
Programação Orientada por Objectos - Aula 7
 
Programação Orientada por Objectos - Aula 3
Programação Orientada por Objectos - Aula 3Programação Orientada por Objectos - Aula 3
Programação Orientada por Objectos - Aula 3
 
Programação Orientada por Objectos - Aula 5
Programação Orientada por Objectos - Aula 5Programação Orientada por Objectos - Aula 5
Programação Orientada por Objectos - Aula 5
 
Eng.ª do Software - 3. Processos da engenharia de requisitos
Eng.ª do Software - 3. Processos da engenharia de requisitosEng.ª do Software - 3. Processos da engenharia de requisitos
Eng.ª do Software - 3. Processos da engenharia de requisitos
 

Semelhante a Programação Orientada a Objetos e Paradigmas

Sap Inside Track Sao Paulo 09 Classes De Negócio Em Abap Orientado A Objetos
Sap Inside Track Sao Paulo 09 Classes De Negócio Em Abap Orientado A ObjetosSap Inside Track Sao Paulo 09 Classes De Negócio Em Abap Orientado A Objetos
Sap Inside Track Sao Paulo 09 Classes De Negócio Em Abap Orientado A ObjetosMarcelo Ramos
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkPablo Dall'Oglio
 
Microsoft ALM = Produtividade
Microsoft ALM = ProdutividadeMicrosoft ALM = Produtividade
Microsoft ALM = ProdutividadeAdriano Bertucci
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
Domain Driven Design PHP TDC2014
Domain Driven Design PHP TDC2014Domain Driven Design PHP TDC2014
Domain Driven Design PHP TDC2014Paulo Victor Gomes
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Luis Ferreira
 
Domain Driven Design (DDD) - DevIsland, BH
Domain Driven Design (DDD) - DevIsland, BHDomain Driven Design (DDD) - DevIsland, BH
Domain Driven Design (DDD) - DevIsland, BHGiovanni Bassi
 
Planode Aula
Planode AulaPlanode Aula
Planode Aulasofteam
 
Machine Learning com Vowpal Wabbit
Machine Learning com Vowpal WabbitMachine Learning com Vowpal Wabbit
Machine Learning com Vowpal WabbitLabs Alfacon
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
Django: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosDjango: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosRodrigo Nossal
 
Workshop Ruby on Rails dia 2 ruby-pt
Workshop Ruby on Rails dia 2  ruby-ptWorkshop Ruby on Rails dia 2  ruby-pt
Workshop Ruby on Rails dia 2 ruby-ptPedro Sousa
 
Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013Pablo Dall'Oglio
 
Bi05 fontes de_dados_hana_para_relatorios_presentação_conceitual_2
Bi05 fontes de_dados_hana_para_relatorios_presentação_conceitual_2Bi05 fontes de_dados_hana_para_relatorios_presentação_conceitual_2
Bi05 fontes de_dados_hana_para_relatorios_presentação_conceitual_2Luc Vanrobays
 
Domain-Driven Design - Uma Abordagem Introdutória
Domain-Driven Design - Uma Abordagem IntrodutóriaDomain-Driven Design - Uma Abordagem Introdutória
Domain-Driven Design - Uma Abordagem Introdutóriaarmeniocardoso
 

Semelhante a Programação Orientada a Objetos e Paradigmas (20)

Sap Inside Track Sao Paulo 09 Classes De Negócio Em Abap Orientado A Objetos
Sap Inside Track Sao Paulo 09 Classes De Negócio Em Abap Orientado A ObjetosSap Inside Track Sao Paulo 09 Classes De Negócio Em Abap Orientado A Objetos
Sap Inside Track Sao Paulo 09 Classes De Negócio Em Abap Orientado A Objetos
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um Framework
 
Microsoft ALM = Produtividade
Microsoft ALM = ProdutividadeMicrosoft ALM = Produtividade
Microsoft ALM = Produtividade
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Domain Driven Design PHP TDC2014
Domain Driven Design PHP TDC2014Domain Driven Design PHP TDC2014
Domain Driven Design PHP TDC2014
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos
 
Aplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com DjangoAplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com Django
 
Domain Driven Design (DDD) - DevIsland, BH
Domain Driven Design (DDD) - DevIsland, BHDomain Driven Design (DDD) - DevIsland, BH
Domain Driven Design (DDD) - DevIsland, BH
 
Planode Aula
Planode AulaPlanode Aula
Planode Aula
 
Diagramadeclassesal
DiagramadeclassesalDiagramadeclassesal
Diagramadeclassesal
 
Machine Learning com Vowpal Wabbit
Machine Learning com Vowpal WabbitMachine Learning com Vowpal Wabbit
Machine Learning com Vowpal Wabbit
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Django: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosDjango: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutos
 
DDD > Experiências
DDD > ExperiênciasDDD > Experiências
DDD > Experiências
 
Arquitetura de sistemas web
Arquitetura de sistemas webArquitetura de sistemas web
Arquitetura de sistemas web
 
Workshop Ruby on Rails dia 2 ruby-pt
Workshop Ruby on Rails dia 2  ruby-ptWorkshop Ruby on Rails dia 2  ruby-pt
Workshop Ruby on Rails dia 2 ruby-pt
 
Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013
 
Bi05 fontes de_dados_hana_para_relatorios_presentação_conceitual_2
Bi05 fontes de_dados_hana_para_relatorios_presentação_conceitual_2Bi05 fontes de_dados_hana_para_relatorios_presentação_conceitual_2
Bi05 fontes de_dados_hana_para_relatorios_presentação_conceitual_2
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Domain-Driven Design - Uma Abordagem Introdutória
Domain-Driven Design - Uma Abordagem IntrodutóriaDomain-Driven Design - Uma Abordagem Introdutória
Domain-Driven Design - Uma Abordagem Introdutória
 

Mais de Manuel Menezes de Sequeira

Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasSemana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasManuel Menezes de Sequeira
 
Semana 9: toString, classes, instâncias e objectos, Scanner
Semana  9: toString, classes, instâncias e objectos, ScannerSemana  9: toString, classes, instâncias e objectos, Scanner
Semana 9: toString, classes, instâncias e objectos, ScannerManuel Menezes de Sequeira
 
Semana 8: Classes e instâncias, cadeias de caracteres
Semana  8: Classes e instâncias, cadeias de caracteresSemana  8: Classes e instâncias, cadeias de caracteres
Semana 8: Classes e instâncias, cadeias de caracteresManuel Menezes de Sequeira
 
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana  6: Matrizes multidimensionais, estratégias de resolução de problemasSemana  6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemasManuel Menezes de Sequeira
 
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaSemana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaManuel Menezes de Sequeira
 
Semana 3: Introdução à linguagem de programação Java
Semana  3: Introdução à linguagem de programação Java Semana  3: Introdução à linguagem de programação Java
Semana 3: Introdução à linguagem de programação Java Manuel Menezes de Sequeira
 
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...Manuel Menezes de Sequeira
 
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)Manuel Menezes de Sequeira
 
Eng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validaçãoEng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validaçãoManuel Menezes de Sequeira
 
Eng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizadorEng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizadorManuel Menezes de Sequeira
 
Eng.ª do Software - 7. Desenho arquitectónico
Eng.ª do Software - 7. Desenho arquitectónicoEng.ª do Software - 7. Desenho arquitectónico
Eng.ª do Software - 7. Desenho arquitectónicoManuel Menezes de Sequeira
 

Mais de Manuel Menezes de Sequeira (14)

Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasSemana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
 
Semana 9: toString, classes, instâncias e objectos, Scanner
Semana  9: toString, classes, instâncias e objectos, ScannerSemana  9: toString, classes, instâncias e objectos, Scanner
Semana 9: toString, classes, instâncias e objectos, Scanner
 
Semana 8: Classes e instâncias, cadeias de caracteres
Semana  8: Classes e instâncias, cadeias de caracteresSemana  8: Classes e instâncias, cadeias de caracteres
Semana 8: Classes e instâncias, cadeias de caracteres
 
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana  6: Matrizes multidimensionais, estratégias de resolução de problemasSemana  6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas
 
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaSemana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
 
Semana 3: Introdução à linguagem de programação Java
Semana  3: Introdução à linguagem de programação Java Semana  3: Introdução à linguagem de programação Java
Semana 3: Introdução à linguagem de programação Java
 
Semana 2: Funções e listas, variáveis
Semana  2: Funções e listas, variáveisSemana  2: Funções e listas, variáveis
Semana 2: Funções e listas, variáveis
 
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...
 
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
 
Eng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de softwareEng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de software
 
Eng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validaçãoEng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validação
 
Eng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizadorEng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizador
 
Eng.ª do Software - 7. Desenho arquitectónico
Eng.ª do Software - 7. Desenho arquitectónicoEng.ª do Software - 7. Desenho arquitectónico
Eng.ª do Software - 7. Desenho arquitectónico
 
Eng.ª do Software - 6. Gestão de projectos
Eng.ª do Software - 6. Gestão de projectosEng.ª do Software - 6. Gestão de projectos
Eng.ª do Software - 6. Gestão de projectos
 

Último

Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresaulasgege
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfIedaGoethe
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveaulasgege
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.keislayyovera123
 
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaAula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaaulasgege
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdfcartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdfIedaGoethe
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxIsabellaGomes58
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresLilianPiola
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxLuizHenriquedeAlmeid6
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxfabiolalopesmartins1
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfmirandadudu08
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOMarcosViniciusLemesL
 

Último (20)

Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autores
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.
 
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaAula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
 
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdfcartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptx
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdf
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
 

Programação Orientada a Objetos e Paradigmas

  • 1. Paradigmas da programação Programação orientada por objectos Modularização em pacotes
  • 2.  Enumerações  Instrução de selecção switch  Gama limitada dos tipos inteiros 2013/2014 Fundamentos de Programação 2
  • 3. 2013/2014 Fundamentos de Programação 3
  • 4.  Programação esparguete  Programação estruturada  Programação procedimental  Programação baseada em objectos  Programação orientada por objectos 2013/2014 Fundamentos de Programação 4 Progresso
  • 5.  Forma  Instâncias de tipos escalares ou arrays  Instruções organizadas em estruturas de controlo  Sem modularização  Melhorias  Melhora estruturação do fluxo de controlo dos programas  Possibilita raciocínio formal acerca de programas  Aumenta legibilidade dos programas face ao passado (programação «esparguete») 2013/2014 Fundamentos de Programação 5 Organização do código em módulos, i.e., «cápsulas» com objectivos bem definidos contendo uma implementação oculta e expondo ao exterior uma interface. A modularização favorece a abstracção.
  • 6.  Forma  Instâncias de tipos escalares ou arrays  Instruções organizadas em estruturas de controlo  Instruções e estruturas de controlo organizadas em rotinas  Modularização em rotinas  Funções – Devolvem resultado de um cálculo  Procedimentos – Agem sobre o mundo, modificando-o  Melhorias  Possibilita encapsulamento  Facilita reutilização  Melhora localização de erros e facilita manutenção  Possibilita maximização da coesão e minimização das ligações 2013/2014 Fundamentos de Programação 6
  • 7.  Forma  Instâncias de tipos escalares, de arrays ou deTAD  Instruções organizadas em estruturas de controlo  Instruções e estruturas de controlo organizadas em rotinas  Rotinas relacionadas organizadas emTAD  Modularização  TAD – Conjunto de dados e operações  Operações – Rotinas que operam sobre instâncias deTAD  Melhorias  Melhora encapsulamento (dados e operações relacionadas)  Possibilita ocultação da informação  Muda perspectiva sobre os problemas 2013/2014 Fundamentos de Programação 7 Ou programação centrada nos dados. Tipos abstractos de dados
  • 8.  Forma  Instâncias de classes (objectos), de tipos escalares, de arrays ou deTAD  Instruções organizadas em estruturas de controlo  Instruções e estruturas de controlo organizadas em rotinas  Rotinas relacionadas organizadas emTAD  Rotinas relacionadas organizadas em classes  Modularização  Classes – Modelos para objectos com um dado comportamento  TAD – Conjuntos de dados e operações  Operações – Rotinas que operam sobre instâncias deTAD ou sobre objectos  Métodos – Implementação das operações  Melhorias  Introduz noções de extensão e especialização  Muda drasticamente perspectiva sobre os problemas 2013/2014 Fundamentos de Programação 8
  • 9. 2013/2014 Fundamentos de Programação 9
  • 10.  Assenta sobre  Programação estruturada – Controlo de fluxo  Programação procedimental – Rotinas  Programação centrada nos dados –TAD e operações  Vantagens  Melhor modularização  Melhor encapsulamento  Maior possibilidade de reutilização  Possibilidade de extensão e especialização  Maior expressividade  Maior flexibilidade  Maior robustez 2013/2014 Fundamentos de Programação 10
  • 11.  Interface  Operações – Implementadas por um ou mais métodos  Propriedades – Podem ou não ser implementadas usando atributos  Implementação  Métodos – Implementação de operações  Métodos auxiliares – Usados pelos outros métodos  Atributos – Dados que são parte da implementação 2013/2014 Fundamentos de Programação 11
  • 12.  Tudo (ou quase) são objectos  Objectos têm  responsabilidades,  comportamentos e  propriedades  Organização de programas reflecte realidade…  …mas os objectos são personificados 2013/2014 Fundamentos de Programação 12 Na linguagem usada pelos programadores é muito comum e útil a prosopopeia. Por exemplo, «depois pede-se a rapidez ao carro» corresponde a car.speed() ou car.getSpeed().
  • 13.  Análise do problema  Que objectos existem?  Que responsabilidades têm?  Como colaboram?  Como classificar os objectos?  Desenho da solução  Que classes definir?  Que objectos construir?  Que responsabilidades lhes atribuir?  De que forma os fazer colaborar? 2013/2014 Fundamentos de Programação 13
  • 14.  Classes  São tipos  São modelo para objectos com características comuns  Declaram-se ou definem-se  Definem conjunto de possíveis objectos  São nomes comuns: humano, carro, …  Objectos  São instâncias de classes  Constroem-se  São nomes próprios: Manuel Silva, o carro do Manuel, … 2013/2014 Fundamentos de Programação 14
  • 15.  Classes  Favorecem abstracção  Permitem encapsulamento  Possibilitam reutilização  Objectos  Representam entidades ▪ reais (e.g., carro) ou ▪ virtuais (e.g., compra)  Têm identidade  Têm estado observável através da interface 2013/2014 Fundamentos de Programação 15 Consumidor só conhece interface. Implementação oculta. Por especialização ou por instanciação.
  • 16.  Tipos de referência  Classes de identidade ou referência ▪ Identidade é relevante ▪ Igualdade usualmente não é relevante  Classes de igualdade ou valor ▪ Identidade não é relevante ▪ Igualdade é relevante  Tipos de valor  Identidade não é relevante  Igualdade é relevante 2013/2014 Fundamentos de Programação 16 E.g., classes Java. Tipos primitivos em Java. E.g., String, Rational, Point E.g., Person, Gang, Car
  • 17.  Definem características (propriedades e operações) comuns a todas as instâncias 2013/2014 Fundamentos de Programação 17 Car - licenseNumber : String - model : String - yearBuilt : int - lastInspectionDate : LocalDate + getLicenseNumber() : String + getModel() : String + getLastInspectionDate() : LocalDate + getYearAge() : int + getNextInspectionDate() : LocalDate + isInspected() : boolean + setInspectedToday() Propriedades Operação implementaçãointerface
  • 18.  Instâncias de classe de referência com identidade e com propriedades bem definidas 2013/2014 Fundamentos de Programação 18 johnsCar : Car licenseNumber = 00-AA-00 model =VW-GTI-TDI-SLK yearBuilt = 2005 lastInspectionDate = 2014-11-20
  • 19.  Operações  Parte da interface da classe  São invocadas  Métodos  Parte da implementação da classe  São executados quando se invoca a sua operação  Uma única operação pode ser implementada por vários métodos 2013/2014 Fundamentos de Programação 19 Como? Usando polimorfismo de subtipos, que se verá mais tarde.
  • 20.  Inicializam instâncias/objectos em construção  Colocam instâncias/objectos em estado inicial válido, i.e., cumprindo a condição invariante de instância 2013/2014 Fundamentos de Programação 20
  • 21.  Modificadoras – Alteram estado do objecto (procedimentos)  Não modificadoras – Não alteram estado do objecto  Inspectoras – Devolvem propriedade do objecto e não têm efeitos laterais (funções)  «Alter-modificadoras» –Alteram estado do programa ou do seu ambiente (procedimentos) sem alterar estado do objecto 2013/2014 Fundamentos de Programação 21
  • 22.  Cada operação deve ter um objectivo (ou uma função) único e bem definido  Operações inspectoras – Nome reflecte o que devolvem  Outras operações – Nome reflecte acção realizada  Uma operação não deve ser simultaneamente inspectora e modificadora (função e procedimento) 2013/2014 Fundamentos de Programação 22
  • 23.  Classes são «pseudo-objectos» fábrica das suas instâncias  «Pseudo-objectos» fábricas têm características de classe  Declaração de atributos e métodos de classe: com static  Boas práticas  Evitar características de classe, em geral  Usar para definir constantes  Exemplo  Math.PI 2013/2014 Fundamentos de Programação 23 Por oposição às características de instância.
  • 24. final Car johnsCar = new Car("00-AA-00", …); final Car janesCar = johnsCar; final Car fredsCar = new Car("01-35-AP", …); 2013/2014 Fundamentos de Programação 24 johnsCar, janesCar : Car licenseNumber = 00-AA-00 … fredsCar : Car licenseNumber = 01-35-AP …
  • 25. final Car johnsCar = new Car("00-AA-00", …); final Car janesCar = johnsCar; final Car fredsCar = new Car("01-35-AP", …); 2013/2014 Fundamentos de Programação 25 johnsCar : «ref» Car : Car licenseNumber = 00-aa-00 … : Car licenseNumber = 01-35-AP … janesCar : «ref» Car fredsCar : «ref» Car Referências: Objectos:
  • 26. 2013/2014 Fundamentos de Programação 26 johnsCar : Car licenseNumber = 00-aa-00 model =VW-GTI-TDI-SLK yearBuilt = 2005 lastInspectionDate = 2013-11-20 Car - licenseNumber : String … + getLicenseNumber() : String … Nome da classe AtributosOperações Acesso Nome do objecto Atributos Valores dos atributos
  • 27. Classe variável; variável = null; Classe outraVariável = null; Classe aindaOutraVariável = new Classe(…); 2013/2014 Fundamentos de Programação 27 Inicialização da referência com o valor especial null, que indica que referência não referencia qualquer objecto. Declaração da referência variável, não inicializada, capaz de referenciar objectos da classe Classe. Construção de um novo objecto e de uma referência que o referencia. Construção de uma referência com valor inicial nulo. Construçãodareferência Atenção! Os tipos primitivos do Java (int, float, char, etc.) são tipos de valor. Não há referências para eles.As variáveis declaradas são uma instância do tipo primitivo. Por exemplo: int anInteger; anInteger = 10; int anotherInteger = 20; Construção do novo objecto Construçãodareferência
  • 28.  Usa-se operador . (ponto)  Objecto (característica de instância) referênciaParaObjecto.característica  Classe (característica de classe) Classe.característica 2013/2014 Fundamentos de Programação 28 Se a referência for nula (null), é lançada a excepção NullPointerException. Ou membros.
  • 29.  Tudo o que pode ser privado deve ser privado!  Regras gerais  Todos os atributos devem ser privados  Os construtores são usualmente públicos  As operações devem ser públicas  Os métodos auxiliares devem ser privados 2013/2014 Fundamentos de Programação 29 As constantes, pelo contrário, podem e muitas vezes devem ser públicas.
  • 30.  Interface  Operações não privadas  Constantes não privadas  Implementação  Métodos privados  Atributos privados  Corpos dos métodos  Contrato  Pré e pós-condições das operações e métodos  Manual de utilização  Comentários de documentação da classe  Comentários de documentação de cada característica pública 2013/2014 Fundamentos de Programação 30 não privado ≠ público etc.
  • 31.  Características ou membros podem ser  private – acesso apenas por outros membros da mesma classe  package-private (sem qualificador) – adicionalmente, acesso por membros de classes do mesmo pacote  protected – adicionalmente, acesso por membros de classes derivadas (a ver nas próximas aulas)  public – acesso universal 2013/2014 Fundamentos de Programação 31 Acessibilidadecrescente Há promiscuidade entre objectos da mesma classe! Cuidado! Que é isto? Próximo diapositivo…
  • 32. 2013/2014 Fundamentos de Programação 32
  • 33. Pacote Pacote 2013/2014 Fundamentos de Programação 33 Classe Rotina Rotina Rotina Classe Rotina Rotina Rotina Classe Rotina Rotina Rotina Rotina Classe Rotina Rotina Classe Rotina Rotina Rotina Rotina
  • 34.  Conjuntos de classes com relação lógica forte entre si  Exemplos  java.util  org.junit  Convenções de nomes  Só minúsculas  Sem separação entre palavras  Abreviaturas e siglas aceitáveis  Prefixo é nome DNS invertido (e.g., pt.europeia)  Elementos após prefixo podem ser unidades organizacionais (e.g., pt.europeia.fp) 2013/2014 Fundamentos de Programação 34
  • 35.  Interface  Classes públicas  Membros não privados de classes públicas  Implementação  Para além da implementação das classes…  … todas as classes privadas de pacote (package- private) 2013/2014 Fundamentos de Programação 35
  • 36.  java  lang  util  org  junit  omg  pt  europeia ▪ fp ▪ eda  Hierarquia aberta  Não têm declaração isolada  Cada ficheiro .java declara o pacote a que pertence 2013/2014 Fundamentos de Programação 36 package pt.europeia.fp public class Game { … } Game.java package pt.europeia.fp public class Player { … } Player.java
  • 37.  Relevante quanto a nomes  Organização lógica (como directórios)  Menor colisão de nomes  Irrelevante quanto a categorias acesso  Pacote e subpacote são independentes  Membros do subpacote não o são do pacote  Membros do pacote não o são do subpacote 2013/2014 Fundamentos de Programação 37
  • 38. 2013/2014 Fundamentos de Programação 38 The type top.AtTop is not visibleThe type top.bottom.AtBottom is not visible
  • 39.  Uma só classe pública por ficheiro  Classe pública em ficheiro com mesmo nome  Número arbitrário de classes privadas de pacote (package-private) por ficheiro, mas…  Boa prática: Uma só classe por ficheiro! 2013/2014 Fundamentos de Programação 39
  • 40.  Usualmente, à hierarquia de pacotes corresponde uma hierarquia de directórios com os ficheiros correspondentes 2013/2014 Fundamentos de Programação 40 Depende da implementação do Java. No Eclipse (directórios/pastas) No Eclipse (pacotes)
  • 41.  Classes são modelos  Objectos são instâncias classes de referência  Em Java variáveis não são instâncias de classes, mas sim referências para instâncias de classes  Tudo o que pode ser privado deve ser privado  Classes devem organizar-se em pacotes 2013/2014 Fundamentos de Programação 41
  • 42.  Paradigmas da programação  Programação orientada por objectos  Modularização em pacotes 2013/2014 Fundamentos de Programação 42

Notas do Editor

  1. Prosopopeia - Figura em que o orador atribui o dom da palavra, o sentimento ou a acção a seres inanimados ou irracionais, aos mortos ou aos ausentes. "prosopopeia", in Dicionário Priberam da Língua Portuguesa [em linha], 2008-2013, http://www.priberam.pt/dlpo/prosopopeia [consultado em 09-03-2015].
  2. As classes que não estão definidas dentro de outras classes (outer) só podem ser ou públicas ou privadas de pacote.