Está en la página 1de 18

Objetos y Clases en

Java

Elementos de Anlisis y Diseo


orientado a objetos
Notacin y relaciones entre clases:
Las clases son abstracciones para los entes
o cosas que constituyen el sub-mundo o
modelo de la realidad donde existe el
sistema bajo construccin.
Las clases se relacionan entre si de varias
formas.
Existe una notacin para expresar
grficamente las clases de un sistema y la
relacin entre ellas.
2

Creacin de objetos nuevos


Se usa el constructor de la clase
MiClase a = new MiClase();
Todos los objetos son creados en el
heap (memoria asignada
dinmicamente durante la
ejecucin).
Lo que se retorna es una referencia
al nuevo objeto (puede ser pensada
como puntero).
3

Constructores

Tiene igual nombre que la clase


Pueden tener parmetros
Son invocados principalmente con new
No tiene tipo retornado
No return explcito
Java provee constructor por defecto ()
Podemos proveer uno o ms constructores.
Esto es un tipo de sobrecarga de mtodos
(igual nombre con distintos parmetros)
4

Constructores
Inicializa objetos nuevos:
1. Localiza memoria
2. Asigna valores por defecto a variables (0,
0.0, null, )
3. Llama constructor de Superclase
La primera sentencia puede ser:
super( ) para llamar al constructor de
la clase base (o padre o superclase)
this( ) invoca a otro constructor
5

Referencias
Los objetos son referenciados
Esta es una forma controlada de usar:
Direcciones y punteros
Al declarar una variable de una clase
obtenemos una referencia a la variable.
En caso de tipos primitivos se tiene la
variable y acceso directo (no es referencia)
byte, short, int, long, float, double, char,
boolean

Definiendo variables
Cheque C1;
C1

Referencia nula

C1 = new Cheque("Peter", 1000, 40);


name
balance
chqNum

C1

Asignacin
Cheque C2;
C2
C2 = C1;
C2

name
balance
chqNum

C1

Implicancias de referencias
La identidad de objetos son referencias
referencia significa puntero (i.e. no el contenido)

= es copiar la referencia
Usar mtodo clone para crear copia del objeto completo.

== es comparacin de referencias
Usar equals para comparar contenidos

java usa paso de parmetros por valor, Call by


value.
aMethod(pejAcct) pasa un referencia
aMethod(tipo_bsico) pasa el valor
return pejAcct
retorna una referencia
Usar clone para crear una copia, y luego retornarla
9

Estructuras Dinmicas

Cambian de tamao durante la ejecucin del


programa
Es imposible reservar una cantidad fija de espacio
de almacenamiento
La reservacin de memoria y asignacin de
direcciones se lleva a cabo mediante la
asignacin dinmica de almacenamiento
Uso de apuntadores

Estructuras Dinmicas
Estn compuestas de pequeas estructuras llamadas nodos
o elementos, enlazadas mediante uno o ms apuntadores a
objetos del mismo tipo nodo

DATO
DATO

DATO
DATO

DATO

Dependiendo del nmero de apuntadores y de las relaciones


entre nodos podemos distinguir varios tipos de estructuras
dinmicas

Estructuras Dinmicas

LISTAS

GRAFOS

Estructuras Dinmicas

RBOLES

TABLAS DE HASH
.
.
.

.
.
.

Estructuras Dinmicas
LISTAS
Listas simplemente enlazadas
Listas simplemente enlazadas con nodo cabecera
Listas circulares doblemente enlazadas con nodo cabecera
Listas doblemente enlazadas con nodo cabecera
Listas circulares simplemente enlazadas
Listas circulares simplemente enlazadas con nodo cabecera
Listas circulares doblemente enlazadas

Estructuras Dinmicas

OPERACIONES SOBRE LISTAS

Insertar o aadir un elemento


Eliminar un elemento
Localizar un elemento

Estructuras Dinmicas
Listas Simplemente Enlazadas
La estructura ms simple
Conjunto de registros o nodos (no necesariamente
adyacentes en memoria)
Cada registro contiene un elemento y un apuntador a un
registro que contiene su sucesor
El apuntador del ltimo registro de la lista contiene el valor nil
Se requiere de un apuntador que referencie o apunte al primer
elemento de la misma (nunca debe perderse!)

Estructuras Dinmicas
Listas Simplemente Enlazadas

L
a1

a2

a3

a4

a5

458
458

a1

500
500

a2

850
850

a3

350
350

a4

993
933

a5 nil

Estructuras Dinmicas

Listas Simplemente Enlazadas


Lista Vaca

L
nil