Jump to content
Fivewin Brasil

Classes (Resolvido)


AVInfo Sistemas

Recommended Posts

Galera... como sou oriundo do Java, estou usando bastante classes em FW por já conhecer o conceito de orientação a objetos. Porém surgiu uma dúvida no uso das classes. Alguém sabe me dizer se é necessário excluir os objetos criados da memória de maneira manual ou o FW já faz isso de maneira automatica assim como a VM do Java quando uma variável perde a referência a um objeto ?

EX:

oObj := TOBJ():NEW() //Crio o Primeiro objeto

oObj := TOBJ():NEW() //Crio o segundo objeto com uma nova referência na mesma variável

** Porém o primeiro objeto não sei c continua ou não na memória. Alguém sabe ?

Xharbour 1.2.1 - Fw 10.10 - WS e Pelles

tominem@hotmail.com

Editado por - sdinfo on 01/08/2012 17:13:41

Link to comment
Share on other sites

Galera... como sou oriundo do Java, estou usando bastante classes em FW por já conhecer o conceito de orientação a objetos. Porém surgiu uma dúvida no uso das classes. Alguém sabe me dizer se é necessário excluir os objetos criados da memória de maneira manual ou o FW já faz isso de maneira automatica assim como a VM do Java quando uma variável perde a referência a um objeto ?

EX:

oObj := TOBJ():NEW() //Crio o Primeiro objeto

oObj := TOBJ():NEW() //Crio o segundo objeto com uma nova referência na mesma variável

** Porém o primeiro objeto não sei c continua ou não na memória. Alguém sabe ?

Xharbour 1.2.1 - Fw 10.10 - WS e Pelles

tominem@hotmail.com

Editado por - sdinfo on 01/08/2012 17:13:41

Link to comment
Share on other sites

O primeiro objeto nao existe mais, pois não existe variavel que referencia a ele e para ter certeza que ele saiu da memória basta executar a funcao:

HB_GCALL(.T.)

Porem o (x)Harbour tem esse controle internamente e de tempos em tempos ele limpa da memória isso.

Sobre o que foi colocado acima sobre o metodo END em objetos ele só vai funcionar se a classe tem o método END ou recebe de herança o método. END para finalizar objeto não é regra.

Somente para complementar, eu faço como foi indicado na primeira resposta. Apenas igualo a variavel a NIL e quando o programa retorna para o MENU PRINCIPAL do meu sistema executo a função HB_GCALL(.T.) mas apenas para garantir.

abraços,

citação:

Galera... como sou oriundo do Java, estou usando bastante classes em FW por já conhecer o conceito de orientação a objetos. Porém surgiu uma dúvida no uso das classes. Alguém sabe me dizer se é necessário excluir os objetos criados da memória de maneira manual ou o FW já faz isso de maneira automatica assim como a VM do Java quando uma variável perde a referência a um objeto ?

EX:

oObj := TOBJ():NEW() //Crio o Primeiro objeto

oObj := TOBJ():NEW() //Crio o segundo objeto com uma nova referência na mesma variável

** Porém o primeiro objeto não sei c continua ou não na memória. Alguém sabe ?

Xharbour 1.2.1 - Fw 10.10 - WS e Pelles

tominem@hotmail.com


id=quote>id=quote>

Eduardo Motta

emotta@gmail.com.br

FWH 9.09 (original) - xHARBOUR 1.2.1 (comercial e original) - SQLRDD

AJbJ

Editado por - emotta on 01/08/2012 14:00:14

Link to comment
Share on other sites

citação:

O primeiro objeto nao existe mais, pois não existe variavel que referencia a ele e para ter certeza que ele saiu da memória basta executar a funcao:

HB_GCALL(.T.)

Porem o (x)Harbour tem esse controle internamente e de tempos em tempos ele limpa da memória isso.

Sobre o que foi colocado acima sobre o metodo END em objetos ele só vai funcionar se a classe tem o método END ou recebe de herança o método. END para finalizar objeto não é regra.

Somente para complementar, eu faço como foi indicado na primeira resposta. Apenas igualo a variavel a NIL e quando o programa retorna para o MENU PRINCIPAL do meu sistema executo a função HB_GCALL(.T.) mas apenas para garantir.

abraços,

citação:

Galera... como sou oriundo do Java, estou usando bastante classes em FW por já conhecer o conceito de orientação a objetos. Porém surgiu uma dúvida no uso das classes. Alguém sabe me dizer se é necessário excluir os objetos criados da memória de maneira manual ou o FW já faz isso de maneira automatica assim como a VM do Java quando uma variável perde a referência a um objeto ?

EX:

oObj := TOBJ():NEW() //Crio o Primeiro objeto

oObj := TOBJ():NEW() //Crio o segundo objeto com uma nova referência na mesma variável

** Porém o primeiro objeto não sei c continua ou não na memória. Alguém sabe ?

Xharbour 1.2.1 - Fw 10.10 - WS e Pelles

tominem@hotmail.com


id=quote>id=quote>

Eduardo Motta

emotta@gmail.com.br

FWH 9.09 (original) - xHARBOUR 1.2.1 (comercial e original) - SQLRDD

AJbJ

Editado por - emotta on 01/08/2012 14:00:14


id=quote>id=quote>

Excelente explicação amigo.

Obrigado a tdos pelas respostas. Pessoal aki do forum é show de bola.

Xharbour 1.2.1 - Fw 10.10 - WS e Pelles

tominem@hotmail.com

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...