25
AULA 1 - Prof a . ADRIANA SICSÚ, DSc. DESENVOLVIMENTO DE SOFTWARE AULA 6 – Programação Orientada a Objetos Prof a : ADRIANA SICSÚ, DSc. [email protected]

Aula 06 (1)

Embed Size (px)

Citation preview

AULA 1 - Profa. ADRIANA SICSÚ, DSc.

DESENVOLVIMENTO DE SOFTWARE AULA 6 – Programação Orientada a

ObjetosProfa: ADRIANA SICSÚ, DSc.

[email protected]

OBJETIVOS DA AULA• Conceitos da Programação Orientada a Objetos

– Objeto– Classe

•Instância de uma classe•Membros de uma classe ( Campos, Propriedades, Métodos, Eventos)

– Membros Compartilhados– Encapsulamento– Herança– Modificadores de Acesso– Polimorfismo– Métodos Construtores

2

Programação Orientação a Objetos

• Objeto É a abstração de elementos concretos ou abstratos, existentes no mundo real.

3

Objetocaracterísticascomportamentos

AutomóvelAutomóvel

Características: Vermelho 2 portas 1977

Comportamento: Ligar() Acender o Farol()

Programação Orientação a Objetos

• ClasseUma classe descreve as

características comuns de um conjunto de objetos semelhantes.

4

Nome

Atributos

MetodosAutomóvelAutomóvel

Automóvel

CorAnoFabricacaoNrPortasLigar()AcenderFarol()

Programação Orientação a Objetos

5

Um objeto constitui uma entidade concreta com tempo e espaço de existência, ou seja, um objeto é a representação de uma entidade real de uma determinada classe.

Definir uma classe significa, em programação, definir um modelo com os atributos (dados) e métodos (as funções) associados a essa entidade.

Classe x ObjetosClasse x Objetos

XX

Programação Orientação a Objetos

Criando uma Classe em VB

Public Class NomedaClasse ' definição dos membros da classeEnd Class

Ponto

X : doubleY : double

Public Class Ponto Public x As Double Public y As DoubleEnd Class

Membros de uma Classe

7

Atributos

Campos: Campos: São atributos (variáveis) da classe que podem ser acessados diretamente.Propriedades: Propriedades: São atributos (variáveis) da classe que definem as propriedades dos objetos da classe e podem ser acessados somente através dos métodos de acesso, chamados Set (para atribuir um valor à propriedade) e Get (para obter o valor da propriedade).

Propriedades:Garante-se a integridade das propriedades,

restringindo-se o acesso a estas somente pelos respectivos métodos Set e Get, evitando-se que elas sejam acessadas por outros métodos cujos comportamentos não são garantidos.

Membros de uma Classe

8

Atributos

Propriedades: Propriedades: O VB 2010 tem suporte ao Auto-Implemented Properties que cria automaticamente os métodos Get e Set da propriedade quando se usa a sintaxe a seguir:

Property NomedaPropriedade As Tipo

Exemplo: Public Class Conta Public Property saldo As DecimalEnd Class

Membros de uma Classe Campos

9

PropriedadesModule Module1

  Sub Main() Dim ponto1 As Ponto ponto1 = New Ponto() ponto1.x = 1.0 ponto1.y = 2.0 Console.Write("A coordenada x do ponto1 é: ") Console.WriteLine(ponto1.x) Console.Write("A coordenada y do ponto1 é: ") Console.WriteLine(ponto1.y) Console.ReadKey() End Sub  Public Class Ponto ' definição dos membros da classe Public x As Double Public y As Double End Class End Module

Module Module1  Sub Main() Dim conta1 As Conta conta1 = New Conta() conta1.Saldo = 1000.5 Console.Write("O saldo da sua conta é: ") Console.WriteLine(conta1.Saldo) Console.ReadKey() End Sub  Public Class Conta Public Property Saldo As Decimal End Class End Module

Membros de uma Classe

10

MétodosSão as ações (funções, procedimentos ou serviços) que os objetos da classe podem realizar.

Conta

Saldo: double

Exibir()

Module Module1  Sub Main() Dim conta1 As Conta conta1 = New Conta conta1.Saldo = 1000.5 conta1.Exibir() End Sub  Public Class Conta Public Property Saldo As Decimal Public Sub Exibir() Console.Write("O saldo da sua conta é: ") Console.WriteLine(Saldo) Console.ReadKey() End Sub  End Class End Module

Membros de uma Classe

11

EventosSão notificações que um objeto pode receber ou transmitir.

Eventos permitem que objetos realizem ações, chamadas de função de tratamento do evento, sempre que uma ocorrência específica ocorrer.

As funções de tratamento de evento são associadas a eventos de um objeto.

Membros Compartilhados• São membros que pertencem à classe e são compartilhados por todos os objetos da classe.

• Os membros compartilhados são acessados referenciando-se o nome da classe.

• Os membros compartilhados são conhecidos também como membros estáticos.

12

Definindo Membros Compartilhados:

Shared NomedoMembro As Tipo

Membros CompartilhadosModule Module1  Sub Main() Dim conta1 As Conta conta1 = New Conta Conta.TotalContas = Conta.TotalContas + 1 conta1.Saldo = 1000 conta1.Exibir() Dim conta2 As Conta conta2 = New Conta Conta.TotalContas = Conta.TotalContas + 1 conta2.Saldo = 2000 conta2.Exibir()  Console.Write("O total de contas é: ") Console.WriteLine(Conta.TotalContas) Console.ReadKey()  End Sub

Public Class Conta Public Property Saldo As Decimal Public Shared TotalContas As Integer = 0 Public Sub Exibir() Console.Write("O saldo da sua conta é: ") Console.WriteLine(Saldo) End Sub End ClassEnd Module

Encapsulamento• A abordagem da programação orientada a objetos oferece o conceito de encapsulamento que agrupa de delimita na classe a declaração de todas as variáveis (campos ou propriedades) e métodos (funções). Desta forma, ao encontrar-se o código de definição da classe, conseguimos em um trecho do código encontrar todos os seus membros, isto é, todas as variáveis (campos ou propriedades) e os métodos (funções) da classe.

14

Encapsulamento• O encapsulamento permite que o acesso a certos membros (campos, propriedades ou métodos) da classe sejam acessados somente através de certos métodos da classe. Isto permite criar uma interface para ocultar e proteger os membros da classe que são acessíveis somente através dos métodos da interface da classe.

15

Exemplo: É importante que a propriedade saldo de uma classe ContaCorrente seja acessível apenas através dos respectivos métodos set e get da classe, ao invés de ser acessível por qualquer função da aplicação.

Herança• A herança permite o reaproveitamento do código entre classes utilizando-se o conceito de generalização e especialização.

• Superclasse - define os membros genéricos e comuns

• Subclasses - herdam os membros da superclasse e definem apenas as diferenças em relação a superclasse

16

EmpregadoNomeEndereçoTelefone

MotoristaNr. CarteiraTipo

EngenheiroCREA

Para criar uma nova subclasse, procura-se uma superclasse adequada e se codifica apenas as especializações (diferenças) na subclasse.

Esta abordagem permite aumentar a produtividade no desenvolvimento de códigos e melhorar a compreensão e o controle sobre estes, porque os agrupa em uma estrutura hierárquica.

Herança

1717

ContaSaldo

Exibir()

ContaRemuneradaTaxaRemuneracao

ExibirRemuneracao()

Module Module1  Sub Main() Dim conta1 As Conta conta1 = New Conta conta1.Saldo = 1000  Dim conta2 As

ContaRemunerada conta2 = New

ContaRemunerada() conta2.Saldo = 2000

conta2.TaxaRemuneracao = 1.0

conta2.Exibir()

conta2.ExibirRemuneracao()  Console.ReadKey()  End Sub 

Public Class Conta Public Property Saldo As

Decimal Public Sub Exibir() Console.Write("O saldo

da sua conta é: ")

Console.WriteLine(Saldo) End Sub End Class  Public Class ContaRemunerada Inherits Conta Public Property

TaxaRemuneracao As Decimal Public Sub

ExibirRemuneracao() Console.Write("A taxa

de remuneração da sua conta é: ")

Console.WriteLine(TaxaRemuneracao)

End Sub  End Class End Module

Modificadores de Acesso

18

Public : Define um objeto ou membro acessível em qualquer ponto da aplicação. Protected: Define um objeto ou membro acessível em qualquer ponto da classe ou das subclasses e pelos métodos da classe e das subclasses.  Private : Define um objeto ou membro acessível somente na classe e pelos métodos da classe. 

Shared : Define um membro da classe compartilhado por todos os objetos da classe.

• Os modificadores de acesso definem a acessibilidade (escopo) dos objetos e dos membros de uma classe.

Polimorfismo

A orientação a objetos permite que o mesmo item (classe ou membros de uma classe) seja redefinido com o mesmo nome, ou seja, diferentes itens podem ter o mesmo nome através do polimorfismo. Isto evita a proliferação de nomes diferentes de itens que são semanticamente iguais.

19

Objeto receptor

Objeto remetente (Jogo de futebol?!)

Objeto receptor

(Eduardo Bezerra -Princípios de Análise e Projeto de Sistemas com UML

- 2ª edição)

Polimorfismo - Exemplo

Sub ExibirChar(ByVal valorChar As Char) ' código para exibir valor do tipo

Char.End Sub

Sub ExibirInt(ByVal valorInteger As Integer)

' código para exibir valor do tipo Integer.

End Sub

Sub ExibirDouble(ByVal valorDouble As Double)

' código para exibir valor do tipo Double.

End Sub20

Não usam Polimorfismo

Polimorfismo - Exemplo Overloads Sub Exibir(ByVal valorChar As

Char) ' código para exibir valor do tipo

Char.End Sub

Overloads Sub Exibir(ByVal valorInteger As Integer)

' código para exibir valor do tipo Integer.

End Sub

Overloads Sub Exibir(ByVal valorDouble As Double)

' código para exibir valor do tipo Double.

End Sub21

Usando Polimorfismo

Foi utilizado o operador Overloads de

sobrecarga para suportar o

polimorfismo.

Polimorfismo - Exemplo • As chamadas às três funções passam a ser feitas pelo mesmo nome como nos exemplos a seguir:

 ' Chamar Exibir passando um literal do tipo Char. Exibir("9"c)' Chamar Exibir passando um literal do tipo Integer. Exibir (9)' Chamar Exibir passando um literal do tipo Double. Exibir (9.9R)

A distinção do método a ser chamado é feita através da lista de parâmetros (quantidade de parâmetros e tipos de parâmetros).

22

Métodos Construtores• Os métodos construtores possuem o mesmo nome da Classe e são definidos para inicializar os objetos da classe.

23

Saiba Mais ....

• Introdução a Objetos no Visual Basic.

http://msdn.microsoft.com/pt-br/library/zztsbwsx.aspx

24

Próxima Aula

– Sistemas de Banco de Dados

25