Guest EU Postado Junho 30, 2005 Denunciar Share Postado Junho 30, 2005 ae galera, como q eu uso PROPRIEDADES ??tipooeu 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Julho 1, 2005 Denunciar Share Postado Julho 1, 2005 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? Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Guest Postado Julho 1, 2005 Denunciar Share Postado Julho 1, 2005 na verdade eu não entendi muito do conceito da propertytipoo q é esse SET e GETset é pra dar um valor e GET e pra pegar um valor certo...mais em q caso eu usaria uma propriedadetipo 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+ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Julho 2, 2005 Denunciar Share Postado Julho 2, 2005 na verdade eu não entendi muito do conceito da propertytipoo q é esse SET e GETset é 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 parteSet(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? Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Guest Postado Julho 2, 2005 Denunciar Share Postado Julho 2, 2005 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+ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Guest Postado Julho 2, 2005 Denunciar Share Postado Julho 2, 2005 consegui ^^ public string mensagem { get { return MSN; } set { MSN = value; } }[code]no c# é mais estranhu ^^ heheehehehemais agra estou compriendendo mais o conceito de classes de propertyes ^^blza. t+ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Julho 2, 2005 Denunciar Share Postado Julho 2, 2005 consegui ^^ public string mensagem { get { return MSN; } set { MSN = value; } }[code]no c# é mais estranhu ^^ heheehehehemais 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? Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest EU
ae galera, como q eu uso PROPRIEDADES ??
tipoo
eu vi esse esmplo
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
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.