Post on 06-Jul-2018
8/17/2019 Objetos Clases y Referencias en Java
1/18
1
Objetos y Clases en
Java
8/17/2019 Objetos Clases y Referencias en Java
2/18
2
Elementos de Análisis y Diseñoorientado a objetos
• Notación 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 elsistema bajo construcción.
• Las clases se relacionan entre si de variasformas.
• Existe una notación para expresarr!"camente las clases de un sistema y larelación entre ellas.
8/17/2019 Objetos Clases y Referencias en Java
3/18
#
Creación de objetos nuevos
• $e usa el constructor de la clase%i&lase a ' ne( %i&lase)*+
• ,odos los objetos son creados en eleap )memoria asinadadin!micamente durante laejecución*.
• Lo que se retorna es una referenciaal nuevo objeto )puede ser pensadacomo puntero*.
8/17/2019 Objetos Clases y Referencias en Java
4/18
Constructores
• ,iene iual nombre que la clase• /ueden tener par!metros• $on invocados principalmente con new
• No tiene tipo retornado• No return expl0cito• ava provee constructor por defecto ()• /odemos proveer uno o m!s constructores.
Esto es un tipo de sobrecara de mtodos)iual nombre con distintos par!metros*
8/17/2019 Objetos Clases y Referencias en Java
5/18
3
• 4niciali5a objetos nuevos: – 1. Locali5a memoria – 2. 6sina valores por defecto a variables )78
7.78 null8 9*
– #. Llama constructor de $uperclase
– La primera sentencia puede ser:
– super) 9 * para llamar al constructor dela clase base )o padre o superclase*
– tis) 9 * invoca a otro constructor
Constructores
8/17/2019 Objetos Clases y Referencias en Java
6/18
Reerencias
• Los objetos son referenciados• Esta es una forma ;controlada< de usar:
=irecciones y punteros
• 6l declarar una variable de una claseobtenemos una referencia a la variable.
• En caso de tipos primitivos se tiene la
variable y acceso directo )no es referencia* – byte8 sort8 int8 lon8 >oat8 double8 car8boolean
8/17/2019 Objetos Clases y Referencias en Java
7/18
?
C1 = new Cheque("Peter", 1000, 40);
C1 namebalance
chqNum
Cheque C1;
C1 Referencia nula
De!niendo variables
8/17/2019 Objetos Clases y Referencias en Java
8/18
@
Asi"nación
Cheque C;
C
C = C1;
C1
name
balance
chqNum
C
8/17/2019 Objetos Clases y Referencias en Java
9/18
A
4mplicancias de referencias
• La identidad de objetos son reerencias – referencia sini"ca puntero )i.e. no el contenido*
• ' es copiar la referencia – Bsar mtodo clone para crear copia del objeto completo.
• '' es comparación de referencias – Bsar e#uals para comparar contenidos
• java usa paso de par!metros por valor8 ;&all byvalue
8/17/2019 Objetos Clases y Referencias en Java
10/18
!tructura #in$mica
Cambian %e tama&' %urante la eecucin %el*r'+rama
! im*'ible reerar una canti%a% fia %e e*aci'%e almacenamient'
-a reeracin %e mem'ria . ai+nacin %e%irecci'ne e llea a cab' me%iante la
ai+nacin %in$mica %e almacenamient'
/' %e a*unta%'re
8/17/2019 Objetos Clases y Referencias en Java
11/18
!t$n c'm*ueta %e *eque&a etructura llama%a nodos ' elementos, enlaa%a me%iante un' ' m$ a*unta%'re a'bet' %el mim' tipo nodo
#e*en%ien%' %el nmer' %e a*unta%'re . %e la relaci'neentre n'%' *'%em' %itin+uir ari' ti*' %e etructura%in$mica
DATO DATO
DATO DATODATO
!tructura #in$mica
8/17/2019 Objetos Clases y Referencias en Java
12/18
-2353
6R5783
!tructura #in$mica
8/17/2019 Objetos Clases y Referencias en Java
13/18
59-53 #! :53:
R98-!3
.
.
.
.
.
.
!tructura #in$mica
8/17/2019 Objetos Clases y Referencias en Java
14/18
LISTAS
-ita im*lemente enlaa%a
-ita im*lemente enlaa%a c'n n'%' cabecera
-ita circulare %'blemente enlaa%a c'n n'%' cabecera
-ita %'blemente enlaa%a c'n n'%' cabecera
-ita circulare im*lemente enlaa%a
-ita circulare im*lemente enlaa%a c'n n'%' cabecera -ita circulare %'blemente enlaa%a
!tructura #in$mica
8/17/2019 Objetos Clases y Referencias en Java
15/18
OPERACIONES SOBRE LISTAS
• 2nertar ' a&a%ir un element'• !liminar un element'
• -'caliar un element'
!tructura #in$mica
8/17/2019 Objetos Clases y Referencias en Java
16/18
Listas Simplemente Enlazadas
-a etructura m$ im*le
C'nunt' %e re+itr' ' n'%' (n' neceariamente
a%.acente en mem'ria)
Ca%a re+itr' c'ntiene un element' . un a*unta%'r a un
re+itr' que c'ntiene u uce'r
!l a*unta%'r %el ltim' re+itr' %e la lita c'ntiene el al'r nil 3e requiere %e un a*unta%'r que referencie ' a*unte al *rimer
element' %e la mima (¡nunca debe perderse!
!tructura #in$mica
8/17/2019 Objetos Clases y Referencias en Java
17/18
Listas Simplemente Enlazadas
a1
L
a2
a3
a4
a5
L
a1
500a2
850a3
350a4
933a5
nil
458
458 500 850 350 993
!tructura #in$mica
8/17/2019 Objetos Clases y Referencias en Java
18/18
Listas Simplemente Enlazadas
Lista Vacía
L
L
nil
!tructura #in$mica