SlideShare uma empresa Scribd logo
1 de 17
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
Agenda
• A Classe
• Objetos
• Coleções
• Parent e Child (conceitos de herança)
• Propriedades
• Método
• Eventos
• Encapsulação
• Polimorfismo
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:
•
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.
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.
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:
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.
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).
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.
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.
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.
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
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.
Artigo Original (créditos)
• http://www.linhadecodigo.com.br/artigos.asp?id_ac=851&pag=1
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
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/
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

Mais conteúdo relacionado

Semelhante a Conceitos de Orientação a Objeto

Aula 02 - Classes em C++ ( Parte 1 )
Aula 02 - Classes em C++ ( Parte 1 )Aula 02 - Classes em C++ ( Parte 1 )
Aula 02 - Classes em C++ ( Parte 1 )PeslPinguim
 
java paradigma oo
java paradigma oojava paradigma oo
java paradigma ooleonirlopes
 
2.1 introdução a oo
2.1 introdução a oo2.1 introdução a oo
2.1 introdução a ooPAULO Moreira
 
Introdução à programação por objectos final
Introdução à programação por objectos finalIntrodução à programação por objectos final
Introdução à programação por objectos finalemcp11
 
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...odnanfer
 
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdfAPOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdfpedrina4
 
[Módulo 4] Tema: Teoria da Aprendizagem Significativa
[Módulo 4] Tema: Teoria da Aprendizagem Significativa [Módulo 4] Tema: Teoria da Aprendizagem Significativa
[Módulo 4] Tema: Teoria da Aprendizagem Significativa tecnodocencia_ufc
 
3.1 orientação objetos
3.1  orientação objetos3.1  orientação objetos
3.1 orientação objetosFrank Coelho
 
Hangout OOD – princípio da responsabilidade única
Hangout OOD – princípio da responsabilidade únicaHangout OOD – princípio da responsabilidade única
Hangout OOD – princípio da responsabilidade únicaPriscila Mayumi
 
Guia de estudos_1_-_mecanica
Guia de estudos_1_-_mecanicaGuia de estudos_1_-_mecanica
Guia de estudos_1_-_mecanicaildoslides
 

Semelhante a Conceitos de Orientação a Objeto (17)

Aula 02 - Classes em C++ ( Parte 1 )
Aula 02 - Classes em C++ ( Parte 1 )Aula 02 - Classes em C++ ( Parte 1 )
Aula 02 - Classes em C++ ( Parte 1 )
 
Aula02
Aula02Aula02
Aula02
 
java paradigma oo
java paradigma oojava paradigma oo
java paradigma oo
 
2.1 introdução a oo
2.1 introdução a oo2.1 introdução a oo
2.1 introdução a oo
 
Introdução à programação por objectos final
Introdução à programação por objectos finalIntrodução à programação por objectos final
Introdução à programação por objectos final
 
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...
01 introducao-a-programacao-orientada-a-objetos-programacao-orientada-a-objet...
 
Aula 09 - introducao oo
Aula 09 - introducao ooAula 09 - introducao oo
Aula 09 - introducao oo
 
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdfAPOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
 
Orientação à objetos conceituação
Orientação à objetos   conceituaçãoOrientação à objetos   conceituação
Orientação à objetos conceituação
 
Alfabetização rótulos
Alfabetização rótulosAlfabetização rótulos
Alfabetização rótulos
 
[Módulo 4] Tema: Teoria da Aprendizagem Significativa
[Módulo 4] Tema: Teoria da Aprendizagem Significativa [Módulo 4] Tema: Teoria da Aprendizagem Significativa
[Módulo 4] Tema: Teoria da Aprendizagem Significativa
 
3.1 orientação objetos
3.1  orientação objetos3.1  orientação objetos
3.1 orientação objetos
 
Java 00 Poo
Java 00 PooJava 00 Poo
Java 00 Poo
 
Aula 7
Aula 7Aula 7
Aula 7
 
Virada Tecnológica 2017
Virada Tecnológica 2017Virada Tecnológica 2017
Virada Tecnológica 2017
 
Hangout OOD – princípio da responsabilidade única
Hangout OOD – princípio da responsabilidade únicaHangout OOD – princípio da responsabilidade única
Hangout OOD – princípio da responsabilidade única
 
Guia de estudos_1_-_mecanica
Guia de estudos_1_-_mecanicaGuia de estudos_1_-_mecanica
Guia de estudos_1_-_mecanica
 

Mais de Ricardo Guerra Freitas

2006 - Microsot e Open Source uma visão comparativa dos modelos.ppt
2006 - Microsot e Open Source uma visão comparativa dos modelos.ppt2006 - Microsot e Open Source uma visão comparativa dos modelos.ppt
2006 - Microsot e Open Source uma visão comparativa dos modelos.pptRicardo Guerra Freitas
 
2006 - Tipos de Projeto & IDE do Visual Studio.ppt
2006 - Tipos de Projeto & IDE do Visual Studio.ppt2006 - Tipos de Projeto & IDE do Visual Studio.ppt
2006 - Tipos de Projeto & IDE do Visual Studio.pptRicardo Guerra Freitas
 
2006 - FrameWorkdotNET Ricardo Guerra.ppt
2006 - FrameWorkdotNET Ricardo Guerra.ppt2006 - FrameWorkdotNET Ricardo Guerra.ppt
2006 - FrameWorkdotNET Ricardo Guerra.pptRicardo Guerra Freitas
 
2006 - Distribuindo sua Aplicação.ppt
2006 - Distribuindo sua Aplicação.ppt2006 - Distribuindo sua Aplicação.ppt
2006 - Distribuindo sua Aplicação.pptRicardo Guerra Freitas
 
2006 - Introdução a Objetos Linguagem e Padrões.ppt
2006 - Introdução a Objetos Linguagem e Padrões.ppt2006 - Introdução a Objetos Linguagem e Padrões.ppt
2006 - Introdução a Objetos Linguagem e Padrões.pptRicardo Guerra Freitas
 
MoodleMoot 2023 - Ricardo Guerra - Plugins_v3.pptx
MoodleMoot 2023 - Ricardo Guerra - Plugins_v3.pptxMoodleMoot 2023 - Ricardo Guerra - Plugins_v3.pptx
MoodleMoot 2023 - Ricardo Guerra - Plugins_v3.pptxRicardo Guerra Freitas
 
MoodleMoot 2023 - Ricardo Guerra - Ambiente multi-empresa IOMAD.pptx
MoodleMoot 2023 - Ricardo Guerra - Ambiente multi-empresa IOMAD.pptxMoodleMoot 2023 - Ricardo Guerra - Ambiente multi-empresa IOMAD.pptx
MoodleMoot 2023 - Ricardo Guerra - Ambiente multi-empresa IOMAD.pptxRicardo Guerra Freitas
 
Olive etal formerstudentsperceptionimprovementpotentialconceptualmodelingprac...
Olive etal formerstudentsperceptionimprovementpotentialconceptualmodelingprac...Olive etal formerstudentsperceptionimprovementpotentialconceptualmodelingprac...
Olive etal formerstudentsperceptionimprovementpotentialconceptualmodelingprac...Ricardo Guerra Freitas
 
Windows 10 technical preview - design and news
Windows 10 technical preview - design and newsWindows 10 technical preview - design and news
Windows 10 technical preview - design and newsRicardo Guerra Freitas
 

Mais de Ricardo Guerra Freitas (20)

2006 - Microsot e Open Source uma visão comparativa dos modelos.ppt
2006 - Microsot e Open Source uma visão comparativa dos modelos.ppt2006 - Microsot e Open Source uma visão comparativa dos modelos.ppt
2006 - Microsot e Open Source uma visão comparativa dos modelos.ppt
 
2006 - SegundaAula.ppt
2006 - SegundaAula.ppt2006 - SegundaAula.ppt
2006 - SegundaAula.ppt
 
2006 - Linguagem VB II.ppt
2006 - Linguagem VB II.ppt2006 - Linguagem VB II.ppt
2006 - Linguagem VB II.ppt
 
2006 - ADONET.ppt
2006 - ADONET.ppt2006 - ADONET.ppt
2006 - ADONET.ppt
 
2006 - ASP.NET.ppt
2006 - ASP.NET.ppt2006 - ASP.NET.ppt
2006 - ASP.NET.ppt
 
2006 - Tipos de Projeto & IDE do Visual Studio.ppt
2006 - Tipos de Projeto & IDE do Visual Studio.ppt2006 - Tipos de Projeto & IDE do Visual Studio.ppt
2006 - Tipos de Projeto & IDE do Visual Studio.ppt
 
2006 - CURSOINTRODUÇÃOADOTNET.ppt
2006 - CURSOINTRODUÇÃOADOTNET.ppt2006 - CURSOINTRODUÇÃOADOTNET.ppt
2006 - CURSOINTRODUÇÃOADOTNET.ppt
 
2006 - FrameWorkdotNET Ricardo Guerra.ppt
2006 - FrameWorkdotNET Ricardo Guerra.ppt2006 - FrameWorkdotNET Ricardo Guerra.ppt
2006 - FrameWorkdotNET Ricardo Guerra.ppt
 
2006 - Linguagem VB.ppt
2006 - Linguagem VB.ppt2006 - Linguagem VB.ppt
2006 - Linguagem VB.ppt
 
2006 - Distribuindo sua Aplicação.ppt
2006 - Distribuindo sua Aplicação.ppt2006 - Distribuindo sua Aplicação.ppt
2006 - Distribuindo sua Aplicação.ppt
 
2006 - Tratamento de Erro e Debug.ppt
2006 - Tratamento de Erro e Debug.ppt2006 - Tratamento de Erro e Debug.ppt
2006 - Tratamento de Erro e Debug.ppt
 
2006 - Introdução a Objetos Linguagem e Padrões.ppt
2006 - Introdução a Objetos Linguagem e Padrões.ppt2006 - Introdução a Objetos Linguagem e Padrões.ppt
2006 - Introdução a Objetos Linguagem e Padrões.ppt
 
MoodleMoot 2023 - Ricardo Guerra - Plugins_v3.pptx
MoodleMoot 2023 - Ricardo Guerra - Plugins_v3.pptxMoodleMoot 2023 - Ricardo Guerra - Plugins_v3.pptx
MoodleMoot 2023 - Ricardo Guerra - Plugins_v3.pptx
 
MoodleMoot 2023 - Ricardo Guerra - Ambiente multi-empresa IOMAD.pptx
MoodleMoot 2023 - Ricardo Guerra - Ambiente multi-empresa IOMAD.pptxMoodleMoot 2023 - Ricardo Guerra - Ambiente multi-empresa IOMAD.pptx
MoodleMoot 2023 - Ricardo Guerra - Ambiente multi-empresa IOMAD.pptx
 
MoodleMoot 2022 - competencias
MoodleMoot 2022 - competenciasMoodleMoot 2022 - competencias
MoodleMoot 2022 - competencias
 
MoodleMoot 2022 - plugins
MoodleMoot 2022 - pluginsMoodleMoot 2022 - plugins
MoodleMoot 2022 - plugins
 
Windows 10 Anniversary Update
Windows 10 Anniversary UpdateWindows 10 Anniversary Update
Windows 10 Anniversary Update
 
Olive etal formerstudentsperceptionimprovementpotentialconceptualmodelingprac...
Olive etal formerstudentsperceptionimprovementpotentialconceptualmodelingprac...Olive etal formerstudentsperceptionimprovementpotentialconceptualmodelingprac...
Olive etal formerstudentsperceptionimprovementpotentialconceptualmodelingprac...
 
Windows 10 technical preview - design and news
Windows 10 technical preview - design and newsWindows 10 technical preview - design and news
Windows 10 technical preview - design and news
 
Windows 10 Technical Preview
Windows 10 Technical PreviewWindows 10 Technical Preview
Windows 10 Technical Preview
 

Conceitos de Orientação a Objeto

  • 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.
  • 14. Artigo Original (créditos) • http://www.linhadecodigo.com.br/artigos.asp?id_ac=851&pag=1
  • 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