SlideShare una empresa de Scribd logo
1 de 11
CONSTRUCTORES EN JAVA
INTRODUCCION.-
A medida que progresa la revolución computacional, la programación "insegura"
se ha convertido en uno de los mayores culpables del encarecimiento de la
programación.
Dos de estos aspectos de seguridad son la inicialización y la limpieza. Muchos
de los fallos que se dan al programar ocurren cuando el programador olvida
inicializar una variable, objeto, etc. Esto es especialmente habitual en todos los
lenguajes de Programación, cuando los usuarios no saben cómo inicializar un
componente, o incluso cuándo deben hacerlo.
La eliminación es un problema especial porque es fácil olvidarse de un elemento
una vez que ya no se utiliza, puesto que ya no tiene importancia.
Por consiguiente, los recursos que ese elemento utilizaba quedan reservados y es
fácil acabar quedándose sin recursos (y el más importante, la memoria).
C++ introdujo el concepto de constructor, un método especial invocado
automáticamente en la creación de un objeto. Java también adoptó el constructor,
y además proporciona un método que cuando se especifica en el código libera
automáticamente recursos de memoria cuando dejan de ser utilizados, este
método se llama garbage collector.
En java no es necesaria la definición de destructores, pues el mismo lenguaje se
encarga de la eliminación y liberación de la memoria ocupada por un objeto, esto
se realiza cada vez que un objeto pierde todas sus referencias.
Un punto clave de la Programación Orientada a Objetos es el evitar información
incorrecta por no haber sido correctamente inicializadas las variables. Java no
permite que haya variables miembro que no estén inicializadas ( Si puede haber
variables locales de métodos sin inicializar, pero el compilador da un error si se
intentan utilizar sin asignarlas previamente un valor).
Pasos para la inicialización
1.- Java inicializa siempre con valores por defecto las variables que son
miembros de la clases, métodos, etc.
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.
DEFINICIÓN DE CONSTRUCTOR.-
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.
Son mensajes que recibe la clase para crear e inicializar un objeto para que tenga
valores correctos. Un objeto SIEMPRE debe tener valores correctos, desde que se
crea hasta que se destruye. Al utilizar un constructor, el compilador determina cual
de los objetos va a responder al mensaje (virtual) que hemos creado.
 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
TIPOS
1. Constructor por defecto (no-args)
Si no se define ningún constructor de una clase, el compilador generará un
constructor por defecto. El constructor por defecto no tiene argumentos y
simplemente sitúa ceros en cada byte de las variables instancia de un objeto. Si se
definen constructores para una clase, el constructor por defecto no se genera.
2. Constructor de copia
El constructor de copia se utilizan para inicializar un objeto con otro objeto de la
misma clase.
Construye un nuevo objeto como una copia del que se le pasa
Cuenta(Cuenta otra){
codigo = otra.codigo;
saldo = otra.saldo;
titular = otra.titular;
}
No se usa mucho dentro de las bibliotecas de clases de Java.
Existe en la clase String y las colecciones.
La forma preferida de obtener la copia de un objeto es utilizar el método clone.
3. Constructor común(personalizado)
El constructor común es aquel que recibe parámetros para asignarles como
valores iníciales a los datos miembros, o sea que al crear la instancia, se pasó
unos parámetros para inicializar .Si se declara algún constructor, entonces ya no
se puede usar el constructor personalizado. Es necesario usar el constructor
declarado en la clase.
 De entre todos los constructores que existan, tan sólo uno se ejecutará al
crear un objeto de la clase.
 DECLARACIÓN DE UN CONSTRUCTOR (SINTAXIS)
<modificador acceso> nombreClase ([lista de parámetros]) {
[declaraciones de variables locales]
sentencias
}
Donde
<[modificadores de acceso> Son los que permiten al programador quien accede a los
datos y métodos miembro de una clase pueden ser: public, protected, private.
nombreClase.- Representa el mismo nombre de la clase.
Dentro del código de un constructor generalmente suele existir inicializaciones de
variables y objetos, para conseguir que el objeto sea creado con dichos valores
iniciales.
[lista de parámetros] es una lista de declaraciones de parámetros separadas por
comas (,).
Cada una de las declaraciones de parámetros tiene la siguiente sintaxis:
tipo nomParametro
Donde tipo es el tipo del parámetro y puede ser uno de los tipos predefinidos
(char, byte, short, int, long, float o double) o una clase.
nomParametro es el nombre del parámetro.
Cada una de las declaraciones de variables locales tiene la siguiente sintaxis:
[declaracion de variables locales]
tipo nomVariable Donde tipo es el tipo de la variable local y puede ser uno de los
tipos predefinidos (char, byte, short, int, long, float o double) o una clase.
nomVariable es el nombre de la variable local.
Las sentencias pueden ser sentencias de expresión o simple, compuestas o
bloques y de control.
Ejemplo:
public class Clase {
private int enteroPrivado;
public Clase() { // constructor por defecto
enteroPrivado = 0;
}
public Clase(int entero) { // constructor personalizado
enteroPrivado = entero;
}
}
 LLAMADA AL CONSTRUCTOR
nombreClase objeto = new nombreClase(<lista 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.
En Java, cuando se instancia un objeto, siempre se hace una llamada directa al
constructor como argumento del operador new. Este operador se encarga de que
el sistema proporcione memoria para contener al objeto que se va a crear
Antes de ser instanciada con new no se consume memoria, simplemente es una
declaración de tipo.
Variable de Referencia.. una variable de referencia es usada para acceder al
lugar en memoria donde se almacena un objeto. Array, Collection y String, son
variables de referencia.
Ejemplo:
Clase elObjeto;
elObjeto = new Clase(); // llamada al constructor por medio de la variable de referencia elObjeto
O en una sola línea:
Clase elObjeto = new Clase();
Clase elObjeto = new Clase(5);
CARACTERÍSTICAS PRINCIPALES DE UN CONSTRUCTOR
En Java, los objetos son construidos. Cada vez que “creamos” un nuevo objeto, al
menos un constructor es invocado.
Se garantiza la inicialización de cada objeto (sus atributos) con un constructor
Java invoca al constructor al crear el objeto.
Los Constructores no tienen valor de retorno (ni siquiera void). Esto se
debe a que el tipo específico que debe devolver un constructor de clase es
el propio tipo de la clase.
Su nombre es el mismo que el de la clase. Su argumento implícito es el
objeto que se está creando.
Se puede definir cero, uno o más constructores para una clase.
Si no se define un constructor, el compilador crea uno por ausencia, el
cual no tiene parámetros llamado constructor por defecto.
Pueden usarse cualquier modificador de acceso.
Al igual que los demás métodos de una clase, los constructores pueden
tener también los modificadores de acceso public, prívate, protected. Si un
constructor es prívate, ninguna otra clase puede crear un objeto de esa
clase. En este caso, puede haber métodos public y static (factory methods)
que llamen al constructor y devuelvan un objeto de esa clase.
Se llama Constructor por defecto al constructor que no tiene argumentos.
El programador debe proporcionar en el código valores iniciales adecuados
para todas las variables miembro.
Una clase tiene varios constructores, que se diferencia por el tipo y el
número de sus argumentos (son un ejemplo típico de métodos
sobrecargados)
Si ya tenemos un constructor con argumentos, no se generará uno sin
argumentos automáticamente.
Cada constructor tiene, como primera sentencia, una llamada a un
constructor sobrecargado (this) o a un constructor de la superclase (super),
aunque esta línea puede ser agregada automáticamente por el compilador.
Un constructor de una clase puede llamar a otro constructor previamente
definido en la misma clase por medio de la palabra this. En este contexto,
la palabra this sólo puede aparecer en la primera sentencia de un
constructor.
El constructor de una sub-clase puede llamar al constructor de su súper-
clase por medio de la palabra super, seguida de los argumentos
apropiados entre paréntesis. De esta forma, un constructor sólo tiene que
inicializar por si mismo las variables no heredadas.
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:
Los métodos de instancia reciben el argumento this implícitamente se refiere al
mismo objeto.
• 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;
}
}
Se puede compartir código entre constructores usando la referencia this. Un
constructor invoca a otro pasándole los argumentos que requiere.
public class Pelicula {
private String titulo;
private String tipo;
public Pelicula()
{
this("Pelicula sin definir");
}
public Pelicula (String titulo) {
this.titulo = titulo;
}
public String getTitulo() {
return titulo;
}
}
TestThis.java
public class TestThis {
public static void main (String[] args) {
Pelicula pelicula1 = new Pelicula();
Pelicula pelicula2 = new Pelicula("Todo sobre mi madre");
System.out.println(pelicula1.getTitulo());
System.out.println(pelicula2.getTitulo());
}
}
REFERENCIA SUPER
Hace referencia a la Herencia de clases. La nueva clase hereda de la primera
todos los métodos y los atributos, con la posibilidad de definir unos atributos y
unos métodos nuevos o de volver a definir otros.
 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 dado que necesitarás un lugar desde donde
llamar a super con los argumentos necesarios. Ejemplo
class Animal {
Animal(String name) { }
}
class Horse 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.
public class Item {
protected float precio = 0;
Item (float precio) {
this.precio = precio;
}
}
public class Pelicula extends Item {
private String titulo = "";
Pelicula (float precio, String titulo) {
super(precio);
this.titulo = titulo;
}
}
Una subclase no hereda ningún constructor de la superclase, debe declararse
explícitamente.
Solo en caso no se declare explícitamente, se ejecutaran los constructores por
defecto de las superclases y finalmente de la subclase.
Pelicula pelicula = new Pelicula ();
// Inicia variables de la clase Item. Constructor por defecto.
// Inicia variables de la clase Pelicula. Constructor por defecto.
GARBAGE COLLECTOR
Se refiere a la limpieza de instancias (Objetos) las cuales han dejado de ser
utilizadas en un programa Java. 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, sin embargo, este proceso trae
consigo dos preguntas :
• Java podría ser el lenguaje más utilizados que depende de la recolección
de basura .
• Los beneficios de Garbage Collector son indiscutibles.
• El concepto de Garbage Collector fue inventado por John McCarthy en
1959.
• El programador no tiene que invocar a una subrutina para liberar memoria.
Que instancias/objetos son elegidos y liberados por el proceso de "Garbage
Collection" ?.
Toda instancia/referencia que sea asignada un valor de null es elegible para
"Garbage Collection", si la instancia/referencia no tiene un valor de null ésta no es
elegible para "Garbage Collection".
Aunque la instancia/referencia sea asignada con un valor de null ésta no será
liberada ("Garbage Collected") inmediatamente, sino hasta que el proceso de
"Garbage Collection" sea iniciado.
Quien invoca el proceso de "Garbage Collection" ? : El JVM ("Java Virtual
Machine") se hace cargo de iniciar el proceso de "Garbage Collection" únicamente
cuando éste (según sus algoritmos internos) determine que su memoria esta en
proceso de agotamiento, es hasta entonces que es liberada la memoria de las
instancias/referencias que se han declarado como elegibles para "Garbage
Collection".
Cuando se invoca el recolector de basura, 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.
BIBLIOGRAFIA
COMO PROGRAMAR JAVA, Deitel-Deitel, Quinta Edición
APRENDA JAVA COMO SI ESTUBIERA EN PRIMERO, Tencnum
http://slideshared.net
http://javabasico.osmosislatina.com/curso/progbasico2/constructores.htm
http://es.wikipedia.org/wiki/Constructor_%28inform%C3%A1tica%29
http://www.mailxmail.com/curso-java/definicion-constructores-clase-1
http://www.mitecnologico.com/Main/ElConstructor
http://toolboxnet.blogspot.com/2010/03/la-referencia-super-en-java-050103.html
http://javabasico.osmosislatina.com/curso/threadsgc.htm
http://javabasico.osmosislatina.com/curso/progbasico2/constructores.htm
http://www.arrakis.es/~abelp/ApuntesJava/ClasesII.htm

Más contenido relacionado

La actualidad más candente

5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptxSibilinoAndante
 
EJEMPLOS DESARROLLADOS
EJEMPLOS DESARROLLADOSEJEMPLOS DESARROLLADOS
EJEMPLOS DESARROLLADOSDarwin Durand
 
Modelo de desarrollo de software
Modelo de desarrollo de softwareModelo de desarrollo de software
Modelo de desarrollo de softwareYaskelly Yedra
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clasesstill01
 
Tipos de usuario en una Base de Datos
Tipos de usuario en una Base de DatosTipos de usuario en una Base de Datos
Tipos de usuario en una Base de Datosluis_eduardo_calero
 
Modelos de Ciclo de Vida del Software [Ventajas y Desventajas]
Modelos de Ciclo de Vida del Software [Ventajas y Desventajas]Modelos de Ciclo de Vida del Software [Ventajas y Desventajas]
Modelos de Ciclo de Vida del Software [Ventajas y Desventajas]Cloud Rodriguez
 
Poo programacion orientada a objetos - renee morales
Poo programacion orientada a objetos - renee moralesPoo programacion orientada a objetos - renee morales
Poo programacion orientada a objetos - renee moralesRenee Morales Calhua
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetosClara Patricia Avella Ibañez
 
Introducción a los patrones de diseño
Introducción a los patrones de diseñoIntroducción a los patrones de diseño
Introducción a los patrones de diseñoSoftware Guru
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetosjose_rob
 
Gestor de almacenamiento
Gestor de almacenamientoGestor de almacenamiento
Gestor de almacenamientoCarlos Mila
 
Paradigmas programacion
Paradigmas programacionParadigmas programacion
Paradigmas programacionLuis Peralta
 
Conexión desde una aplicación en java a un bd en mysql
Conexión desde una aplicación en java a un bd en mysqlConexión desde una aplicación en java a un bd en mysql
Conexión desde una aplicación en java a un bd en mysqlROQUE Caldas Dominguez
 
PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++die_dex
 

La actualidad más candente (20)

5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
 
EJEMPLOS DESARROLLADOS
EJEMPLOS DESARROLLADOSEJEMPLOS DESARROLLADOS
EJEMPLOS DESARROLLADOS
 
Modelo de desarrollo de software
Modelo de desarrollo de softwareModelo de desarrollo de software
Modelo de desarrollo de software
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Prueba de Caja Blanca
Prueba de Caja BlancaPrueba de Caja Blanca
Prueba de Caja Blanca
 
Ejercicios sql (1)
Ejercicios sql (1)Ejercicios sql (1)
Ejercicios sql (1)
 
Introducción a Angular
Introducción a AngularIntroducción a Angular
Introducción a Angular
 
Tipos de usuario en una Base de Datos
Tipos de usuario en una Base de DatosTipos de usuario en una Base de Datos
Tipos de usuario en una Base de Datos
 
Modelos de Ciclo de Vida del Software [Ventajas y Desventajas]
Modelos de Ciclo de Vida del Software [Ventajas y Desventajas]Modelos de Ciclo de Vida del Software [Ventajas y Desventajas]
Modelos de Ciclo de Vida del Software [Ventajas y Desventajas]
 
Caja blanca
Caja blancaCaja blanca
Caja blanca
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Poo programacion orientada a objetos - renee morales
Poo programacion orientada a objetos - renee moralesPoo programacion orientada a objetos - renee morales
Poo programacion orientada a objetos - renee morales
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos
 
Introducción a los patrones de diseño
Introducción a los patrones de diseñoIntroducción a los patrones de diseño
Introducción a los patrones de diseño
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetos
 
Gestor de almacenamiento
Gestor de almacenamientoGestor de almacenamiento
Gestor de almacenamiento
 
Paradigmas programacion
Paradigmas programacionParadigmas programacion
Paradigmas programacion
 
Intent en android
Intent en androidIntent en android
Intent en android
 
Conexión desde una aplicación en java a un bd en mysql
Conexión desde una aplicación en java a un bd en mysqlConexión desde una aplicación en java a un bd en mysql
Conexión desde una aplicación en java a un bd en mysql
 
PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++
 

Destacado

Clases Anidadas en java
Clases Anidadas en javaClases Anidadas en java
Clases Anidadas en javajent46
 
11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()Clara Patricia Avella Ibañez
 
Manejo de Eventos en java
Manejo de Eventos en javaManejo de Eventos en java
Manejo de Eventos en javaSilvana Vargas
 
Elementos de una clase
Elementos de una claseElementos de una clase
Elementos de una claseIsaias Toledo
 
Programación orientada a objetos (I)
Programación orientada a objetos (I)Programación orientada a objetos (I)
Programación orientada a objetos (I)Cristian
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1Clara Patricia Avella Ibañez
 

Destacado (9)

Constructores en Java
Constructores en JavaConstructores en Java
Constructores en Java
 
Clases Anidadas en java
Clases Anidadas en javaClases Anidadas en java
Clases Anidadas en java
 
11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()
 
Manejo de Eventos en java
Manejo de Eventos en javaManejo de Eventos en java
Manejo de Eventos en java
 
Introduccion a Java
Introduccion a JavaIntroduccion a Java
Introduccion a Java
 
Elementos de una clase
Elementos de una claseElementos de una clase
Elementos de una clase
 
Programación orientada a objetos (I)
Programación orientada a objetos (I)Programación orientada a objetos (I)
Programación orientada a objetos (I)
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1
 
Java orientado a objetos
Java orientado a objetosJava orientado a objetos
Java orientado a objetos
 

Similar a Contructores en java(grupo 8)

Similar a Contructores en java(grupo 8) (20)

Constructor Y Destructor
Constructor Y DestructorConstructor Y Destructor
Constructor Y Destructor
 
CONSTRUCTORES JAVA
CONSTRUCTORES JAVACONSTRUCTORES JAVA
CONSTRUCTORES JAVA
 
Constructores
ConstructoresConstructores
Constructores
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en Java
 
Constructores Java
Constructores JavaConstructores Java
Constructores Java
 
Cuestionario poo
Cuestionario pooCuestionario poo
Cuestionario poo
 
Cesar adrian barrios alarcon unidad 2
Cesar adrian barrios alarcon      unidad 2       Cesar adrian barrios alarcon      unidad 2
Cesar adrian barrios alarcon unidad 2
 
Cuestionario poo
Cuestionario pooCuestionario poo
Cuestionario poo
 
Cuestionario poo
Cuestionario pooCuestionario poo
Cuestionario poo
 
Cuestionario poo
Cuestionario pooCuestionario poo
Cuestionario poo
 
Cuestionario
Cuestionario Cuestionario
Cuestionario
 
Metodos Constructor Y Destructor
Metodos Constructor Y DestructorMetodos Constructor Y Destructor
Metodos Constructor Y Destructor
 
Datos Previos
Datos PreviosDatos Previos
Datos Previos
 
Datos previos
Datos previosDatos previos
Datos previos
 
Datos Previos
Datos PreviosDatos Previos
Datos Previos
 
Conceptos basicos POO
Conceptos basicos POOConceptos basicos POO
Conceptos basicos POO
 
Lenguaje de Programación Orientada a Objetos
Lenguaje  de  Programación  Orientada  a Objetos Lenguaje  de  Programación  Orientada  a Objetos
Lenguaje de Programación Orientada a Objetos
 
manual de C#
manual de C#manual de C#
manual de C#
 
Manual c# 2
Manual c# 2Manual c# 2
Manual c# 2
 
Manual de c#
Manual de c#Manual de c#
Manual de c#
 

Último

SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...JAVIER SOLIS NOYOLA
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtweBROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwealekzHuri
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Baker Publishing Company
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
plan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativaplan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativafiorelachuctaya2
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFlor Idalia Espinoza Ortega
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
Flores Nacionales de América Latina - Botánica
Flores Nacionales de América Latina - BotánicaFlores Nacionales de América Latina - Botánica
Flores Nacionales de América Latina - BotánicaJuan Carlos Fonseca Mata
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 

Último (20)

SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtweBROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
plan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativaplan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativa
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamica
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
Flores Nacionales de América Latina - Botánica
Flores Nacionales de América Latina - BotánicaFlores Nacionales de América Latina - Botánica
Flores Nacionales de América Latina - Botánica
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 

Contructores en java(grupo 8)

  • 1. CONSTRUCTORES EN JAVA INTRODUCCION.- A medida que progresa la revolución computacional, la programación "insegura" se ha convertido en uno de los mayores culpables del encarecimiento de la programación. Dos de estos aspectos de seguridad son la inicialización y la limpieza. Muchos de los fallos que se dan al programar ocurren cuando el programador olvida inicializar una variable, objeto, etc. Esto es especialmente habitual en todos los lenguajes de Programación, cuando los usuarios no saben cómo inicializar un componente, o incluso cuándo deben hacerlo. La eliminación es un problema especial porque es fácil olvidarse de un elemento una vez que ya no se utiliza, puesto que ya no tiene importancia. Por consiguiente, los recursos que ese elemento utilizaba quedan reservados y es fácil acabar quedándose sin recursos (y el más importante, la memoria). C++ introdujo el concepto de constructor, un método especial invocado automáticamente en la creación de un objeto. Java también adoptó el constructor, y además proporciona un método que cuando se especifica en el código libera automáticamente recursos de memoria cuando dejan de ser utilizados, este método se llama garbage collector. En java no es necesaria la definición de destructores, pues el mismo lenguaje se encarga de la eliminación y liberación de la memoria ocupada por un objeto, esto se realiza cada vez que un objeto pierde todas sus referencias. Un punto clave de la Programación Orientada a Objetos es el evitar información incorrecta por no haber sido correctamente inicializadas las variables. Java no permite que haya variables miembro que no estén inicializadas ( Si puede haber variables locales de métodos sin inicializar, pero el compilador da un error si se intentan utilizar sin asignarlas previamente un valor).
  • 2. Pasos para la inicialización 1.- Java inicializa siempre con valores por defecto las variables que son miembros de la clases, métodos, etc. 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. DEFINICIÓN DE CONSTRUCTOR.- 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. Son mensajes que recibe la clase para crear e inicializar un objeto para que tenga valores correctos. Un objeto SIEMPRE debe tener valores correctos, desde que se crea hasta que se destruye. Al utilizar un constructor, el compilador determina cual de los objetos va a responder al mensaje (virtual) que hemos creado.  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 TIPOS 1. Constructor por defecto (no-args) Si no se define ningún constructor de una clase, el compilador generará un constructor por defecto. El constructor por defecto no tiene argumentos y simplemente sitúa ceros en cada byte de las variables instancia de un objeto. Si se definen constructores para una clase, el constructor por defecto no se genera.
  • 3. 2. Constructor de copia El constructor de copia se utilizan para inicializar un objeto con otro objeto de la misma clase. Construye un nuevo objeto como una copia del que se le pasa Cuenta(Cuenta otra){ codigo = otra.codigo; saldo = otra.saldo; titular = otra.titular; } No se usa mucho dentro de las bibliotecas de clases de Java. Existe en la clase String y las colecciones. La forma preferida de obtener la copia de un objeto es utilizar el método clone. 3. Constructor común(personalizado) El constructor común es aquel que recibe parámetros para asignarles como valores iníciales a los datos miembros, o sea que al crear la instancia, se pasó unos parámetros para inicializar .Si se declara algún constructor, entonces ya no se puede usar el constructor personalizado. Es necesario usar el constructor declarado en la clase.  De entre todos los constructores que existan, tan sólo uno se ejecutará al crear un objeto de la clase.  DECLARACIÓN DE UN CONSTRUCTOR (SINTAXIS) <modificador acceso> nombreClase ([lista de parámetros]) { [declaraciones de variables locales] sentencias }
  • 4. Donde <[modificadores de acceso> Son los que permiten al programador quien accede a los datos y métodos miembro de una clase pueden ser: public, protected, private. nombreClase.- Representa el mismo nombre de la clase. Dentro del código de un constructor generalmente suele existir inicializaciones de variables y objetos, para conseguir que el objeto sea creado con dichos valores iniciales. [lista de parámetros] es una lista de declaraciones de parámetros separadas por comas (,). Cada una de las declaraciones de parámetros tiene la siguiente sintaxis: tipo nomParametro Donde tipo es el tipo del parámetro y puede ser uno de los tipos predefinidos (char, byte, short, int, long, float o double) o una clase. nomParametro es el nombre del parámetro. Cada una de las declaraciones de variables locales tiene la siguiente sintaxis: [declaracion de variables locales] tipo nomVariable Donde tipo es el tipo de la variable local y puede ser uno de los tipos predefinidos (char, byte, short, int, long, float o double) o una clase. nomVariable es el nombre de la variable local. Las sentencias pueden ser sentencias de expresión o simple, compuestas o bloques y de control. Ejemplo: public class Clase { private int enteroPrivado; public Clase() { // constructor por defecto enteroPrivado = 0; }
  • 5. public Clase(int entero) { // constructor personalizado enteroPrivado = entero; } }  LLAMADA AL CONSTRUCTOR nombreClase objeto = new nombreClase(<lista 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. En Java, cuando se instancia un objeto, siempre se hace una llamada directa al constructor como argumento del operador new. Este operador se encarga de que el sistema proporcione memoria para contener al objeto que se va a crear Antes de ser instanciada con new no se consume memoria, simplemente es una declaración de tipo. Variable de Referencia.. una variable de referencia es usada para acceder al lugar en memoria donde se almacena un objeto. Array, Collection y String, son variables de referencia. Ejemplo: Clase elObjeto; elObjeto = new Clase(); // llamada al constructor por medio de la variable de referencia elObjeto O en una sola línea: Clase elObjeto = new Clase(); Clase elObjeto = new Clase(5);
  • 6. CARACTERÍSTICAS PRINCIPALES DE UN CONSTRUCTOR En Java, los objetos son construidos. Cada vez que “creamos” un nuevo objeto, al menos un constructor es invocado. Se garantiza la inicialización de cada objeto (sus atributos) con un constructor Java invoca al constructor al crear el objeto. Los Constructores no tienen valor de retorno (ni siquiera void). Esto se debe a que el tipo específico que debe devolver un constructor de clase es el propio tipo de la clase. Su nombre es el mismo que el de la clase. Su argumento implícito es el objeto que se está creando. Se puede definir cero, uno o más constructores para una clase. Si no se define un constructor, el compilador crea uno por ausencia, el cual no tiene parámetros llamado constructor por defecto. Pueden usarse cualquier modificador de acceso. Al igual que los demás métodos de una clase, los constructores pueden tener también los modificadores de acceso public, prívate, protected. Si un constructor es prívate, ninguna otra clase puede crear un objeto de esa clase. En este caso, puede haber métodos public y static (factory methods) que llamen al constructor y devuelvan un objeto de esa clase. Se llama Constructor por defecto al constructor que no tiene argumentos. El programador debe proporcionar en el código valores iniciales adecuados para todas las variables miembro. Una clase tiene varios constructores, que se diferencia por el tipo y el número de sus argumentos (son un ejemplo típico de métodos sobrecargados) Si ya tenemos un constructor con argumentos, no se generará uno sin argumentos automáticamente. Cada constructor tiene, como primera sentencia, una llamada a un constructor sobrecargado (this) o a un constructor de la superclase (super), aunque esta línea puede ser agregada automáticamente por el compilador. Un constructor de una clase puede llamar a otro constructor previamente definido en la misma clase por medio de la palabra this. En este contexto, la palabra this sólo puede aparecer en la primera sentencia de un constructor. El constructor de una sub-clase puede llamar al constructor de su súper- clase por medio de la palabra super, seguida de los argumentos apropiados entre paréntesis. De esta forma, un constructor sólo tiene que inicializar por si mismo las variables no heredadas.
  • 7. 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: Los métodos de instancia reciben el argumento this implícitamente se refiere al mismo objeto. • 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; } } Se puede compartir código entre constructores usando la referencia this. Un constructor invoca a otro pasándole los argumentos que requiere. public class Pelicula { private String titulo; private String tipo; public Pelicula() { this("Pelicula sin definir"); } public Pelicula (String titulo) { this.titulo = titulo; }
  • 8. public String getTitulo() { return titulo; } } TestThis.java public class TestThis { public static void main (String[] args) { Pelicula pelicula1 = new Pelicula(); Pelicula pelicula2 = new Pelicula("Todo sobre mi madre"); System.out.println(pelicula1.getTitulo()); System.out.println(pelicula2.getTitulo()); } } REFERENCIA SUPER Hace referencia a la Herencia de clases. La nueva clase hereda de la primera todos los métodos y los atributos, con la posibilidad de definir unos atributos y unos métodos nuevos o de volver a definir otros.  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 dado que necesitarás un lugar desde donde llamar a super con los argumentos necesarios. Ejemplo class Animal { Animal(String name) { } } class Horse extends Animal { Horse() { super(); // error } }
  • 9. 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. public class Item { protected float precio = 0; Item (float precio) { this.precio = precio; } } public class Pelicula extends Item { private String titulo = ""; Pelicula (float precio, String titulo) { super(precio); this.titulo = titulo; } } Una subclase no hereda ningún constructor de la superclase, debe declararse explícitamente. Solo en caso no se declare explícitamente, se ejecutaran los constructores por defecto de las superclases y finalmente de la subclase. Pelicula pelicula = new Pelicula (); // Inicia variables de la clase Item. Constructor por defecto. // Inicia variables de la clase Pelicula. Constructor por defecto.
  • 10. GARBAGE COLLECTOR Se refiere a la limpieza de instancias (Objetos) las cuales han dejado de ser utilizadas en un programa Java. 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, sin embargo, este proceso trae consigo dos preguntas : • Java podría ser el lenguaje más utilizados que depende de la recolección de basura . • Los beneficios de Garbage Collector son indiscutibles. • El concepto de Garbage Collector fue inventado por John McCarthy en 1959. • El programador no tiene que invocar a una subrutina para liberar memoria. Que instancias/objetos son elegidos y liberados por el proceso de "Garbage Collection" ?. Toda instancia/referencia que sea asignada un valor de null es elegible para "Garbage Collection", si la instancia/referencia no tiene un valor de null ésta no es elegible para "Garbage Collection". Aunque la instancia/referencia sea asignada con un valor de null ésta no será liberada ("Garbage Collected") inmediatamente, sino hasta que el proceso de "Garbage Collection" sea iniciado. Quien invoca el proceso de "Garbage Collection" ? : El JVM ("Java Virtual Machine") se hace cargo de iniciar el proceso de "Garbage Collection" únicamente cuando éste (según sus algoritmos internos) determine que su memoria esta en proceso de agotamiento, es hasta entonces que es liberada la memoria de las instancias/referencias que se han declarado como elegibles para "Garbage Collection". Cuando se invoca el recolector de basura, 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.
  • 11. BIBLIOGRAFIA COMO PROGRAMAR JAVA, Deitel-Deitel, Quinta Edición APRENDA JAVA COMO SI ESTUBIERA EN PRIMERO, Tencnum http://slideshared.net http://javabasico.osmosislatina.com/curso/progbasico2/constructores.htm http://es.wikipedia.org/wiki/Constructor_%28inform%C3%A1tica%29 http://www.mailxmail.com/curso-java/definicion-constructores-clase-1 http://www.mitecnologico.com/Main/ElConstructor http://toolboxnet.blogspot.com/2010/03/la-referencia-super-en-java-050103.html http://javabasico.osmosislatina.com/curso/threadsgc.htm http://javabasico.osmosislatina.com/curso/progbasico2/constructores.htm http://www.arrakis.es/~abelp/ApuntesJava/ClasesII.htm