O segundo módulo foi sem dúvida o mais complicado de apresentar já que envolvia uma componente teórica muito grande relacionada com os fundamentos da programação orientada a objectos
De forma a tentar evitar muitos bocejos desenvolvi um conjunto grande de exercicios de forma a que se conseguisse associar cada um dos conceitos a um exercicio concreto.
Claro que mesmo assim, ouvir falar de heranças e interfaces, ou mesmo de métodos e propriedades soa sempre um pouco estranho a programadores com larga experiência em programação procedimental.
Aqui estãos o objectivos e os pdfs de cada uma das sessões:
1. Programação Orientada a Objectos
- Saber quando, como e em que bases assentou o aparecimento do conceito object-oriented
- Conhecer terminologia base (classe, objecto, propriedade, método)
- Conhecer conceitos base de OOP (abstracção, encapsulamento, herança, polimorfismo
- Ter noções de como estruturar o desenvolvimento de um projecto OO
- Saber o que é um Constructor
- Identificar tipos de acessos (public, private, friend, protected)
- Conhecer keyword Overloads
- Conhecer keyword MyBase
- Perceber o ciclo de vida de um objecto
- Conhecer opções OOP com Progress
2. Herança e Interfaces
- Perceber conceito de herança
- Dominar terminologia aplicável
- Conhecer keywords aplicáveis
- Perceber aplicabilidade de Classes Abstractas
- Perceber conceito de interfaces
- Distinguir utilização de interfaces e classes abstractas
Eventos
- Perceber para que servem
- Perceber modelo subscribe/publish dos eventos
- Saber definir eventos
- Saber despoletar eventos com RaiseEvents
- Saber como adicionar tratamento de eventos com Handles e AddHandler / RemoveHandler
Tratamento de Erros
- Conhecer conceito de tratamento de erros estuturado
- Saber usar try-catch-finally
- Distinguir entre verificação de erros e tratamento de excepções
- Bubble exception
- Excepções mais comuns
- Criar custom exceptions
E alguns links de referência
Perspectiva histórica
- http://en.wikipedia.org/wiki/Programming_paradigm
- http://en.wikipedia.org/wiki/Procedural_programming
http://en.wikipedia.org/wiki/Declarative_programming
OOP
- OOP: History: What were the origins of object oriented programming? [Alan Kay / Smalltalk]
- each object defines its own data and behavior
Terminologia base – http://en.wikipedia.org/wiki/Class_%28computer_science%29
Abstract classes vs. interfaces
classe
– These objects will:
• Have certain properties and certain operations they can perform.
• Not interact with each other in ways not provided by your code’s public
interface.
• Only change their current state over time, and only in response to a specific
request. (In VB .NET this request is made through a property change or a
method call.)
The point is as long as the objects satisfy their specifications as to what they
can do (their public interface) and thus how they respond to outside stimuli, the
user does not have to be interested in how that functionality is implemented. In
OOP-speak, you only care about what objects expose.
Progress
Deixe um comentário