1. Conceitos de
Orientação a Objeto
Ricardo Guerra Freitas
Líder da Célula .NET RIO: http://groups.msn.com/celulanetrio
Email/MSN: guerra_rj@hotmail.com
Blog: http://thespoke.net/blogs/guerra_rj/default.aspx
Site do Curso para baixar os slides:
http://br.groups.yahoo.com/group/CursoDotNetSaoJose
2. Agenda
• A Classe
• Objetos
• Coleções
• Parent e Child (conceitos de herança)
• Propriedades
• Método
• Eventos
• Encapsulação
• Polimorfismo
3. A Classe – o abstrato de tudo
• A classe nada mais é do que um abstrato. E o que e um abstrato?
Abstrato é aquilo que opera fora do âmbito concreto; em outras
palavras, é aquilo que possui um alto grau de generalização, para
colocar de uma forma bem dicionarística, conforme encontrado no
dicionário Houaiss.
• Se isso parece estranho, crie uma imagem de uma árvore em sua
cabeça. Criou? Esta árvore é o abstrato. Ela somente existe na sua
cabeça. Ninguém pode tocá-la, nem você. O máximo que você
consegue é abstraí-la em sua mente e mais nada. A classe é isso,
um abstrato de um objeto qualquer. Um objeto que não pode ser
tocado.
• A figura abaixo representa a nossa classe:
•
4. Objetos (object)
• E os objetos? O objeto é aquela árvore plantada em
frente a sua casa, no Jardim Botânico, no parque, ou as
árvores da Amazônia. Os objetos são aqueles que você
pode tocar e modificar suas propriedades e métodos.
• Por exemplo, a Classe árvore pode indicar qualquer tipo
de árvore, pois é um abstrato. Quando pedi que você
visualizasse uma árvore, qual árvore você visualizou? Eu
visualizei uma jaqueira. Talvez você tenha visualizado um
Oiti, ou mangueira, ou até mesmo a jaqueira. O
importante é você entender que a Classe de árvore pode
ser ter qualquer tipo de árvore existente na face da
terra! Não obstante, o objeto árvore só pode ser a
mangueira, ou a jaqueira, ou outra árvore qualquer. O
objeto não pode ser todas as outras.
5. Objetos (object)
• Para ligar o
objeto árvore
à classe
árvore, temos o
seguinte
diagrama:
•A Classe, o abstrato, é o inicio de tudo. Sem ela o objeto
árvore não existe. Criado o abstrato, podemos então definir
com qual árvore iremos trabalhar e como manipularemos
as propriedades e métodos da árvore.
6. Coleções (Collections)
• Coleção significa um conjunto do mesmo objeto. Pegue a primeira
árvore e junte-a a um outro objeto igual (outra árvore igual) e você
obtém duas árvores na coleção do objeto árvore.
• Uma analogia simples é comparar com a plantação de coqueiros. O
coqueiro é o um objeto árvore a plantação de coqueiros
representa a coleção de coqueiros (árvores iguais).
• Observe a figura:
7. Coleções (Collections)
• É importante observar que embora a coleção de
coqueiros seja igual no âmbito abstrato, cada coqueiro é
diferente no âmbito objeto. Por exemplo, cada coqueiro
terá uma altura diferente, um peso diferente, idade
diferente, e assim por diante. Cada um destes valores
refere-se a propriedade do coqueiro. Se você já
programou alguma vez em VBA, você já deve ter visto a
propriedade Height do objeto Userform. A propriedade
Height define a altura do formulário e cada formulário
possui uma altura diferente. Discutirei propriedade e
métodos mais adiante, mas você já pode ir pensando no
que isso significa.
8. Pai e Filhos (Parent e Child)
(conceitos de herança)
• A classe Child é um abstrato assim como a classe
Parent. A diferença é que a classe Child possui uma
classe acima dela da qual ela pode herdar as
propriedades e métodos da classe que é seu Parent.
• Volte novamente ao coqueiro. O coco é um objeto que
pertence ao coqueiro. Se o coqueiro é quem dá coco e
não o contrário; então, o coqueiro é pai (Parent) e o
coco é o filho (Child). O filho também possuirá suas
propriedades e métodos distintos do pai, mas também
herdará características do pai, isto é, o coco herdará
propriedades e métodos do pai (assim como os filhos
herdam traços dos pais, mas possuem suas
características próprias – suas propriedades e métodos
próprios).
9. Propriedades
• Propriedades são as características do
objeto. Por exemplo, a altura (Height) do
coqueiro é uma propriedade, a largura
(Width) é outra assim como o nome
(Name) que identifica o coqueiro seria
uma terceira propriedade.
10. Método
• Um exemplo de método é o crescimento.
Por exemplo, poderíamos criar uma função
e chamá-la de Grow. A função receberia
um argumento em centímetros que
instruiria o objeto a crescer tantos
centímetros.
11. Eventos
• Um evento é aquilo que ocorre com o objeto durante sua
vida. Por exemplo, se o coqueiro é cortado, o corte é um
evento. Se o coqueiro morre, a morte do coqueiro é um
evento. Quando um evento ocorre, um outro procedimento
pode ser executado se assim for desejado. Por exemplo, se
o coqueiro morre, o evento morte pode iniciar uma rotina
que chama os outros coqueiros para o velório.
• Para colocar no contexto do Visual Studio, quando usamos
o ROLLER do mouse um evento ocorre (MouseWheel).
Nós temos a opção de capturar o evento e fazer alguma
coisa ou simplesmente ignorá-lo, mas o evento ocorreu e
isso é o que importa. Assim como o evento da morte do
coqueiro. Se haverá velório ou não, não importa. O que
interessa é que ele morreu, isto é, o evento ocorreu. O
que você faz com ele será decisão sua.
12. Encapsulação (Encapsulation)
• Encapsulação é o processo de colocar algo dentro de uma cápsula,
isto é, encapsulação é o processo de encapsular algo. O nosso
coqueiro, o objeto coqueiro, mantém suas partes, isto é suas
propriedades e métodos, dentro de uma cápsula. As partes do
objeto serão visíveis ou não e tudo dependerá do escopo de cada
parte do objeto. Por exemplo, o objeto coco possui a propriedade
água, mas esta propriedade esta escondida dentro do coco. Por
outro lado, a propriedade casca está visível e pode ser manipulada
pelo usuário.
• Encapsular, basicamente, quer dizer “esconder” algo no contexto de
programação orientada por objetos. Para expor ou esconder as
propriedades e métodos de um objeto devemos utilizar as palavras-
chave Private ou Public. Propriedade e métodos não definidos
explicitamente como Private em uma classe são tratadas como
públicas.
• Uma boa prática é deixar sempre explicito o tipo de escopo, privado
ou publico, deixar subjetivo pode gerar confusão para outra pessoa
que venha a dar suporte no seu código
13. Polimorfismo
• Polimorfismo quer dizer que seu código deve ser capaz de assumir o
papel para ele definido em qualquer situação sem ambigüidade.
• Por exemplo, se você deseja adicionar um coqueiro a coleção de
coqueiros, você não deve criar um código o qual resolve para o
método como segue:
• coqueiros.coqueiro.Adicionar
• O motivo para evitar este tipo de nomenclatura é que, embora
possa ser fácil para você compreender, todos os programadores
sabem que para adicionar algo você usa o método Add. Portanto, o
método Adicionar somente terá significado para você. Se você
chamar o método de Add todos saberão o que ele teoricamente
deve fazer, mas poucos saberão o que o método Adicionar faz.
• Da mesma forma, ao definir a altura do seu coqueiro, você não
quererá uma propriedade chamada altura. O correto é nomear
como Height, pois todos sabem o que é Height de um objeto
(mesmo que o método de implementação seja diferente), mas é
improvável que alguém, além de você, saiba o que é a propriedade
altura.
15. Promoção!!! De 40 reais por 30 reais,
SOMENTE PARA ALUNOS DA FACULDADE
SÃO JOSÉ
Learning Series BufaloInfo
• A Búfalo Informática e o grupo devASPNet tem o prazer de apresentar a
nova Learning Series BufaloInfo, a mais nova série de CDs com vídeos de E-
Learning sobre tecnologias Microsoft.
• Para iniciar a série estamos lançando o CD de treinamento
Desenvolvimento Web com ASP.NET
• Mais de 8 horas de vídeo aulas
• Demostrações detalhadas apresentadas por Dennes Torres
• Vídeos divididos em pequenas partes, com demonstrações que podem ser
reproduzidas
• Código fonte de cada demonstração no CD, em versão ANTES e DEPOIS,
permitindo a você reproduzir as demostrações e comparar com o resultado
disponível.
• Indicação de artigos e dicas técnicas ligadas aos assuntos apresentados no
CD
• Suporte técnico sobre os temas abordados nas vídeo aulas
• http://www.bufaloinfo.com.br/learningseries.asp
16. Evento Gratuito
• Segundo TechConference na Veiga de Almeida
na Tijuca, dias 05, 12 e 19 de novembro
• Eu estarei mostrando as novidades de Windows
Forms do Visual Studio 2005
• Para se inscrever visite o site:
• http://www.bufaloinfo.com.br/techconference2/
17. Bom Final de Semana!!
Ricardo Guerra Freitas
Líder da Célula .NET RIO: http://groups.msn.com/celulanetrio
Email/MSN: guerra_rj@hotmail.com
Blog: http://thespoke.net/blogs/guerra_rj/default.aspx
Site do Curso para baixar os slides:
http://br.groups.yahoo.com/group/CursoDotNetSaoJose