Ir para conteúdo
Fórum Script Brasil
  • 0

Propriedades


Guest EU

Pergunta

ph34r.gif ae galera, como q eu uso PROPRIEDADES ??

tipoo

eu vi esse esmplo

Public Property teste()

   Get

       teste = valor

     End Get

     Set(ByVal Value)

       valor = Value

      End Set

End Property

mais eu não intendi...

alguém poderia me explicar, e também me falar qual a diferença de usar uma popriedade ou uma variavel global ??

vlw

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Você usa propriedades do mesmo jeito que uma variável pública (e não global). Ou seja, se você fizer:

Public Class ClasseTeste
  Private variável As String

  Public Property minhapropriedade() As String
    Get
      return variável
    End Get

    Set(ByVal valor As String)
      variável = valor
    End Set
  End Property
End Class
Ou simplesmente fizer:
Public Class ClasseTeste
  Public minhapropriedade As String
End Class
Você poderá então fazer:
Dim obj As New ClasseTeste()
obj.minhapropriedade = "um teste"

A diferença é do que primeiro modo (com uma Property) você terá total controle de quais dados serão inseridos na propriedade e o que será retornado quando o valor da mesma for requisitado. Já no segundo caso (com uma simples variável pública) você não terá esse tipo de controle. Sacou? wink.gif

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

na verdade eu não entendi muito do conceito da property

tipo

o q é esse SET e GET

set é pra dar um valor e GET e pra pegar um valor certo...

mais em q caso eu usaria uma propriedade

tipo

Public Class ClasseTeste
 Private variável As String

 Public Property minhapropriedade() As String
   Get
     return variável
   End Get

   Set(ByVal valor As String)
     variável = valor
   End Set
 End Property
End Class
e nessa parte
Set(ByVal valor As String)

o que seria este valor ?

e como eu pegaria o valor da variavel ??

minhapropriedade.tostring() ???

desculpem a pergunt mieo "boba" mais eu não intendo muito de conceito OOP...

t+

Link para o comentário
Compartilhar em outros sites

  • 0

na verdade eu não entendi muito do conceito da property

tipo

o q é esse SET e GET

set é pra dar um valor e GET e pra pegar um valor certo...

Exato, Set define o valor da propriedade e Get obtém o mesmo. Lá no final vou explicar o motivo disso.

e nessa parte

Set(ByVal valor As String)
o que seria este valor ?
É o parâmetro que receberá o valor a ser passado. Note que ele é do mesmo tipo da propriedade (String).
e como eu pegaria o valor da variavel ?? minhapropriedade.tostring() ???
Apenas:
obj.minhapropriedade
Sendo que, é claro, você jogaria o resultado para onde quiser (uma textbox, uma msgbox, um outro objeto, etc.).
desculpem a pergunt mieo "boba" mais eu não intendo muito de conceito OOP...
Bom você tocar no assunto de OOP. O conceito de Encapsulamento, em OO, nos diz que devemos definir variáveis privadas e criar métodos que manipularão essas variáveis (chamados setters e getters). Isso serve para impedir o uso indiscriminado dessas variáveis, deixando seu acesso somente via métodos. Imagine a seguinte classe:
Public Class ClasseTeste
  Private variável As String

  Public Sub Setminhapropriedade(ByVal valor As String)
    variável = valor
  End Sub

  Public Function Getminhapropriedade() As String
    return variável
  End Function
End Class
Essa seria a maneira de fazer em C++ e Java, por exemplo. Nesse caso, o objeto "variável" é declarado como privado (Private), ou seja, só é visto pela classe e ninguém mais conseguirá mudá-lo ou obtê-lo. E, para definir um valor para "variável" é necessário chamar um método chamado Setminhapropriedade; do mesmo jeito, para obter o valor de "variável" faz-se necessário chamar um método chamado Getminhapropriedade. Um exemplo de utilização seria:
Dim obj As New ClasseTeste()
obj.Setminhapropriedade("um teste") 'Define a variável com um valor
MessageBox.Show(obj.Getminhapropriedade()) 'Mostra o valor da variável
O que se ganha com isso é que o objeto "variável" fica "protegido" dentro da classe e seu acesso somente é realizado através destes dois métodos (um que define e outro que obtém). Essa é a maneira de se fazer propriedades em uma linguagem que não possui instruções específicas para isso (como Java e C++, que citei anteriormente). No caso do VB você possui uma maneira mais cômoda, clara e simples de se fazer propriedades, que é utilizando Property. Assim como ali eu precisei definir dois métodos, no caso de uma Property você define duas "seções" dentro dela, uma representando o resgate do valor (Get) e outra representando a definição do valor (Set). Ou seja, você condensa os dois métodos acima em um único local. E a utilização também é muito mais clara:
Dim obj As New ClasseTeste()
obj.minhapropriedade = "um teste" 'Define a propriedade com um valor
MessageBox.Show(obj.minhapropriedade) 'Mostra o valor da propriedade
Além disso, você tem também a opção de criar propriedades somente-leitura (ReadOnly), ou seja, que só admitem a obtenção de um valor (Get) e não admitem a definição (Set). A vantagem de Properties é que você tem total controle sobre o que vai entrar e o que vai sair da propriedade. Um exemplo simples que imaginei foi o seguinte:
    Class Teste
        Private _frase As String

        Public Property Frase() As String
            Get
                Return _frase.ToUpper()
            End Get
            Set(ByVal valor As String)
                _frase = valor
            End Set
        End Property
    End Class
E, utilizando ela:
        Dim obj As New Teste()
        obj.Frase = "um teste"
        MessageBox.Show(obj.Frase)

Note que o valor inserido em "Frase" é todo em minúsculas, porém o resultado retornado na MessageBox vem todo em maiúsculas. Como isso acontece? A seção Get da propriedade converte para maiúsculas (ToUpper) o retorno da mesma.

Sacou? wink.gif

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

nossaaaa...

agra entendi esse conceito...

mais tipo como q eu passaria pra C# ??

public propery minhaProp()
{
 Get
  {
    return bla bla;
  }
  set
 {
   set bla bla;
 }
}

mais da erro x(...

t+

Link para o comentário
Compartilhar em outros sites

  • 0

consegui ^^

public string mensagem

{

get

{

return MSN;

}

set

{

MSN = value;

}

}

[code]

no c# é mais estranhu ^^ heheehehehe

mais agra estou compriendendo mais o conceito de classes de propertyes ^^

blza. t+

Link para o comentário
Compartilhar em outros sites

  • 0

consegui ^^

  public string mensagem

  {

  get

  {

    return MSN;

  }

  set

  {

    MSN = value;

  }

  }

[code]

no c# é mais estranhu ^^  heheehehehe

mais agra estou compriendendo mais o conceito de classes de propertyes ^^

blza. t+

Sim, é mais estranho em C# porque você tem que saber que existe uma variável especial chamada "value". No caso do código em VB.NET você já explicita o nome dela na declaração do Set.

Ah, e brother, se cadastra aí no fórum e ajude a nossa comunidade a crescer, beleza? wink.gif

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...