Características da Programação Orientada por Objetos (POO).
Conceito de Classe, Atributos, Métodos, e Eventos.
Conceito de Objeto.
Conceito de Encapsulamento.
Conceito de Visibilidade de Classes, Métodos e Atributos.
Diagramas de Classe.
O ambiente de trabalho do Visual C#.
Objetos básicos e outras características básicas da linguagem do Visual C# e respetivo ambiente de trabalho.
Noções de Orçamento Público AFO - CNU - Aula 1 - Alunos.pdf
POO e Classes
1. PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO
11º ANO
Curso Profissional de Técnico de Gestão e Programação de
Sistemas Informáticos
Prof. Luis Folgado Ferreira
2. Planificação do Módulo
Módulo 9:Introdução à Programação
Orientada a Objetos
1. Características da Programação
Orientada por Objetos (POO).
2. Conceito de Classe, Atributos, Métodos,
e Eventos.
3. Conceito de Objeto.
4. Conceito de Encapsulamento.
5. Conceito de Visibilidade de Classes,
Métodos e Atributos.
6. Diagramas de Classe.
7. O ambiente de trabalho do Visual C#.
8. Objetos básicos e outras características
básicas da linguagem do Visual C# e
respetivo ambiente de trabalho.
Apresentação dos conteúdos
com o auxílio do quadro e
projetor de vídeo.
Aplicação prática dos
conteúdos expostos através
do desenvolvimento de
programas.
+-30 aulas
Observação direta
Fichas de trabalho
Teste de avaliação
6. 1 - Linguagem natural
O Português é uma linguagem natural
7. 2 – Linguagem-Máquina
Consiste num conjunto de números binários que somente são
entendidos pela unidade central de processamento e está relacionado com
as características intrínsecas de cada processador (Unidade Aritmética e
Lógica + Unidade de Controlo).
Caracteriza-se por não ter qualquer tipo de ambiguidade, ou seja,
a interpretação das instruções é única.
Os verdadeiros programadores
programam em binário
8. 3 – Linguagem Assembly
No inicio dos anos 50 criou-se este tipo de linguagem com o
objectivo de aliviar o trabalho do programador.
A linguagem assembly é apenas uma variante da linguagem
máquina, em que os nomes e os símbolos substituem códigos das
instruções, valores e endereços de memória.
Não existem linguagens Assembly universais.
Cada processador usa a sua linguagem.
LOAD @R1, 0
JMP @R1
O Assembler é um programa que converte a linguagem Assembly
na sua forma binária e armazena o resultado numa memória externa para
posterior utilização.
9. 4 - Linguagem de Programação de Alto-Nível
Linguagem de alto nível está muito mais próxima do programador do
que do dispositivo, ou seja, é uma linguagem muito mais intuitiva.
Sem as ambiguidades e imprecisões de uma linguagem natural, mas
não tão penosa de utilizar como a linguagem máquina, exemplo:
if (x == 1)
System.out.println(“X é igual a 1”);
Tradução:
Caso a variável x contenha neste momento o valor 1,
escreve no monitor a frase: X é igual a 1
10. 5 – Vantagens de linguagens de Alto-Nível
• Especificação de muitas instruções de forma abreviada.
• Portáveis - Podem ser usadas em computadores diferentes com
poucas modificações.
• Custos de reprogramação menores.
• Mais fáceis de aprender.
• Menos tempo a escrever.
• Providenciam melhor documentação.
• Detectar erros durante a implementação.
12. Características da POO
• a) Organiza os programas de uma forma mais intuitiva e
próxima do mundo real.
13. Características da POO
• b) Implica que organizemos a nossa visão do mundo e/ou de
um problema em termos de objetos, dos seus atributos e
operações.
14. Características da POO
• c) Um programa é visto como um conjunto de
objetos que cooperam entre si e trocam
mensagens (pedidos/chamadas e
respostas/devoluções) para resolver um problema.
15. Características da POO
• d) Um objecto é o dono dos seus dados. Sempre que é
necessário operar sobre estes dados faz-se através de uma
operação da classe a que este pertence
16. Características da POO
• e) Aumenta os mecanismos de abstração da linguagem,
providenciando maior flexibilidade, modularidade, clareza,
reutilização e robustez.
17. O que é Programação Orientada a Objetos?
POO (oop em inglês) é uma forma especial de programar na qual se utiliza a criação de
objetos de como expressaríamos as coisas na vida real.
Com a POO temos que aprender a pensar de uma maneira distinta.
Temos que desenvolver nossos programas em termos de classes, objetos,
propriedades, métodos, etc…
O
Quase todas as linguagens já existentes foram modificadas para suportar o
paradigma OO.
Algumas foram originalmente desenhadas para suporte deste paradigma
(JAVA). Por vezes são designadas OO puras.
18.
19. Durante anos, os programadores dedicaram-se a construir aplicações muito parecidas
que resolviam geralmente, os mesmo problemas.
Para conseguir que os esforços dos programadores possam ser utilizados por outras
pessoas foi criado a POO.
Esta é uma série de normas que ajudam a uniformizar a programação de maneira a
que outras pessoas possam utilizá-las e adiantar seu trabalho (Reutilizar o código).
20.
21. Então o que é uma Classe e um
Objeto?
• Uma definição de classe ou de estrutura é como um modelo
que especifica o que o tipo pode fazer.
• Um objeto é basicamente um bloco de memória que foi
atribuído e configurado de acordo com o modelo.
• Um programa pode criar vários objetos da mesma classe. Os
objetos são chamados também instâncias, e podem ser
armazenados em uma variável chamada ou matriz ou na
coleção.
22. Então o que é uma Classe e um Objeto?
• O código do cliente é o código que usa essas variáveis para
chamar os métodos e para aceder as propriedades públicas do
objeto.
• Em uma linguagem orientada a objeto como C#, um programa
típico consiste em vários objetos que interagem
dinamicamente.
23. Classes
• Dados e operações sobre esses dados são
modularizados dentro de uma única entidade,
a que se chama classe.
• Então o que é uma classe?
24. A POO não é difícil, mas é uma forma especial de
pensar, na maior parte das vezes depende de quem
a programa.
O que leva a que existam várias formas diferentes
de programar. Embora possamos fazer os
programas de formas distintas, nem todas elas são
corretas, o difícil não é programar orientado a
objetos, mas sim, programar bem.
Programar bem é bastante importante porque
assim podemos aproveitar todas as vantagens da
POO.
25. Carro
- Cor
- Modelo
- Marca
Andar()
Parar()
Estacionar()
Pensar em termos de objetos é muito parecido a como faríamos na vida real.
Por exemplo, vamos pensar num carro. Diríamos que o carro é o elemento principal
que tem uma série de características (cor, modelo ou marca).
Além das características o carro também tem uma série de funcionalidades
associadas (andar, parar ou estacionar).
28. Uma classe representa todos os potenciais objectos que partilham
um conjunto de atributos e operações (e.g. Carro).
Independência do contexto e modularidade (reutilização)
Abstracção (ao nível dos dados e operações sobre estes)
Encapsulamento (protecção contra alterações)
Carro
- matricula: int
- modelo: String
- ano: int
- última_inspeção: int
+ últimaInspecção(): int
+ idade(): int
+ próximaInspeção(): int
+ inspeccionado()
29. OBJECTO
(1) Instância de uma classe;
(2) É criado e manipulado durante a execução do programa;
(3) Tem identidade e valores específicos para os seus atributos.
Os objectos são exemplares de uma classe qualquer.
Quando criamos um exemplar temos que especificar a classe a
partir da qual se criará
30. O meu_carro: Carro
matricula: 00-AA-00
modelo: VW-GTI-TDI-SLK
ano: 2005
última_inspeção: 2005
últimaInspecção(): int
idade(): int
próximaInspeção(): int
inspeccionado()
Um objecto da classe Carro define
uma variável única com um conjunto
de valores específicos que definem o
seu estado.
Um objecto representa uma entidade no mundo real que pode ser
distintamente identificada (e.g. o meu carro)
Identificador único (a sua referência)
Estado interno
31. Diagramas de Classes
• Os diagramas de classes, visões lógicas e
físicas e o relacionamento entre objetos de
uma solução são “desenhados em diagramas”.
• É uma representação da estrutura estática de
um sistema, em termos de classes e da sua
relação.
• A sua imagem na forma mais simples está
demonstrada na figura:
32. Diagramas de Classes
• As questões de visibilidade de atributos e operadores estão
explicados na figura:
34. PROPRIEDADES
• As propriedades ou atributos são as características dos objectos.
• Quando definimos uma propriedade normalmente especificamos seu
nome e seu tipo.
As propriedades são as variáveis onde armazenamos
os dados relativos aos objectos.
35. VISIBILIDADES
OS MEMBROS PODEM SER:
• Privados (private)
• Protegidos (protected)
• Públicos (public)
• Estáticas (static)
36. MÉTODOS
Os métodos são como funções que estão associadas a um objecto.
As operações correspondem a métodos (também designados como rotinas)
que podem ser funções ou procedimentos
Os procedimentos (que alteram o estado do objecto) chamam-se
modificadores
As funções (que não alteram o estado do objecto) chamam-se inspectores
É boa politica (em geral) não incluir modificação e inspecção no mesmo
método
Os métodos que definem a inicialização dos atributos (variáveis-membro) da
classe chamam-se construtores
37. PRIVADOS (private)
(variáveis-membro da classe e operações internas)
• As variáveis Private estão apenas disponíveis no módulo em que
foram definidas.
• Utilizar a palavra-chave Private para definir a variável.
• O modificador de acesso "private" quando aplicado a um atributo
ou a um método indica que os mesmos só podem ser acedidos de
dentro da classe que os criou (encapsulamento).
• Uma classe que herde de uma superclasse com atributos
declarados como "private" só poderá ter acesso a eles através dos
métodos públicos da própria superclasse, caso contrário, não haverá
acesso a estes atributos.
38. Protegidos (protected)
A instrução protected indica que o método ou a variável assim declarada
possa ser acedida somente dentro do pacote em que está contida através
de uma subclasse.
Públicos (public)
(operações a fornecer ao exterior e constantes)
A instrução public indica que a classe, método ou variável assim
declarada possa ser acedida em qualquer lugar e a qualquer momento da
execução do programa.
39. Estáticas (static)
A instrução static serve:
na declaração de uma variável dentro de uma classe, para se criar
uma variável que poderá ser acedida por todas as instâncias de objectos
desta classe como um variável comum.
Ou seja,
a variável criada será a mesma em todas instâncias e quando seu conteúdo
é modificado numas das instâncias, o será em todas instâncias;
na declaração de um método que deve ser acedido diretamente na classe e
não nas suas instâncias.
41. EVENTOS
Acção exercida sobre um objecto, e tomada pelo utilizador, sistema
operativo ou pela própria aplicação.
Um click num botão
Pressionar de uma tecla
A expiração de um período de tempo
Exemplos de eventos
42. Word Choice
• √ DO choose easily readable identifier names.
For example, a property named HorizontalAlignment is more English-readable than
AlignmentHorizontal.
• √ DO favor readability over brevity.
The property name CanScrollHorizontally is better than ScrollableX (an obscure
reference to the X-axis).
• X DO NOT use underscores, hyphens, or any other nonalphanumeric characters.
• X DO NOT use Hungarian notation.
• X AVOID using identifiers that conflict with keywords of widely used programming
languages.
43. Using Abbreviations and Acronyms
• X DO NOT use abbreviations or contractions as part of
identifier names.
• For example, use GetWindow rather than GetWin.
• X DO NOT use any acronyms that are not widely accepted, and
even if they are, only when necessary.
44. Avoiding Language-Specific Names
• √ DO use semantically interesting names rather than language-specific keywords for type names.
For example, GetLength is a better name than GetInt.
• √ DO use a generic CLR type name, rather than a language-specific name, in the rare cases when an
identifier has no semantic meaning beyond its type.
For example, a method converting to Int64 should be named ToInt64, not ToLong (because Int64 is a CLR
name for the C#-specific alias long). The following table presents several base data types using the CLR
type names (as well as the corresponding type names for C#, Visual Basic, and C++).
* Common Representation Language