SlideShare una empresa de Scribd logo
1 de 41
Descargar para leer sin conexión
Unidad	3
PROGRAMACIÓN	ORIENTADA	A	OBJETOS
ESTRUCTURA	DE	UNA	CLASE
Clases y	Objetos
– Una clase describe un grupo de objetos que comparten
propiedades y métodos comunes
– Una clase es una plantilla que define qué forma tienen
los objetos de la clase
– Una clase se compone de:
– Información:	campos (atributos,	propiedades)
– Comportamiento:	métodos (operaciones,	funciones)
– Un	objeto es una instancia de	una clase
“Juan Pérez”String
Ventana (tiempo de ejecución)Ventana (tiempo de diseño)
Juan PérezEmpleado
La MonedaCasa
SodimacEmpresa
ObjetoClase
Implementación	de	una	clase
– Elementos	que	aparecen	en	la	implementación	de	una	
clase:	
– La	palabra	reservada	this.	
– Modificadores	estáticos,	dinámicos	y	finales	de	una	Clase	y	sus	
componentes.
– Modificadores	de	visibilidad	public y	private de	una	Clase	y	sus	
componentes.
Definición	de	Atributos
– Los Atributos de una Clase almacenan los datos de la
Clase.
– Por lo general, los atributos se suelen definir privados y
se definen métodos consultores y modificadores. De
esta manera se garantiza la encapsulación u ocultación
de datos.
– Los atributos se alojan en variables.
Atributos	de	la	clase
class	Circulo {
//	atributos
//	métodos
//	constructores
//	main()
}
Ámbito	de	las	variables
En una clase pueden definirse tres tipos de variables:
– Variables de clase o variables estáticas (static variables)
§ Son compartidas por todos los objetos de la clase, y de otras clases si el
acceso a estas lo permite.
§ Pueden existir, aún asi no se hayan creado objetos y duran el tiempo que
la clase se encuentra cargada en memoria.
§ Se guardan en la RAM, en el static storage.
– Variables de instancia o de objeto
§ Son variables guardadas en cada objeto de la clase.
§ Se guardan en la RAM, en el heap storage.
– Variables locales a los métodos.
§ Duran hasta cuando se termina de ejecutar el método.
§ Se guardan en la RAM, en el stack storage.
Variables
local
De	instancia
Estática
class	Circulo {
//	campos
double	radio	=	5;
String	color;
static	int numeroCirculos =	0;
static	final	double	PI	=	3.1416;
//	métodos
//	constructores
//	main(	)
}
nradio y color son variables de instancia,
hay una copia de ellas por cada objeto
Circulo
nnumeroCirculos y PI son
variables static, están sólo una
vez en memoria; PI además es
constante (final): no puede
modificarse
Acceso a	variables
– Acceso a	variables	de	instancia:	se	utiliza la	sintaxis
"objeto."
Circulo c1	=	new	Circulo();
c1.radio	=	5;
c1.color	=	"rojo";
//	si c1	es null,	
//	se	genera	una excepción NullPointerException
– Acceso a	variables	static:	se	utiliza la	sintaxis "clase."
Circulo c1;
Circulo.numeroCirculos++;
System.out.println(Circulo.PI);
9
Referencias	en	Java
public class TestClase {	
public static void main(	String args[]	){	
Circulo	c1	=	new	Circulo();
Circulo	c2;	c2	=	c1;	
}
}
– Creación	de	Objetos	de	una	Clase:	
– c1	es	una	variable	Referencia	al	nuevo	Objeto	creado.	
– c2	es	una	variable	Referencia	a	ningún	Objeto,	i.e.	tras	la	
declaración	Circulo	c2	;	c2	==	null
– ¿	Qué	ocurre	si	se	ejecuta	c2	=	c1;	?
Referencias	en	Java
– Una variable Referencia almacena la dirección de
memoria en la que se encuentra el Objeto al que
referencia.
– Al	hacer:	
– Circulo	c2	=	c1;	
– La	variable	referencia	c2	pasa	a	tener	el	mismo	valor	que	7	c1,	
es	decir,	ambas	apuntan	al	mismo	objeto.
Definición	de	constructores
– Un	constructor	es un	método especial	invocado para	
instanciar e	inicializar un	objeto de	una clase
– Invocado con	la	sentencia new
– Tiene el	mismo nombre que	la	clase
– Puede tener cero	o	más parámetros
– No	tiene tipo de	retorno,	ni siquiera void
– Un	constructor	no	público restringe el	acceso a	la	creación de	objetos
– Si la clase no tiene ningún constructor, el sistema
provee un constructor default, sin parámetros
– Si la clase tiene algún constructor, debe usarse alguno
de los constructores definidos al instanciar la clase (el
sistema no provee un constructor default en este caso)
Definición	de	constructores
class	Circulo {
...
//	constructores
public	Circulo()	{
radio	=	1;
}
public	Circulo(int r)	{
radio	=	r;
}
void	f()	{
Circulo c	=	new	Circulo(30);
...
}
}
Dos	diferentes	
constructores
Instanciación	usando	el	
segundo	constructor
Definición	de	constructores
– Los Constructores de una clase permiten dar un valor
inicial a los atributos del objeto. Ejemplo: definición de
los métodos Constructores de Circulo
Invocación	entre	Constructores
– La	palabra	this puede ser utilizada en la	primera línea
de	un	constructor	para	invocar a	otro constructor.
class	Circulo {
private	double	radio;
private	static int numeroCirculos =	0;
Circulo(int radio)	{
this.radio =	radio;
Circulo.numeroCirculos++;
}
Circulo()	{
this(10); //	radio	default:	10
}
}
This hace	referencia	al	
objeto	sobre	el	que	se	
invoca	el	método	y	
sirvde para	evitar	
aliasing de	nombres
¿This?
– Sirve para hacer referencia a un método o propiedad
del objeto actual.
¿This?
– ¿Donde se puede usar el this?
Puede	referirse	a	cualquier	miembro	del	objeto	actual	
desde	dentro	de	un	método	de	instancia	o	un	
constructor.
Si	se	intenta	utilizar	dentro	de	un método estático (Static
methods)	lanzara:
"Cannot use	This in	a	static context"
Definición de	Métodos
– Instrucciones que operan sobre los datos de un objeto
para obtener resultados.
– Pueden retornar un valor o pueden ser declarados
void para indicar que no retornan ningún valor
– Pueden ser de instancia o static.
class	Circulo {
//	campos
double	radio	=	5;
String	color;
static	int numeroCirculos =	0;
static	final	double	PI	=	3.1416;
//	métodos
double	getCircunferencia()	{
return	getCircunferencia(radio);
}
static	double	getCircunferencia(double	r)	{
return	2	*	r	*	PI;
}
//	constructores
//	main(	)
}
Método de instancia, tiene acceso
directo a las variables de instancia del
objeto sobre el que se invoca
Método static, no tiene acceso
directo a variables de instancia
Definición de	Métodos
– Los	Métodos	de	una	clase	definen	su	funcionalidad.	
– Ejemplo:	Definición	de	Métodos	Consultores	en	la	clase	Circulo.	
– Al definir como privados todos los atributos de Circulo,
se deben proporcionar métodos para acceder a su valor.
Se	podría	utilizar	this
para	referenciar	a	
atributos	pero	no	es	
necesario	puesto	que	
no	hay	aliasing de	
nombres.
Definición de	Métodos
– Al definir como privados todos los atributos de Circulo,
se deben proporcionar métodos para modificar su valor.
– Ejemplo:	definición	de	los	Métodos	Modificadores de	Circulo.
Definición de	Métodos
– Ejemplo:	definición	de	otros	Métodos	de	Circulo
– El uso de un método estático permite definirlo a nivel
de clase, no a nivel de instancia (objeto individual).
– Se	deberá	invocar	como	Circulo.leerCirculo(...).
– Crea una clase Libro que modele la información que se mantiene en
una biblioteca sobre cada libro: título, autor (usa la clase Persona),
ISBN, páginas, edición, editorial , lugar (ciudad y país) y fecha de
edición (usa la clase Fecha). La clase debe proporcionar los siguientes
servicios:
– accedentes	y	mutadores,	
– método	para	leer	la	información	y
– método	para	mostrar	la	información.	Este	último	método	mostrará	la	
información	del	libro	con	este	formato:
– Título:	Introduction to	Java	Programming
– 3a.	edición
– Autor:	Liang,	Y.	Daniel
– ISBN:	0-13-031997-X
– Prentice-Hall,	New	Jersey	(USA),	viernes	16	de	noviembre	de
– 2001
– 784	páginas
Sobrecarga	de	métodos	
(Overloading)
– La firma de un método es la combinación del tipo de
dato que regresa, su nombre y su lista de argumentos.
– La sobrecarga de métodos es la creación de varios
métodos con el mismo nombre pero con diferentes
firmas y definiciones.
–Se utiliza para reutilizar el nombre de un método
pero con diferentes argumentos.
Reglas	para	sobrecargar	un	
método
– Los métodos sobrecargados deben de cambiar la lista
de argumentos.
– Pueden cambiar el tipo de retorno.
– Un método puede ser sobrecargado en la misma clase o
en una subclase.
– Pueden cambiar el modificador de acceso.
– Pueden declarar nuevas o más amplias excepciones.
– Veamos	un	método	que	se	desea	sobrecargar:
– Los	siguientes	métodos	son	sobrecargas	legales	del	
método	cambiarTamano():
Heap,	Stack y	Variables	de	
referencia
– La memoria está dividida en tres partes, Zona de Datos,
Stack y Heap.
– Existen dos espacios en donde se ejecutan nuestras
aplicaciones: Stack y Heap.
– Stack almacena variables locales y los métodos en
ejecución
– Heap guarda las variables de instancia y los objetos
– Cada hilo de la aplicación tiene su propia pila (Stack)
pero todos comparten el mismo montículo (Heap).
Stack
– Almacena:
– Referencias	a	objetos	(instacias)
– Datos	de	tipo	primitivo	(int,	float,char…)
– Variables	locales
– Parámetros	de	retorno	de	los	métodos
– Es estático, si lo llenamos, caeríamos en un
StackOverflowError
public void metodo(){
metodo();
}
Heap
– Los objetos son creados, eliminados o modificados en
esta parte de la memoria.
– La Java Virtual Machine (JVM), le asigna un espacio
predeterminado de memoria y según se vaya
requiriendo, la JVM le seguirá proporcionando más
memoria.
–Los elementos almacenados no pueden ser
eliminados directamente sino con el Garbage
Collector.
Como	interactúan	el	Heap y	el	
Stack
– Las	referencias	pueden	apuntar	a	elementos	del	heap (es	decir,	a	
los	objetos).	
– Las	referencias	tienen	un	tipo,	que	es	al	tipo	de	objeto	que	
pueden	apuntar	las	referencias.
Crea	la	
referencia	en	
el	stack
Crea el objeto
en el heap y
en el mismo
momento
hacemos la
referencia
desde el stack
Como	interactúan	el	Heap y	el	Stack
Un objeto puede estar siendo apuntado por muchas referencias, pero una
referencia solo apunta a un objeto.
Instanciación	y	Referencias
– Los objetos se crean con el operador new, y se manejan
mediante referencias
– Los objetos se crean en el área de memoria dinámica
conocida como el heap
– Una	referencia	contiene	la	
dirección	de	un	objeto	(es	
similar	a	los	punteros	de	
otros	lenguajes)
– Una	asignación	entre	objetos	
es	una	asignación	de	
referencias
– Circulo	c1	=	new	Circulo();
– Circulo	c2	=	c1;
Garbage Collection
– Es un	proceso	de	la	JVM	que	está	revisando	que	objetos	
pueden	ser	borrados	y	cuales	no.
– Es	un	proceso	de	baja	prioridad,	por	lo	que	no	se	pasa	
en	todo	momento	liberando	memoria,	si	no	que	pasa	
de	vez	en	cuando.
El	primer	objeto	se	
queda	sin	
referencia
Paso	de	Parámetros
– En	Java	el	paso	de	parámetros	se	realiza	"por	valor“.
– Significa que cuando un argumento se pasa a una
función, la función recibe una copia del valor original.
Por lo tanto, si la función modifica el parámetro, sólo la
copia cambia y el valor original permanece intacto.
– Argumentos	de	tipos	primitivos	
– Si un método modifica el valor de un parámetro, este cambio sólo
ocurre al interior del método; al retornar el método, se mantiene
el valor original
– Argumentos	de	tipo	referencia	(objetos)
– Al retornar el método, la referencia pasada como parámetro sigue
referenciando al mismo objeto; sin embargo, los campos del
objeto podrían haber sido modificados por el método
ArrayList
– Clase que permite almacenar datos en memoria de
forma similar a los Arrays.
– Estructura	dinámica	de	datos.
– http://docs.oracle.com/javase/6/docs/api/java/util/Arra
yList.html
– ArrayList nombreArray =	new	ArrayList();
– Puede	contener	cualquier	tipo	de
elementos.
Ventajas
– No es necesario declarar su tamaño como pasa con
los Arrays porque el almacenamiento es dinámico lo
cual permite aumentar o disminuir el consumo de
memoria de acuerdo a las necesidades.
– La clase ArrayList tiene muchos métodos predefinidos
que hacen más fácil su uso. Por ejemplo: ara saber si
un array cuenta con un dato tendrás que recorrerlo
entero. Sin embargo un ArrayList te devuelve el
objeto que en la colección tiene ese valor.
– Un ArrayList colecciona objetos, un array colecciona
dtos de un mismo tipo, que además es básico.
Métodos	de	ArrayList
ArrayList
Recorrer	un	Array
– Podemos	recorrerlo	de	forma	clásica	con	un bucle	for:
– Si	el	array	contiene	objetos	de	tipos	distintos	o	
desconocemos	el	tipo:
Uso	de	for each
– Facilita el recorrido de objetos existentes en una colección
sin necesidad de definir el número de elementos a recorrer.
– Sintaxis:
“Para	cada	elemento	del	tipo	TipoARecorrer que	se	encuentre	
dentro	de	la	colección	nombreDeLaColección ejecuta	las	
instrucciones	que	se	indican”
– Evita el uso de Iteradores o de un bucle for normal.
Ejercicio
– Crea una clase denominada ListaCantantesFamosos que
al ser inicializada contenga un ArrayList con tres Strings
que sean el nombre de cantantes famosos. Crea una
clase test con el método main que inicialice un objeto
ListaCantantesFamosos y usando un for
extendido muestre los cantantes en la lista por pantalla.
Se debe pedir al usuario un nombre más de cantante
famoso, y una vez introducido mostrar la lista
actualizada usando un for extendido.

Más contenido relacionado

La actualidad más candente

Matematicas discretas
Matematicas discretasMatematicas discretas
Matematicas discretascfleon
 
PRODUCTO INTERNO Vectores Ortogonales
PRODUCTO INTERNO  Vectores OrtogonalesPRODUCTO INTERNO  Vectores Ortogonales
PRODUCTO INTERNO Vectores Ortogonalesalgebra
 
Metodos abiertos
Metodos abiertosMetodos abiertos
Metodos abiertosNatalia
 
EJERCICIOS RESUELTOS SOBRE EL MÉTODO DE NEWTON Y EL MÉTODO DE LA SECANTE
EJERCICIOS RESUELTOS SOBRE EL MÉTODO DE NEWTON Y EL MÉTODO DE LA SECANTEEJERCICIOS RESUELTOS SOBRE EL MÉTODO DE NEWTON Y EL MÉTODO DE LA SECANTE
EJERCICIOS RESUELTOS SOBRE EL MÉTODO DE NEWTON Y EL MÉTODO DE LA SECANTEEdgar Flores
 
Polimorfismo resumen
Polimorfismo resumenPolimorfismo resumen
Polimorfismo resumenwouyrmz
 
Método de jacobi
Método de jacobiMétodo de jacobi
Método de jacobiTensor
 
ecuaciones diferenciales de variables separables y ecuaciones diferenciales r...
ecuaciones diferenciales de variables separables y ecuaciones diferenciales r...ecuaciones diferenciales de variables separables y ecuaciones diferenciales r...
ecuaciones diferenciales de variables separables y ecuaciones diferenciales r...ÁLGEBRA LINEAL ECUACIONES DIFERENCIALES
 
Tarea 7 de probabilidad y estadistica con respuesta (esperanza matemática o v...
Tarea 7 de probabilidad y estadistica con respuesta (esperanza matemática o v...Tarea 7 de probabilidad y estadistica con respuesta (esperanza matemática o v...
Tarea 7 de probabilidad y estadistica con respuesta (esperanza matemática o v...IPN
 
ECUACIONES DIFERENCIALES ORDINARIAS
ECUACIONES DIFERENCIALES ORDINARIASECUACIONES DIFERENCIALES ORDINARIAS
ECUACIONES DIFERENCIALES ORDINARIASJoZzé LoZzada
 
Elementos primordiales en el modelo de objetos
Elementos primordiales en el modelo de objetosElementos primordiales en el modelo de objetos
Elementos primordiales en el modelo de objetosCriiztiian Mendoza
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosjent46
 
Tarea 6 de probabilidad y estadistica con respuestas
Tarea 6 de probabilidad y estadistica con respuestasTarea 6 de probabilidad y estadistica con respuestas
Tarea 6 de probabilidad y estadistica con respuestasIPN
 

La actualidad más candente (20)

Matematicas discretas
Matematicas discretasMatematicas discretas
Matematicas discretas
 
Funcion cuadratica
Funcion cuadraticaFuncion cuadratica
Funcion cuadratica
 
Grafo bipartito
Grafo bipartitoGrafo bipartito
Grafo bipartito
 
Ejercicios cauchy euler (maryoris barcenas)
Ejercicios cauchy euler (maryoris barcenas)Ejercicios cauchy euler (maryoris barcenas)
Ejercicios cauchy euler (maryoris barcenas)
 
Tipos de datos
Tipos de datosTipos de datos
Tipos de datos
 
6 Curso de POO en Java - clases y objetos
6  Curso de POO en Java - clases y objetos6  Curso de POO en Java - clases y objetos
6 Curso de POO en Java - clases y objetos
 
Punto de inflexion
Punto de inflexionPunto de inflexion
Punto de inflexion
 
PRODUCTO INTERNO Vectores Ortogonales
PRODUCTO INTERNO  Vectores OrtogonalesPRODUCTO INTERNO  Vectores Ortogonales
PRODUCTO INTERNO Vectores Ortogonales
 
Metodos abiertos
Metodos abiertosMetodos abiertos
Metodos abiertos
 
EJERCICIOS RESUELTOS SOBRE EL MÉTODO DE NEWTON Y EL MÉTODO DE LA SECANTE
EJERCICIOS RESUELTOS SOBRE EL MÉTODO DE NEWTON Y EL MÉTODO DE LA SECANTEEJERCICIOS RESUELTOS SOBRE EL MÉTODO DE NEWTON Y EL MÉTODO DE LA SECANTE
EJERCICIOS RESUELTOS SOBRE EL MÉTODO DE NEWTON Y EL MÉTODO DE LA SECANTE
 
3 Introducción al lenguaje PHP
3 Introducción al lenguaje PHP3 Introducción al lenguaje PHP
3 Introducción al lenguaje PHP
 
Polimorfismo resumen
Polimorfismo resumenPolimorfismo resumen
Polimorfismo resumen
 
Método de jacobi
Método de jacobiMétodo de jacobi
Método de jacobi
 
ecuaciones diferenciales de variables separables y ecuaciones diferenciales r...
ecuaciones diferenciales de variables separables y ecuaciones diferenciales r...ecuaciones diferenciales de variables separables y ecuaciones diferenciales r...
ecuaciones diferenciales de variables separables y ecuaciones diferenciales r...
 
Tarea 7 de probabilidad y estadistica con respuesta (esperanza matemática o v...
Tarea 7 de probabilidad y estadistica con respuesta (esperanza matemática o v...Tarea 7 de probabilidad y estadistica con respuesta (esperanza matemática o v...
Tarea 7 de probabilidad y estadistica con respuesta (esperanza matemática o v...
 
Limites y continuidad
Limites y continuidadLimites y continuidad
Limites y continuidad
 
ECUACIONES DIFERENCIALES ORDINARIAS
ECUACIONES DIFERENCIALES ORDINARIASECUACIONES DIFERENCIALES ORDINARIAS
ECUACIONES DIFERENCIALES ORDINARIAS
 
Elementos primordiales en el modelo de objetos
Elementos primordiales en el modelo de objetosElementos primordiales en el modelo de objetos
Elementos primordiales en el modelo de objetos
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Tarea 6 de probabilidad y estadistica con respuestas
Tarea 6 de probabilidad y estadistica con respuestasTarea 6 de probabilidad y estadistica con respuestas
Tarea 6 de probabilidad y estadistica con respuestas
 

Destacado (7)

Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UMLUnidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
 
Unidad 1_Programacion Orientada a Objetos
Unidad 1_Programacion Orientada a ObjetosUnidad 1_Programacion Orientada a Objetos
Unidad 1_Programacion Orientada a Objetos
 
Clase8-Estadística
Clase8-EstadísticaClase8-Estadística
Clase8-Estadística
 
Unidad 2 Sintaxis en java
Unidad 2 Sintaxis en javaUnidad 2 Sintaxis en java
Unidad 2 Sintaxis en java
 
Clase7-Estadística
Clase7-EstadísticaClase7-Estadística
Clase7-Estadística
 
Clase6 Estadística
Clase6 EstadísticaClase6 Estadística
Clase6 Estadística
 
Unidad 5 VARIABLES Y MÉTODOS ESTÁTICOS
Unidad 5 VARIABLES Y MÉTODOS ESTÁTICOSUnidad 5 VARIABLES Y MÉTODOS ESTÁTICOS
Unidad 5 VARIABLES Y MÉTODOS ESTÁTICOS
 

Similar a POO Clases Objetos

Java2-Clases.ppt
Java2-Clases.pptJava2-Clases.ppt
Java2-Clases.ppterosslo
 
Elementos de una clase
Elementos de una claseElementos de una clase
Elementos de una claseIsaias Toledo
 
DAW - Desarrollo de clases
DAW - Desarrollo de clasesDAW - Desarrollo de clases
DAW - Desarrollo de clasesvay82
 
INSTANCIAS Y CONSTRUCTORES EN JAVA
INSTANCIAS Y CONSTRUCTORES EN JAVAINSTANCIAS Y CONSTRUCTORES EN JAVA
INSTANCIAS Y CONSTRUCTORES EN JAVAmellcv
 
Clases en Java y todo lo relacionado
Clases en Java y todo lo relacionadoClases en Java y todo lo relacionado
Clases en Java y todo lo relacionadoJuan Carlos Espinoza
 
Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Renny Batista
 
Tema 4 clases_y_objetos
Tema 4 clases_y_objetosTema 4 clases_y_objetos
Tema 4 clases_y_objetosBelenMonse
 
Poo Java
Poo JavaPoo Java
Poo Javaeccutpl
 
Variables y metodos de instancia
Variables y metodos de instanciaVariables y metodos de instancia
Variables y metodos de instanciaRobert Wolf
 
8. técnicas de escritura de códigos
8. técnicas de escritura de códigos8. técnicas de escritura de códigos
8. técnicas de escritura de códigosHectorMamani
 
Programación orientada a objetos con c++
Programación orientada a objetos con c++Programación orientada a objetos con c++
Programación orientada a objetos con c++Karime Hernández
 
Unidad 2 poo_clases_y_objetos
Unidad 2 poo_clases_y_objetosUnidad 2 poo_clases_y_objetos
Unidad 2 poo_clases_y_objetosRulox Quiñones
 

Similar a POO Clases Objetos (20)

Java2-Clases.ppt
Java2-Clases.pptJava2-Clases.ppt
Java2-Clases.ppt
 
Java2-Clases.ppt
Java2-Clases.pptJava2-Clases.ppt
Java2-Clases.ppt
 
Elementos de una clase
Elementos de una claseElementos de una clase
Elementos de una clase
 
DAW - Desarrollo de clases
DAW - Desarrollo de clasesDAW - Desarrollo de clases
DAW - Desarrollo de clases
 
Poo 1
Poo 1Poo 1
Poo 1
 
Unidad 2 clases y objetos
Unidad 2 clases y objetosUnidad 2 clases y objetos
Unidad 2 clases y objetos
 
INSTANCIAS Y CONSTRUCTORES EN JAVA
INSTANCIAS Y CONSTRUCTORES EN JAVAINSTANCIAS Y CONSTRUCTORES EN JAVA
INSTANCIAS Y CONSTRUCTORES EN JAVA
 
Clases en Java y todo lo relacionado
Clases en Java y todo lo relacionadoClases en Java y todo lo relacionado
Clases en Java y todo lo relacionado
 
Semana9b Vbr
Semana9b VbrSemana9b Vbr
Semana9b Vbr
 
03 Oop
03   Oop03   Oop
03 Oop
 
4 manejo de_metodos
4 manejo de_metodos4 manejo de_metodos
4 manejo de_metodos
 
Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015
 
Tema 4 clases_y_objetos
Tema 4 clases_y_objetosTema 4 clases_y_objetos
Tema 4 clases_y_objetos
 
Poo Java
Poo JavaPoo Java
Poo Java
 
Leccion 7 Java
Leccion 7 JavaLeccion 7 Java
Leccion 7 Java
 
Variables y metodos de instancia
Variables y metodos de instanciaVariables y metodos de instancia
Variables y metodos de instancia
 
8. técnicas de escritura de códigos
8. técnicas de escritura de códigos8. técnicas de escritura de códigos
8. técnicas de escritura de códigos
 
Programación orientada a objetos con c++
Programación orientada a objetos con c++Programación orientada a objetos con c++
Programación orientada a objetos con c++
 
Conceptos basicos POO
Conceptos basicos POOConceptos basicos POO
Conceptos basicos POO
 
Unidad 2 poo_clases_y_objetos
Unidad 2 poo_clases_y_objetosUnidad 2 poo_clases_y_objetos
Unidad 2 poo_clases_y_objetos
 

Más de Cindy Adriana Bohórquez Santana

265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...
265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...
265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...Cindy Adriana Bohórquez Santana
 

Más de Cindy Adriana Bohórquez Santana (20)

Proyecto parcial1t2018
Proyecto parcial1t2018Proyecto parcial1t2018
Proyecto parcial1t2018
 
265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...
265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...
265306183 ecolog-a-impacto-de-la-problem-tica-ambiental-actual-sobre-la-salud...
 
20152 sfiec030121 1
20152 sfiec030121 120152 sfiec030121 1
20152 sfiec030121 1
 
4 estructuras enlazadas
4 estructuras enlazadas4 estructuras enlazadas
4 estructuras enlazadas
 
12 conjuntos mapas1t2018
12 conjuntos mapas1t201812 conjuntos mapas1t2018
12 conjuntos mapas1t2018
 
11 colas prioridad1t2018
11 colas prioridad1t201811 colas prioridad1t2018
11 colas prioridad1t2018
 
10 colas1 t2018
10 colas1 t201810 colas1 t2018
10 colas1 t2018
 
09 pilas aplicaciones1t2018
09 pilas aplicaciones1t201809 pilas aplicaciones1t2018
09 pilas aplicaciones1t2018
 
08 pilas1 t2018
08 pilas1 t201808 pilas1 t2018
08 pilas1 t2018
 
06 listas1 t2018
06 listas1 t201806 listas1 t2018
06 listas1 t2018
 
05 listas1 t2018
05 listas1 t201805 listas1 t2018
05 listas1 t2018
 
04 recursividad1 t2018
04 recursividad1 t201804 recursividad1 t2018
04 recursividad1 t2018
 
03 tda1 t2018
03 tda1 t201803 tda1 t2018
03 tda1 t2018
 
02 tda1 t2018
02 tda1 t201802 tda1 t2018
02 tda1 t2018
 
Teoria basica probabilidad_2015_4_ed
Teoria basica probabilidad_2015_4_edTeoria basica probabilidad_2015_4_ed
Teoria basica probabilidad_2015_4_ed
 
Tema3 probabilidades
Tema3 probabilidadesTema3 probabilidades
Tema3 probabilidades
 
Ejercicios calculo probabilidades
Ejercicios calculo probabilidadesEjercicios calculo probabilidades
Ejercicios calculo probabilidades
 
5 conceptos de probabilidad (ii)
5 conceptos de probabilidad (ii)5 conceptos de probabilidad (ii)
5 conceptos de probabilidad (ii)
 
424052848.tp 02 probabilidad
424052848.tp 02 probabilidad424052848.tp 02 probabilidad
424052848.tp 02 probabilidad
 
Ppt cap2b Estadística
Ppt cap2b EstadísticaPpt cap2b Estadística
Ppt cap2b Estadística
 

Último

Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSaulSantiago25
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacajeremiasnifla
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxSergioGJimenezMorean
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdffredyflores58
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfalexquispenieto2
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdfFernandaGarca788912
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdfevin1703e
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAJAMESDIAZ55
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxEverardoRuiz8
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfAntonioGonzalezIzqui
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones025ca20
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricoalexcala5
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 
Curso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdf
Curso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdfCurso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdf
Curso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdfcesar17lavictoria
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVSebastianPaez47
 
CLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilCLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilDissneredwinPaivahua
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 

Último (20)

Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusibles
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpaca
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdf
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdf
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdf
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptx
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctrico
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
Curso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdf
Curso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdfCurso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdf
Curso Análisis Fisicoquímico y Microbiológico de Aguas -EAI - SESIÓN 5.pdf
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
 
CLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilCLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civil
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 

POO Clases Objetos

  • 2. Clases y Objetos – Una clase describe un grupo de objetos que comparten propiedades y métodos comunes – Una clase es una plantilla que define qué forma tienen los objetos de la clase – Una clase se compone de: – Información: campos (atributos, propiedades) – Comportamiento: métodos (operaciones, funciones) – Un objeto es una instancia de una clase “Juan Pérez”String Ventana (tiempo de ejecución)Ventana (tiempo de diseño) Juan PérezEmpleado La MonedaCasa SodimacEmpresa ObjetoClase
  • 3. Implementación de una clase – Elementos que aparecen en la implementación de una clase: – La palabra reservada this. – Modificadores estáticos, dinámicos y finales de una Clase y sus componentes. – Modificadores de visibilidad public y private de una Clase y sus componentes.
  • 4. Definición de Atributos – Los Atributos de una Clase almacenan los datos de la Clase. – Por lo general, los atributos se suelen definir privados y se definen métodos consultores y modificadores. De esta manera se garantiza la encapsulación u ocultación de datos. – Los atributos se alojan en variables.
  • 6. Ámbito de las variables En una clase pueden definirse tres tipos de variables: – Variables de clase o variables estáticas (static variables) § Son compartidas por todos los objetos de la clase, y de otras clases si el acceso a estas lo permite. § Pueden existir, aún asi no se hayan creado objetos y duran el tiempo que la clase se encuentra cargada en memoria. § Se guardan en la RAM, en el static storage. – Variables de instancia o de objeto § Son variables guardadas en cada objeto de la clase. § Se guardan en la RAM, en el heap storage. – Variables locales a los métodos. § Duran hasta cuando se termina de ejecutar el método. § Se guardan en la RAM, en el stack storage.
  • 8. class Circulo { // campos double radio = 5; String color; static int numeroCirculos = 0; static final double PI = 3.1416; // métodos // constructores // main( ) } nradio y color son variables de instancia, hay una copia de ellas por cada objeto Circulo nnumeroCirculos y PI son variables static, están sólo una vez en memoria; PI además es constante (final): no puede modificarse
  • 9. Acceso a variables – Acceso a variables de instancia: se utiliza la sintaxis "objeto." Circulo c1 = new Circulo(); c1.radio = 5; c1.color = "rojo"; // si c1 es null, // se genera una excepción NullPointerException – Acceso a variables static: se utiliza la sintaxis "clase." Circulo c1; Circulo.numeroCirculos++; System.out.println(Circulo.PI); 9
  • 10. Referencias en Java public class TestClase { public static void main( String args[] ){ Circulo c1 = new Circulo(); Circulo c2; c2 = c1; } } – Creación de Objetos de una Clase: – c1 es una variable Referencia al nuevo Objeto creado. – c2 es una variable Referencia a ningún Objeto, i.e. tras la declaración Circulo c2 ; c2 == null – ¿ Qué ocurre si se ejecuta c2 = c1; ?
  • 11. Referencias en Java – Una variable Referencia almacena la dirección de memoria en la que se encuentra el Objeto al que referencia. – Al hacer: – Circulo c2 = c1; – La variable referencia c2 pasa a tener el mismo valor que 7 c1, es decir, ambas apuntan al mismo objeto.
  • 12. Definición de constructores – Un constructor es un método especial invocado para instanciar e inicializar un objeto de una clase – Invocado con la sentencia new – Tiene el mismo nombre que la clase – Puede tener cero o más parámetros – No tiene tipo de retorno, ni siquiera void – Un constructor no público restringe el acceso a la creación de objetos – Si la clase no tiene ningún constructor, el sistema provee un constructor default, sin parámetros – Si la clase tiene algún constructor, debe usarse alguno de los constructores definidos al instanciar la clase (el sistema no provee un constructor default en este caso)
  • 13. Definición de constructores class Circulo { ... // constructores public Circulo() { radio = 1; } public Circulo(int r) { radio = r; } void f() { Circulo c = new Circulo(30); ... } } Dos diferentes constructores Instanciación usando el segundo constructor
  • 14. Definición de constructores – Los Constructores de una clase permiten dar un valor inicial a los atributos del objeto. Ejemplo: definición de los métodos Constructores de Circulo
  • 15. Invocación entre Constructores – La palabra this puede ser utilizada en la primera línea de un constructor para invocar a otro constructor. class Circulo { private double radio; private static int numeroCirculos = 0; Circulo(int radio) { this.radio = radio; Circulo.numeroCirculos++; } Circulo() { this(10); // radio default: 10 } } This hace referencia al objeto sobre el que se invoca el método y sirvde para evitar aliasing de nombres
  • 16. ¿This? – Sirve para hacer referencia a un método o propiedad del objeto actual.
  • 17. ¿This? – ¿Donde se puede usar el this? Puede referirse a cualquier miembro del objeto actual desde dentro de un método de instancia o un constructor. Si se intenta utilizar dentro de un método estático (Static methods) lanzara: "Cannot use This in a static context"
  • 18. Definición de Métodos – Instrucciones que operan sobre los datos de un objeto para obtener resultados. – Pueden retornar un valor o pueden ser declarados void para indicar que no retornan ningún valor – Pueden ser de instancia o static.
  • 19. class Circulo { // campos double radio = 5; String color; static int numeroCirculos = 0; static final double PI = 3.1416; // métodos double getCircunferencia() { return getCircunferencia(radio); } static double getCircunferencia(double r) { return 2 * r * PI; } // constructores // main( ) } Método de instancia, tiene acceso directo a las variables de instancia del objeto sobre el que se invoca Método static, no tiene acceso directo a variables de instancia
  • 20. Definición de Métodos – Los Métodos de una clase definen su funcionalidad. – Ejemplo: Definición de Métodos Consultores en la clase Circulo. – Al definir como privados todos los atributos de Circulo, se deben proporcionar métodos para acceder a su valor. Se podría utilizar this para referenciar a atributos pero no es necesario puesto que no hay aliasing de nombres.
  • 21. Definición de Métodos – Al definir como privados todos los atributos de Circulo, se deben proporcionar métodos para modificar su valor. – Ejemplo: definición de los Métodos Modificadores de Circulo.
  • 22. Definición de Métodos – Ejemplo: definición de otros Métodos de Circulo – El uso de un método estático permite definirlo a nivel de clase, no a nivel de instancia (objeto individual). – Se deberá invocar como Circulo.leerCirculo(...).
  • 23. – Crea una clase Libro que modele la información que se mantiene en una biblioteca sobre cada libro: título, autor (usa la clase Persona), ISBN, páginas, edición, editorial , lugar (ciudad y país) y fecha de edición (usa la clase Fecha). La clase debe proporcionar los siguientes servicios: – accedentes y mutadores, – método para leer la información y – método para mostrar la información. Este último método mostrará la información del libro con este formato: – Título: Introduction to Java Programming – 3a. edición – Autor: Liang, Y. Daniel – ISBN: 0-13-031997-X – Prentice-Hall, New Jersey (USA), viernes 16 de noviembre de – 2001 – 784 páginas
  • 24. Sobrecarga de métodos (Overloading) – La firma de un método es la combinación del tipo de dato que regresa, su nombre y su lista de argumentos. – La sobrecarga de métodos es la creación de varios métodos con el mismo nombre pero con diferentes firmas y definiciones. –Se utiliza para reutilizar el nombre de un método pero con diferentes argumentos.
  • 25. Reglas para sobrecargar un método – Los métodos sobrecargados deben de cambiar la lista de argumentos. – Pueden cambiar el tipo de retorno. – Un método puede ser sobrecargado en la misma clase o en una subclase. – Pueden cambiar el modificador de acceso. – Pueden declarar nuevas o más amplias excepciones.
  • 27. Heap, Stack y Variables de referencia – La memoria está dividida en tres partes, Zona de Datos, Stack y Heap. – Existen dos espacios en donde se ejecutan nuestras aplicaciones: Stack y Heap. – Stack almacena variables locales y los métodos en ejecución – Heap guarda las variables de instancia y los objetos – Cada hilo de la aplicación tiene su propia pila (Stack) pero todos comparten el mismo montículo (Heap).
  • 28. Stack – Almacena: – Referencias a objetos (instacias) – Datos de tipo primitivo (int, float,char…) – Variables locales – Parámetros de retorno de los métodos – Es estático, si lo llenamos, caeríamos en un StackOverflowError public void metodo(){ metodo(); }
  • 29. Heap – Los objetos son creados, eliminados o modificados en esta parte de la memoria. – La Java Virtual Machine (JVM), le asigna un espacio predeterminado de memoria y según se vaya requiriendo, la JVM le seguirá proporcionando más memoria. –Los elementos almacenados no pueden ser eliminados directamente sino con el Garbage Collector.
  • 30. Como interactúan el Heap y el Stack – Las referencias pueden apuntar a elementos del heap (es decir, a los objetos). – Las referencias tienen un tipo, que es al tipo de objeto que pueden apuntar las referencias. Crea la referencia en el stack Crea el objeto en el heap y en el mismo momento hacemos la referencia desde el stack
  • 31. Como interactúan el Heap y el Stack Un objeto puede estar siendo apuntado por muchas referencias, pero una referencia solo apunta a un objeto.
  • 32. Instanciación y Referencias – Los objetos se crean con el operador new, y se manejan mediante referencias – Los objetos se crean en el área de memoria dinámica conocida como el heap – Una referencia contiene la dirección de un objeto (es similar a los punteros de otros lenguajes) – Una asignación entre objetos es una asignación de referencias – Circulo c1 = new Circulo(); – Circulo c2 = c1;
  • 33. Garbage Collection – Es un proceso de la JVM que está revisando que objetos pueden ser borrados y cuales no. – Es un proceso de baja prioridad, por lo que no se pasa en todo momento liberando memoria, si no que pasa de vez en cuando. El primer objeto se queda sin referencia
  • 34. Paso de Parámetros – En Java el paso de parámetros se realiza "por valor“. – Significa que cuando un argumento se pasa a una función, la función recibe una copia del valor original. Por lo tanto, si la función modifica el parámetro, sólo la copia cambia y el valor original permanece intacto. – Argumentos de tipos primitivos – Si un método modifica el valor de un parámetro, este cambio sólo ocurre al interior del método; al retornar el método, se mantiene el valor original – Argumentos de tipo referencia (objetos) – Al retornar el método, la referencia pasada como parámetro sigue referenciando al mismo objeto; sin embargo, los campos del objeto podrían haber sido modificados por el método
  • 35. ArrayList – Clase que permite almacenar datos en memoria de forma similar a los Arrays. – Estructura dinámica de datos. – http://docs.oracle.com/javase/6/docs/api/java/util/Arra yList.html – ArrayList nombreArray = new ArrayList(); – Puede contener cualquier tipo de elementos.
  • 36. Ventajas – No es necesario declarar su tamaño como pasa con los Arrays porque el almacenamiento es dinámico lo cual permite aumentar o disminuir el consumo de memoria de acuerdo a las necesidades. – La clase ArrayList tiene muchos métodos predefinidos que hacen más fácil su uso. Por ejemplo: ara saber si un array cuenta con un dato tendrás que recorrerlo entero. Sin embargo un ArrayList te devuelve el objeto que en la colección tiene ese valor. – Un ArrayList colecciona objetos, un array colecciona dtos de un mismo tipo, que además es básico.
  • 39. Recorrer un Array – Podemos recorrerlo de forma clásica con un bucle for: – Si el array contiene objetos de tipos distintos o desconocemos el tipo:
  • 40. Uso de for each – Facilita el recorrido de objetos existentes en una colección sin necesidad de definir el número de elementos a recorrer. – Sintaxis: “Para cada elemento del tipo TipoARecorrer que se encuentre dentro de la colección nombreDeLaColección ejecuta las instrucciones que se indican” – Evita el uso de Iteradores o de un bucle for normal.
  • 41. Ejercicio – Crea una clase denominada ListaCantantesFamosos que al ser inicializada contenga un ArrayList con tres Strings que sean el nombre de cantantes famosos. Crea una clase test con el método main que inicialice un objeto ListaCantantesFamosos y usando un for extendido muestre los cantantes en la lista por pantalla. Se debe pedir al usuario un nombre más de cantante famoso, y una vez introducido mostrar la lista actualizada usando un for extendido.