2. 2
INTRODUCCCION
La programación "insegura" uno de los mayores culpables del
encarecimiento de la programación.
Dos de estos aspectos de seguridad son la
inicialización y la limpieza.
C++ introdujo el concepto de constructor
Java también adoptó el constructor, y
proporciona un método que libera
automáticamente recursos de memoria
cuando dejan de ser utilizados, se llama
garbage collector.
3. 3
Pasos para la inicialización
1.- Java inicializa siempre con valores por defecto las
variables que son miembros de la clases, métodos.
2.- El segundo paso para la inicialización correcta de
objetos es el uso de constructores.
3.-Java todavía dispone de una tercera línea de
actuación para evitar que haya variables sin inicializar
correctamente. Son los inicializadores.
Java no permite que haya variables
miembro que no estén inicializadas
VARIABLES NUMERICAS (PRIMITIVO) SE ESTABLECEN EN CERO
VARIABLES BOOLEAN SE ESTABLECEN EN FALSO
VARIABLES DE REFERENCIA SE ESTABLECEN EN NULL
4. 4
DEFINICION
El constructor de una clase es un tipo específico
de método (especial y estándar) que se usa para
inicializar los objetos de esa clase. Es una función
que se ejecuta automáticamente siempre al crear
un objeto.
La principal misión del Constructor es reservar
memoria e inicializar la variable miembro de la clase
En general, se los utiliza para inicializar los estados
de las variables de instancia
5. 5
Incluya Constructores en la declaracion de una Clase, para
asegurar que las variables de instancia de la clase contengan
valores válidos cuando se creen objetos de esa clase
TIPOS DE CONSTRUCTORES
1. Constructor por defecto (no-args)
2. Constructor de copia
3. Constructor común(personalizado)
6. 6
CARACTERISTICAS
Java invoca al constructor al crear el objeto.
Los Constructores no tienen valor de retorno (ni siquiera
void).
Su nombre es el mismo que el de la clase
Pueden usarse cualquier modificador de acceso
Se puede definir cero, uno o más constructores
Si ya tenemos un constructor con argumentos, no se
generará uno sin argumentos automáticamente.
7. 7
DECLARACION DEL CONSTRUCTOR
(SINTAXIS)
Modificador de Acceso nombreClase (lista de parámetros)
public Ventas (double precio ){
preciocontado=(precio*0.12)+precio;
System.out.println("El Precio al Contado es ;"+preciocontado);
}
}
8. 8
LLAMADA AL CONSTRUCTOR
nombreClase objeto = new nombreClase (<parametros>);
El constructor se invoca automáticamente cuando new
crea un objeto de esa clase.
objeto es una variable de referencia.
La instancia (new) reserva el lugar de almacenamiento e
invoca al constructor.
9. 9
REFERENCIA THIS
Si un parámetro tiene el mismo identificador (nombre) que una
variable de instancia se usa la palabra clave “this” para identificar
cual es la variable de instancia:
•Referencia al objeto actual.
• Permite invocar métodos del objeto actual.
• Permite referenciar atributos del objeto actual
• Permite devolver una referencia al objeto actual
• Permite invocaciones entre constructores
•Al acceder a variables de instancia de una clase, la
palabra clave this hace referencia a los miembros
de la propia clase
public class Pelicula {
private String titulo;
public void setTitulo(String titulo) {
this.titulo = titulo;
}
}
10. 10
REFERENCIA SUPER
La nueva clase hereda de la primera todos los métodos y los atributos
•Se usa para invocar constructores de la clase padre
•Debe ser la primera sentencia del constructor de la clase hijo
•Esta referencia también se usa para invocar cualquier método del padre.
•Si la superclase no tiene un constructor sin argumentos, se deberás definir
un constructor en la subclase .
class Animal {
Animal(String name) { }
}
class Caballo extends Animal {
Horse() {
super(); // error
}
}
super() llama al constructor de la clase de la que se hereda (extends).
Recuerda que todas las clases heredan en última instancia a la clase
Object.
11. 11
GARBAGE COLLECTOR
Se refiere a la limpieza de instancias (Objetos). Este proceso llevado
a cabo directamente por el JVM ("Java Virtual Machine") permite
liberar recursos, en su mayoría de memoria ("RAM") para ser
reutilizados por el sistema
•Toda instancia/referencia que sea asignada un valor de null es
elegible para "Garbage Collection"
•El JVM se hace cargo de iniciar el proceso de "Garbage Collection"
únicamente cuando determine que su memoria esta en proceso de
agotamiento
•Recorre la lista de espacios reservados observando el contador de
referencias de cada espacio. Si un contador ha llegado a cero
significa que ese espacio de memoria ya no se usa y, por tanto,
puede ser liberado.
12. 12
Memoria en Java
•Cuando se invoca el JVM para ejecutar una aplicación,
pedirá al sistema operativo suficiente memoria para
ejecutar la JVM propiamente dichas y algo de memoria libre
para que la aplicación pueda crear nuevos objetos.
•Cuando se crea un nuevo objeto, la JVM reservará
memoria para ese objeto dentro del área de memoria libre.
•Cuando el área de memoria libre se vuelve demasiado
pequeño, la JVM pedirá al sistema operativo más memoria.
•Cuando un objeto no se utiliza más, será destruido. Su
memoria será liberada y devuelta al área de memoria libre.