Você está na página 1de 44

Mdulo 9

Introduo Programao Orientada a Objectos

PROGRAMAO E SISTEMAS DE INFORMAO


11 ANO
Curso Profissional de Tcnico de Gesto e
Programao de Sistemas Informticos
Prof. Luis Folgado
Ferreira

Planificao do Mdulo
Mdulo 9:Introduo Programao
Orientada a Objetos

1. Caractersticas da Programao
Orientada por Objetos (POO).
2. Conceito de Classe, Atributos,
Mtodos, e Eventos.
3. Conceito de Objeto.
4. Conceito de Encapsulamento.
5. Conceito de Visibilidade de Classes,
Mtodos e Atributos.
6. Diagramas de Classe.
7.
8.

O ambiente de trabalho do Visual C#.


Objetos bsicos e outras caractersticas
bsicas da linguagem do Visual C# e
respetivo ambiente de trabalho.

Apresentao dos contedos


com o auxlio do quadro e
projetor de vdeo.

Aplicao prtica dos


contedos expostos atravs
do desenvolvimento de
programas.

+-30 aulas

Observao direta
Fichas de trabalho
Teste de avaliao

Links Interessantes
https://msdn.microsoft.com/ptbr/library/cc580626.aspx

Linguagem?

Tipos de Linguagens
Linguag
em
Natural

Linguag
em Mquin
a

Linguag
em
Assemb
ly
(Simbli
ca)

Linguag
em Alto
nvel

Linguagens
1 - Linguagem natural
O Portugus uma linguagem natural

2 Linguagem-Mquina
Consiste num conjunto de nmeros binrios que
somente so entendidos pela unidade central de
processamento e est relacionado com as caractersticas
intrnsecas de cada processador (Unidade Aritmtica e
Lgica + Unidade de Controlo).
Caracteriza-se por no ter qualquer tipo de ambiguidade,
ou seja, a interpretao das instrues nica.

Os verdadeiros programadores
programam em binrio

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 mquina, em que os nomes e os smbolos
substituem cdigos das instrues, valores e endereos de
memria.
No 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 binria e armazena o resultado
numa memria externa para posterior utilizao.

4 - Linguagem de Programao de
Alto-Nvel
Linguagem de alto nvel est muito mais prxima do
programador do que do dispositivo, ou seja, uma
linguagem muito mais intuitiva.
Sem as ambiguidades e imprecises de uma linguagem
natural, mas no to penosa de utilizar como a
linguagem mquina, exemplo:

if (x == 1)
System.out.println(X igual a 1);
Traduo:
Caso a varivel x contenha neste momento o valor 1,
escreve no monitor a frase: X igual a 1

5 Vantagens de linguagens de AltoNvel

Especificao de muitas instrues de forma


abreviada.

Portveis - Podem ser usadas em computadores


diferentes com poucas modificaes.

Custos de reprogramao menores.

Mais fceis de aprender.

Menos tempo a escrever.

Providenciam melhor documentao.

Detectar erros durante a implementao.

Sumrio
Mdulo 9:Introduo Programao Orientada a
Objetos
Continuao do estudo das caratersticas da POO.

Caractersticas da POO
a) Organiza os programas de uma forma mais
intuitiva e prxima do mundo real.

Caractersticas da POO
b) Implica que organizemos a nossa viso do
mundo e/ou de um problema em termos de
objetos, dos seus atributos e operaes.

Caractersticas da POO
c) Um programa visto como um
conjunto de objetos que cooperam
entre si e trocam mensagens
(pedidos/chamadas e
respostas/devolues) para resolver um
problema.

Caractersticas da POO
d) Um objecto o dono dos seus dados.
Sempre que necessrio operar sobre estes
dados faz-se atravs de uma operao da classe a
que este pertence

Caractersticas da POO
e) Aumenta os mecanismos de abstrao da
linguagem, providenciando maior flexibilidade,
modularidade, clareza, reutilizao e robustez.

O que Programao Orientada a Objetos?


POO (oop em ingls) uma forma especial de programar na qual se
utiliza a criao de objetos de como expressaramos 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, mtodos, etc
Quase todas as linguagens j existentes foram modificadas
para suportar o paradigma OO.
O
O

Algumas foram originalmente desenhadas para suporte


deste paradigma (JAVA). Por vezes so designadas OO
puras.

Como surgiu?
Durante anos, os programadores dedicaram-se a construir
aplicaes muito parecidas que resolviam geralmente, os mesmo
problemas.

Para conseguir que os esforos dos programadores possam ser


utilizados por outras pessoas foi criado a POO.
Esta uma srie de normas que ajudam a uniformizar a
programao de maneira a que outras pessoas possam utiliz-las e
adiantar seu trabalho (Reutilizar o cdigo).

Ento o que uma Classe e


um Objeto?
Uma definio de classe ou de estrutura como um
modelo que especifica o que o tipo pode fazer.
Um objeto basicamente um bloco de memria que
foi atribudo e configurado de acordo com o modelo.
Um programa pode criar vrios objetos da mesma
classe. Os objetos so chamados tambm instncias,
e podem ser armazenados em uma varivel chamada
ou matriz ou na coleo.

Ento o que uma Classe e um Objeto?


O cdigo do cliente o cdigo que usa essas
variveis para chamar os mtodos e para aceder
as propriedades pblicas do objeto.
Em uma linguagem orientada a objeto como C#,
um programa tpico consiste em vrios objetos
que interagem dinamicamente.

Classes

Dados e operaes sobre esses


dados so modularizados dentro de
uma nica entidade, a que se chama
classe.
Ento o que uma classe?

A POO no difcil, mas uma forma especial de


pensar, na maior parte das vezes depende de
quem a programa.
O que leva a que existam vrias formas
diferentes de programar. Embora possamos fazer
os programas de formas distintas, nem todas
elas so corretas, o difcil no programar
orientado a objetos, mas sim, programar bem.
Programar bem bastante importante porque
assim podemos aproveitar todas as vantagens
da POO.

Como devemos pensar em POO?


Pensar em termos de objetos muito parecido a como faramos na
vida real.
Por exemplo, vamos pensar num carro. Diramos que o carro o
elemento principal que tem uma srie de caractersticas (cor,
modelo ou marca).
Alm das caractersticas o carro tambm tem uma srie de
funcionalidades associadas (andar, parar ou estacionar).
Carro
- Cor
- Modelo
- Marca
Andar()
Parar()
Estacionar()

Conceitos fundamentais da POO


CLASSE
OBJECT
O
PROPRIEDA
DES

VISIBILIDADE
S
HERAN
A

POLIMORFISMO

ENCAPSULAMENTO
MTOD
OS

EVENTO
S

Uma

classe

representa

todos

os

potenciais

objectos que partilham um conjunto de atributos


e operaes (e.g. Carro).

Independncia do contexto e modularidade


(reutilizao)

Carro

Abstraco (ao nvel dos dados e operaes


- matricula: int

sobre estes)

- modelo: String

- ano: int
Encapsulamento (proteco contra alteraes)
- ltima_inspeo: int
+ ltimaInspeco(): int
+ idade(): int
+ prximaInspeo(): int
+ inspeccionado()

OBJECT
O
(1) Instncia de uma classe;
(2) criado e manipulado durante a execuo
do programa;
(3) Tem identidade e valores especficos para
os
atributos.
Osseus
objectos
so exemplares de uma classe
qualquer.
Quando criamos um exemplar temos que
especificar a classe a partir da qual se criar

Um objecto representa uma entidade no mundo real


que pode ser distintamente identificada (e.g. o meu
carro)
Identificador nico (a sua referncia)
Estado interno

O meu_carro: Carro

matricula: 00-AA-00
modelo: VW-GTI-TDI-SLK

Um objecto da classe Carro

ano: 2005

define uma varivel nica

ltima_inspeo: 2005

com um conjunto de
valores especficos que
definem o seu estado.

ltimaInspeco(): int
idade(): int
prximaInspeo(): int
inspeccionado()

Diagramas de Classes
Os diagramas de classes, vises lgicas e
fsicas e o relacionamento entre objetos de
uma soluo so desenhados em
diagramas.
uma representao da estrutura esttica
de um sistema, em termos de classes e da
sua relao.
A sua imagem na forma mais simples est
demonstrada na figura:

Diagramas de Classes
As questes de visibilidade de atributos e
operadores esto explicados na figura:

Diagrama de Classes

PROPRIEDA
DES ou atributos so as caractersticas
As propriedades
dos objectos.

Quando definimos uma propriedade normalmente

especificamos seu nome e seu tipo.


As propriedades so as variveis onde armazenamos
os dados relativos aos objectos.

VISIBILIDADE
S

Privados (private)
OS MEMBROS
PODEM SER:

Protegidos
(protected)
Pblicos (public)
Estticas (static)

MTODO
S

Os mtodos so como funes que esto associadas a um


objecto.
As operaes correspondem a mtodos (tambm designados
como rotinas) que podem ser funes ou procedimentos
Os procedimentos (que alteram o estado do objecto) chamamse modificadores
As funes (que no alteram o estado do objecto) chamam-se
inspectores
boa politica (em geral) no incluir modificao e inspeco
no mesmo mtodo
Os mtodos que definem a inicializao dos atributos

PRIVADOS (private)
(variveis-membro da classe e operaes internas)

As variveis Private esto apenas disponveis no


mdulo em que foram definidas.

Utilizar a palavra-chave Private para definir a


varivel.

O modificador de acesso "private" quando aplicado a


um atributo ou a um mtodo 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 atravs dos mtodos pblicos da prpria

Protegidos (protected)
A instruo protected indica que o mtodo ou a varivel
assim declarada possa ser acedida somente dentro do
pacote em que est contida atravs de uma subclasse.

Pblicos (public)
(operaes a fornecer ao exterior e constantes)

A instruo public indica que a classe, mtodo ou


varivel assim declarada possa ser acedida em qualquer
lugar e a qualquer momento da execuo do programa.

Estticas (static)
A instruo static serve:
na declarao de uma varivel dentro de uma
classe, para se criar uma varivel que poder ser
acedida por todas as instncias de objectos desta
classe como um varivel comum.
Ou seja,
a varivel criada ser a mesma em todas instncias e
quando seu contedo modificado numas das instncias, o
ser em todas instncias;
na declarao de um mtodo que deve ser acedido
diretamente na classe e no nas suas instncias.

http://www.javacoffeebreak.com/faq/faq0002.html

EVENTO
S
Aco exercida sobre um objecto, e tomada pelo
utilizador, sistema operativo ou pela prpria
aplicao.

Um click num boto

Pressionar de uma tecla

A expirao de um perodo de tempo

Exemplos de
eventos

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.

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.

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