Comunidad de diseño web y desarrollo en internet online

Cuando se define una propiedad, cuando esta existira?

Citar            
MensajeEscrito el 10 Feb 2010 07:49 am
Cuando en una clase se define una propiedad y se le asigna un valor, cuando esta propiedad existira/sera accesible/tendra un valorl?
Cuando se cree una instancia de la clase, o cuando se ejecuta el constructor, o... ?

Tal ves el problema tenga que ver con herencia, ya que en este caso NO se crea una instancia de una clase, sino que se extiende de esta clase, y no se cuando esta propiedad de la superclase existira/sera accesible/tendra un valor en la subclase?

Por que mas o menos este es el resultado que estoy teniendo:
clase A -> crear propiedad miPropiedad:Number=9;
clase B -> extender de clase A
crear instacia de B -> trace miPropiedad //output: 0
en B -> super(); -> trace miPropiedad //output: 9

No estoy completamente seguro de si eso fue lo que paso, pero es mas o menos lo que creo haber observado.
El primer trace da un valor del cual no tengo idea de donde rayos salio, pero ojo no me da error de que no exista la variable, simplemente da 0 no se por que 0_o. Ya en en el segundo trace, despues de haber ejecutado en constructor de la superclase, encontes ya devuelve el valor declarado.

Es esto correcto?

Por cpucpu

82 de clabLevel



 

firefox
Citar            
MensajeEscrito el 10 Feb 2010 07:56 am
Cuando se crea una instancia de una Clase se llama inmediatamente a su función "constructora"
Lo que se suele hacer cuando extendemos de la clase es poner ese "super()" en la función constructora

Código ActionScript :

public class B extends A{
    public function B(){  //<--la función constructora
             super();
   }
}

Así cuando hacemos

Código ActionScript :

b=new B();
trace(b.miPropiedad)

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 10 Feb 2010 07:13 pm
No, no, si ya se.
A lo que voy es que si intento acceder una propiedad heredada, antes de ejecutar el constructor de la superclase, no me da un valor correcto, pero tampobo me marca error de que la propiedad no exista...??

Código ActionScript :

public class B extends A{ 
    public function B(){  //<--la función constructora 
         trace(miPropiedad);          
          super(); 
         trace(miPropiedad);          
   } 
} 


Código ActionScript :

b=new B(); 

//output incorrecto
//output correcto

Por cpucpu

82 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.