15

Click here to load reader

Metodos Constructor Y Destructor

  • Upload
    rezzaca

  • View
    14.634

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Metodos Constructor Y Destructor

Métodos constructor y

destructor

Page 2: Metodos Constructor Y Destructor
Page 3: Metodos Constructor Y Destructor

Constructor y destructor.

• Los constructores nos permiten inicializar la memoria y convertirla en un objeto listo para usarse, pero ahí ciertas reglas:

• El Constructor Inicializa la memoria y la convierte en un objeto utilizable.

• Si no se especifica un constructor:▫ El compilador genera un constructor predeterminado.▫ Accesibilidad pública.▫ Mismo nombre que el de la clase.▫ Sin tipo de retorno, ni siquiera null.▫ No espera argumentos .▫ Inicializa todos los campos en cero, falso o nulo

Page 4: Metodos Constructor Y Destructor

Constructor y destructor.

• Si se especifica un constructor:

▫ Se invoca cuando se inicializa el objeto.

▫ Se puede sobrecargar.

Page 5: Metodos Constructor Y Destructor

Características de un constructor

predeterminado.• Todos los campos se inicializan con cero.

• Campos numéricos (int, double, decimal, etc..) se inicializan a cero.

• Campos bool se inicializan en false.

• Tipos de referencia(como los objetos) se inicializan en null.

• Tipos struct se inicializan para contener valores de cero.

• Accesibilidad pública

Page 6: Metodos Constructor Y Destructor

Constructor.

• No siempre es recomendable el utilizar el constructor predeterminado, por ejemplo, no siempre es bueno el hecho de que el acceso sea público o quizás sea un problema el hecho de que se inicialicen a 0 ciertos valores, así mismo el código invisible es dificil de mantener, el código del constructor predeterminado es invisible. Debemos recordar que aunque los constructores son tipos especiales de métodos eso no implica que no puedan ser sobrecargados.

Page 7: Metodos Constructor Y Destructor

Ejemplo.

Page 8: Metodos Constructor Y Destructor

Constructores.• Algo importante es que podemos modificar la accesibilidad de un

constructor. • Constructores privados: Se utilizan para evitar que los objetos se creen a

partir de una clase especifíca, imaginemos que desea crear una clase que provea cierta funcionalidad, pero no desea que los usuarios de esa clase puedan crear objetos con base en ella, bueno en este caso ponemos metodosy variables estáticas dentro de la clase, en este caso ya no es necesario crear instancias de la clase (objetos), sin embargo el constructor predeteminadoes public por predeterminación, lo cual implica que SI se pueden crear instancias de esa clase, aunque dichos objetos no tendrán ningún sentido ya que la clase está compuesta únicamente de métodos y variables estáticas, para evitar esto basta con modificar la accesibilidad del constructor haciendolo private impidiendo que se creen instancias de la clase. Al declarar un constructor C# no generará ningún constructor y al hacerlo privado evita que se creen instancias de esa clase.

• Constructores estáticos: Se emplean para asegurarse de que una clase siempre es inicializada antes de utilizarse, esto nos asegura que la clase se encuentra en un estado inicial bien definido antes de utilizarse.

Page 9: Metodos Constructor Y Destructor

Alcance.• El alcance delimita que regiones de código pueden referenciar un elemento

del programa, los modificadores de acceso son los que definen el alcance de los miembros de la clase y son:

Capacidad de Acceso Significado

public El acceso no se encuentra restringido.

protected El acceso está limitado a la clase actual, así como a las clases que hereden de ella.

internal El acceso está limitado al proyecto actual.

internal protected El acceso está limitado al proyecto actual, así como a los tipos derivados de ella.

private El acceso está limitado a la clase actual.

Page 10: Metodos Constructor Y Destructor

Reglas sobre el Alcance.

• Los espacios de nombre siempre son públicos (implícitamente). • Las clases siempre son públicas (implícitamente). • Los miembros de clase son privadas por predeterminación. Todo

esto a menos que se agregue un modificador de alcance para variar la capacidad de acceso el elemento.

• Recomendaciones: Solo deben hacerse públicos aquellos datos que los usuarios de su clase necesiten ver, aunque siempre es más recomendable en medida de lo posible el uso de atributos para acceder a dichos valores, NO DECLARE COMO PUBLICA UNA VARIABLE A MENOS QUE SEA E-S-T-R-I-C-T-A-M-E-N-T-E necesario.

• Para los efectos del curso se tratarán las variables de una manera no completamente segura por razones de legibilidad del código, pero una vez que obtengan más experiencia deben evitarlo.

Page 11: Metodos Constructor Y Destructor

Destructores y Terminadores.

• Provocan que las acciones finales de los objetos sean diferentes y no pueden ser determinadas por recolección de residuos, así mismo todos los objetos en la plataforma .NET tienen un método de Finalizar, si está presente, la recolección de residuos llamará al Destructor antes de reclamar la memoria binaria, en C# no se puede llamar o sobrescribir Object.Finalize. Un destructor es un mecanismo de limpieza de memoria.

Page 12: Metodos Constructor Y Destructor

Finalización.

• Cuando el recolector de basura libera los recursos utilizados por un objeto no referenciado, verifica primero si la clase del objeto no tiene un destructor o método Finalizepropio, si la clase cuenta con uno el será invocado antes de reciclar la memoría a la pila. Las instrucciones escritas en el destructor o método Finalize son únicamente para esa clase.

Page 13: Metodos Constructor Y Destructor

Destructores.

• En C# el método Finalize no está disponible de manera directa y no puede ser invocado y/o cancelado, se deberá colocar código para que sea ejecutado durante la finalización dentro de un destructor, dicho destructor tendrá el nombre de la clase antecedido por el símbolo ~. Ejemplo: Puede escribir un destructor para implementar la limpieza de un objeto.

• En C#, el método Finalize no está disponible directamente, y no puede invocar o cancelar el método Finalize. Debe colocar código para que sea ejecutado durante la finalización dentro de un destructor.

Page 14: Metodos Constructor Y Destructor
Page 15: Metodos Constructor Y Destructor

Modelando una tabla periódica

T.P.

Elementos Número atómico

Nombre

Elementos

NumeroAtomico intNombre stringSimbolo string

MostrarElemento()

Tabla