FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour METHOD new() CONSTRUCTOR
Posts: 1076
Joined: Fri Oct 07, 2005 10:41 PM
METHOD new() CONSTRUCTOR
Posted: Mon Nov 29, 2010 04:46 AM

Amigos,

Alguien que pueda aclararme el uso de constructor en la definicion del metodo new()

Gracias de antemano

William, Morales

Saludos



méxico.sureste
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: METHOD new() CONSTRUCTOR
Posted: Mon Nov 29, 2010 02:55 PM

Wlliam
Esto escribió Manu Expósito en un .doc sobre POO (19/10/2000)
Hay unos métodos especiales que conviene conocer y tener en cuenta ya que existen en casi todos los Sistemas Orientados al Objeto:
-los CONSTRUCTORES para hacer una reserva de memoria, en ellos se les dan valores por defecto a las DATAS, Variables de Instancia, Atributos ó Propiedades, como se quieran llamar, cada clase debería tener al menos uno. Normalmente se le da el nombre New, Init, Start, etc... siempre devuelven Self o sea al propio objeto.

Y esto Rafa Carmona (28/02/2001)
1.- CONSTRUCTOR
METHOD New() CONSTRUCTOR
Y esto que hace ? Simplemente hace que este metodo se retorne a si mismo.
Es el famoso Self. Aunque tu pongas RETURN NIL , Objects lo cambiara a
Return Self.
Porque ? Porque si no , esto de la POO se viene para abajo, porque no
podras acceder a ningun sitio, si no tienes sitio donde acceder ;)
Alguien por el Foro Pregunto que de donde sale Qself().
QSelf() lo monta el Prepo para que todos los metodos puedan acceder
al objecto, si no, como puedes acceder al objeto si no sabes donde esta ?
Pos Qself() te da el objeto de si mismo del cual estas.
Verdaderamente no se como funciona, pero por ahi van los tiros.

Saludos

Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 1076
Joined: Fri Oct 07, 2005 10:41 PM
Re: METHOD new() CONSTRUCTOR
Posted: Mon Nov 29, 2010 05:14 PM
MarioG,

Gracias Mario por contestar.

Pero he detectado lo siguiente.

Si le coloco la palabra constructor, se tarda mas que si no la coloco, esto en la iniciación de la clase. Y la uso como las clases de fivewin nativas.
Code (fw): Select all Collapse
CLASS miclase1
DATA uno
DATA dos
DATA tres

METHOD new() CONSTRUCTOR
METHOD alerta()
ENDCLASS

CLASS miclase2
DATA uno
DATA dos
DATA tres

METHOD new()
METHOD alerta()
ENDCLASS

FUNCTION main()
oCl1 := miclase1()
oCl1:new()
oCl1:alerta()

oCl2 := miclase2()
oCl2:new()
oCl2:alerta()
RETURN NIL


Y la otra pregunta sería, es necesario colocarle lo siguiente:
Code (fw): Select all Collapse
METHOD new CLASS miclase1


Entiendo que es para identificar el metodo en caso de haber mas de una clase en 1 prg, sería asi como lo tengo entendido o hay algo mas?
William, Morales

Saludos



méxico.sureste
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: METHOD new() CONSTRUCTOR
Posted: Mon Nov 29, 2010 11:19 PM

Creo que hay mejores programadores POO que nos pueden responder.
Ya que lo mio es muy limitado, trato de usar POO mas que nada para leer las clases de los fuentes FWH
En mi experiencia lo que puedo agregar es que:
Si en un .prg hay una clase no es necesario escribir (o sea ratifico lo que expresaste);

METHOD mimetodo() CLASS TMICLASS

puedo expresar
METHOD mimetodo()
...

return( self )

y lo que involuntariamente descrubrí es que si no pasas parámetros tambien podes escribir

METHOD mimetodo
...

return( self )

Lo otro es que si no pongo un New() CONSTRUCTOR, pongo cualquier método como primero y llamo a la clase, tampoco se queja.

obj:= TMICLASS():Mimetodo()

Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 1076
Joined: Fri Oct 07, 2005 10:41 PM
Re: METHOD new() CONSTRUCTOR
Posted: Tue Nov 30, 2010 06:06 AM

MarioG,

Precisamente por eso la inquietud, para que lo hagamos de la manera correcta.

Los tiempos en aplicaciones finales son muy importantes.

Gracias y seguimos investigando

William, Morales

Saludos



méxico.sureste

Continue the discussion