Por David Carlos Pomarico
dcpomarico@uol.com.br
Analista de Sistemas, atualmente trabalhando em uma multinacional, graduado em Tecnologia em Desenvolvimento de Softwares na Faculdade Informática e Administração Paulista (FIAP), palestrante acadêmico Microsoft em plataforma .NET, Co-Líder do Grupo de Usuários Codificando.Net SP ( www.codificando.net ), experiência de 2 anos em .NET, conhecimentos e práticas em Framework .NET, ASP.NET, WinForms, VB.NET, C#.NET, Crystal Reports.NET, Active Reports for .NET, MS SQL 2000, Oracle 9i, UML, XML.
Visite o meu The spoke:
http://br.thespoke.net/MyBlog/dpomarico/MyBlog.aspx

POO - Programação Orientada à Objetos - Parte 3 (Relacionamento entre classes)

 

Agora que já vimos a parte teórica e um pouco da parte prática de implementação de herança com VB.NET, vamos ver como fazer o relacionamento entre classes utilizando POO.

 

Situação:

Temos duas classes Cliente e Endereco que estão com relacionamento do tipo Composição. Para baixar uma apostila sobre diagrama de objetos clique aqui.

 

Agora vamos montar a classe Endereco. Os atributos da classe de endereço serão básicos: Logradouro, bairro, cidade e estado.

 

Public Class clsEndereco

 

    Private _Logradouro As String

    Public Property Logradouro() As String

        Get

            Return _Logradouro

        End Get

        Set(ByVal Value As String)

            _Logradouro = Value

        End Set

    End Property

 

    Private _Bairro As String

    Public Property Bairro() As String

        Get

            Return _Bairro

        End Get

        Set(ByVal Value As String)

            _Bairro = Value

        End Set

    End Property

 

    Private _Cidade As String

    Public Property Cidade() As String

        Get

            Return _Cidade

        End Get

        Set(ByVal Value As String)

            _Cidade = Value

        End Set

    End Property

 

    Private _Estado As String

    Public Property Estado() As String

        Get

            Return _Estado

        End Get

        Set(ByVal Value As String)

            _Estado = Value

        End Set

    End Property

 

    Public Sub New()

 

    End Sub

End Class

 

Para relacionar as classes, vamos criar um atributo do tipo Classe Endereço. Veja como fica nossa classe de Cliente:

 

Public Class clsCliente

    Private _Codigo As Integer

    Public Property Codigo() As Integer

        Get

            Return _Codigo

        End Get

        Set(ByVal Value As Integer)

            _Codigo = Value

        End Set

    End Property

 

    Private _Nome As String

    Public Property Nome() As String

        Get

            Return _Nome

        End Get

        Set(ByVal Value As String)

            _Nome = Value

        End Set

    End Property

 

    Private _Endereco As clsEndereco

    Public Property Endereco() As clsEndereco

        Get

            Return _Endereco

        End Get

        Set(ByVal Value As clsEndereco)

            _Endereco = Value

        End Set

    End Property

 

    Public Sub New()

 

    End Sub

 

End Class

 

Agora vamos implementar a chamada das classes. Primeiramente devemos saber se o relacionamento entre as classes é do tipo agregação ou composição. Se for do tipo composição, sabemos que há um relacionamento forte. Vamos aplicar no nosso exemplo.

Sabemos que a classe Cliente está fortemente relacionada à classe Endereco. Com esse dado, chego a conclusão de que ao instanciar a classe Cliente eu terei de ter um objeto endereço. Então eu posso criar o método NEW() com sobrecarga. Então vamos adicionar outro construtor na classe Cliente:

 

    Public Sub New(ByVal parEndereco As clsEndereco)

        Me.Endereco = parEndereco

    End Sub

 

Ou seja, ao instanciar a classe Cliente eu posso passar como parâmetro um objeto do tipo Endereco.

 

Agora vamos ver como fica a implementação da chamada das classes. Criei um form com um botão. Ao clicar neste botão ele irá instanciar os objetos.

 

Veja como ficou a implementação do botão:

 

        Dim Endereco As New clsEndereco

        Endereco.Logradouro = "Rua Tres Lagoas, 123"

        Endereco.Bairro = "Bairro Azul"

        Endereco.Cidade = "São Paulo"

        Endereco.Estado = "SP"

 

        Dim Cliente As New clsCliente(Endereco)

        Cliente.Codigo = 1

        Cliente.Nome = "David Pomarico"

 

Assim estará feito o relacionamento entre as classes. Se eu precisar pegar o Logradouro do Cliente, eu posso utilizar o atributo Endereco do objeto Cliente:

 

MessageBox.Show(Cliente.Endereco.Logradouro)

 

Existe outra forma de setar o atributo Endereco da classe Cliente. Deixei os dois exemplos para você escolher qual a melhor forma de implementar:

 

        Dim Cliente As New clsCliente

        Cliente.Codigo = 1

        Cliente.Nome = "David Pomarico"

        Cliente.Endereco = Endereco

 

Aguardem a parte 4 onde irei falar sobre Interface.

 

Para baixar o projeto, clique aqui.

 

 

 

Dicas para quem está começando:
Veja os próximos eventos
que você não pode perder :

22/11/2008 SQL Launch -
Linhares - ES
Por : devASPNet


22/11/2008 SQL Launch- SQL Server 2008
Rio Paranaiba - Viçosa - MG
Por : devASPNet


22/11/2008 SQL Launch - SQL Server 2008
Volta Redonda - RJ
Por : devASPNet


22/11/2008 SQL Launch- SQL Server 2008
Franca - SP
Por : devASPNet


22/11/2008 SQL Launch - SQL Server 2008
Canoinhas - SC
Por : devASPNet


22/11/2008 SQL Launch - SQL Server 2008
Tefé - AM
Por : devASPNet


25/11/2008 SQL Launch - SQL Server 2008
Rio de Janeiro - RJ
Por : devASPNet


27/11/2008 SQL Lauch- SQL Server 2008
São Paulo - SP
Por : devASPNet


28/11/2008 SQL Launch - SQL Server 2008
São Paulo - SP
Por : devASPNet


29/11/2008 SQL Launch- SQL Server 2008
Pedro Leopoldo - MG
Por : devASPNet


29/11/2008 SQL Launch- SQL Server 2008
Petropolis - RJ
Por : devASPNet


29/11/2008 SQL Launch
Floriano - PI
Por : devASPNet


29/11/2008 SQL Launch - SQL Server 2008
Rio de Janeiro - RJ
Por : devASPNet


29/11/2008 SQL Launch - SQL Server 2008
Natal - RN
Por : devASPNet


29/11/2008 SQL Launch- SQL Server 2008
Santa Maria - RS
Por : devASPNet


29/11/2008 SQL Launch
Ituiutaba - MG
Por : devASPNet


5/12/2008 Cloud Computing e o Windows Azure
São Paulo - SP
Por : devASPNet


6/12/2008 SQL Server 2008 Community Launch
São Paulo - SP
Por : devASPNet

Leituras imperdíveis para quem está começando:

º Otimizando a performance no ASP.NET::..
º Criando objetos de paginação personalizados na grid::..
º Uma cesta de compras em ASP.NET::..
º Utilizando o Refresh de parâmetros no .NET::..
º ASP.NET FORMS Authentication::..
º Utilizando propriedades dinâmicas no .NET::..
º Corrigindo problemas de deleção em grid com paginação::..
º Cuidado com os componentes de validação::..
º Otimizando o InitializeComponent::..
º Movendo fonte de aplicações entre máquinas::..
º Agilizando a performance da IDE do VS.NET::..
º Utilizando Short Circuit no VB.NET::..


























  Parceiros:
20% de desconto para os membros do grupo na aquisição de livros e inscrição para eventos

Receba dicas de programação e programação .NET:
E-mail:
Incluir Excluir