Objetos Clases y Referencias en Java

download Objetos Clases y Referencias en Java

of 18

Transcript of Objetos Clases y Referencias en Java

  • 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