CLSSES E HERANCA

GEOVANI 22/04/2013 14:07:37
#422288
Pessoal alguem sabe me dizer como posso usar o atributos de uma classe sem ser por herança?[txt-size=2] [/txt-size]
JABA 22/04/2013 17:36:29
#422302
Não ficou muito claro. Coloque ai o que você está tentando fazer pra que possamos te orientar melhor.

Veja se é isso que precisa:

Public Class Pessoa

Private Property ID as integer
Property Nome as String


End Class

Public Class Cliente
Inherits Pessoa


End Class


Dessa forma não conseguirá usar Cliente.ID = 10 porque a propriedade está como privada na classe pessoa.
Mas dá para usar Cliente.Nome = [Ô]Rodrigo[Ô] porque a proprieade Nome está publica.

KERPLUNK 22/04/2013 17:39:17
#422303
Você estaria falando de atributos de classe e propriedades? Se for, não entendi o que herança tem a haver com isso...
GEOVANI 23/04/2013 10:48:52
#422348
[txt-size=1]Tenho uma classe chamada Produto com atributos (código, nome e valor). Só que essa classe não está ligada com a Super Classe Encomenda e nem com as subClasses Encomenda Terceirizada e Encomenda expressa. Só que para calcular o valor total das encomendas, preciso do valor dos produtos.... Ai está minha dúvida, como pegar o valor dos produtos se a classe produto não tem nenhuma ligação com as outras.[/txt-size]
KERPLUNK 23/04/2013 11:16:54
#422354
Bom, pra começar o que você se refere como atributos, são chamados propriedades, atributo é outra coisa.
Respondendo sua questão. Encomenda, contém produtos e não produtos contém encomentas, então, as classes de encomenda, seja qual for o tipo, vão conter X produtos, além dos dados da encomenda em si, que podem conter mais valores a serem inclusos na soma. Então:
Valores de encomenda + Soma de produtos = valor total

Então para criar suas classes de encomenda, inclua nelas propriedade do tipo List<T> de produto. Com isso, você pode adicionar quantos produtos quiser e somá-los usando até mesmo uma simples expressão lambda
JABA 23/04/2013 11:38:51
#422356
O teu caso é parecido com Pedido, ItemPedido e Produto.

Class Pedido

property Itens as List(Of ItemPedido)

Public Function GetTotal() as Decimal
dim total as decimal
for each item as ItemPedido in Itens
total = total + (item.Produto.Preco * item.Quantidade)
next
return total
End Function

End Class

Class ItemPedido

property Produto as Produto
property Quantidade as Integer

End Class

Class Produto

property Nome as String
property Preco as Decimal
property Quantidade as Integer

End Class
KERPLUNK 23/04/2013 12:05:07
#422361
Substitua:
Public Function GetTotal() as Decimal
dim total as decimal
for each item as ItemPedido in Itens
total = total + (item.Produto.Preco * item.Quantidade)
next
return total
End Function

Por:
Public Function GetTotal() As Decimal
Return y.Sum(Function(som) som.valor)
End Function
Faça seu login para responder