java - modulo 1

Upload: elvis-camacaro

Post on 02-Mar-2018

234 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/26/2019 Java - Modulo 1

    1/85

    Java Mdulo 1

    Introduccin y Fundamentos del

    lenguaje de programacin Java

  • 7/26/2019 Java - Modulo 1

    2/85

    Contenido

    Introduccin

    Caractersticas del lenguaje.

    Variables y Tipos de Datos.

    Estructuras de Control

    Ciclos iterativos.

    Introduccin a la !!.

  • 7/26/2019 Java - Modulo 1

    3/85

    Introduccin

  • 7/26/2019 Java - Modulo 1

    4/85

    Introduccin (I)

    Creado en "##" por $un %icrosystems &James'osling( para dispositivos electrnicos)calculadoras* microondas y la televisin

    interactiva. Escasa potencia de c+lculo

    oca memoria

    Distintas C,s

    Consecuencias) -enguaje sencillo ue genera cdigo reducido

    -enguaje ue independiente de la plata/orma

  • 7/26/2019 Java - Modulo 1

    5/85

    Introduccin (II)

    -enguaje de progamacin paracomputadores0internet desde "##1.

    $un describe Java como 2 un lenguaje simple,orientado a Objetos, distribuido, interpretado,robusto, seguro, de arquitectura neutral, portable,de alto rendimiento, multihilos, y dinmico3

    Ejecucin de Java como) 4plicacin independiente

    4pplet &dentro del navegador al cargar la p+gina 5eb( $ervlet &ejecutado en servidor de internet* sin inter/a6

    gr+/ica(.

  • 7/26/2019 Java - Modulo 1

    6/85

    Introduccin (III) JD7 &Java Development 7it() programas y librerias para

    desarrollar* compilar y ejecutar programas Java.

    Versiones) Java ".8) 9"9 clases organi6adas en : pauetes

    Java ".") 18; clases* 9< pauetes. %ejoras a la JV%.

    Java ".9 &Java 9() "198 clases* 1# pauetes. lata/orma

    muy madura . 4poyado por grandes empresas) I=%*!racle* Inprise* >e?tlett@acAard* Betscape* $un.

    Java ".< &Java Enterprise Edition(. Java comien6a aser una plata/orma de desarrollo pro/esional

    Java %icroEdition

  • 7/26/2019 Java - Modulo 1

    7/85

    Caractersticas de Java

  • 7/26/2019 Java - Modulo 1

    8/85

    Caractersticas de Java I

    -enguaje de /+cil uso orientado a objetos -enguaje compilado e interpretado Facilita un entorno interpretado)

    Velocidad de desarrollo &no de ejecucin(

    ortabilidad del cdigo Ejecucin multitareas Cambios din+micos en tiempo de ejecucin $eguridad del cdigo.

  • 7/26/2019 Java - Modulo 1

    9/85

    La mquina Virtual Java - JVM (I)

    Es una m+uina ipottica ue emula por so/t?are una

    m+uina real. Es de/inida por una especi/icacin. Conjunto de instrucciones de m+uina

    &C.!.( !perandos

    ila

    %emoria ...

    El compilador genera bytecodes &instrucciones de cdigomauina para la JV%(

    El interprete tarduce y ejecuta los bytecodes para cadam+uina espec/ica.

  • 7/26/2019 Java - Modulo 1

    10/85

    La mquina Virtual Java (II)

    Cdigo fuenteCdigo fuente

    Compilador JavaCompilador Java

    Byte-codesByte-codes

    Win32 JVMWin32 JVM

    Cdigo mquinaWin32

    Cdigo mquinaWin32

    Macintos JVMMacintos JVM !"#$ JVM!"#$ JVM

    Cdigo mquinaMacintos

    Cdigo mquinaMacintos

    Cdigo mquina!"#$

    Cdigo mquina!"#$

  • 7/26/2019 Java - Modulo 1

    11/85

    Compilador e intrprete de

    Java (I)

    El compilador anali6a la sintaGis del cdigo /uente &con

    eGtensin .java(. $i no ay errores* genera bytecodes

    > javac.java

    El intrprete es la %+uina Virtual de Java ue ejecuta

    los bytecodes &H.class( creados por el compilador.

    > java &sin eGtensin(

    > java arg1 arg2

  • 7/26/2019 Java - Modulo 1

    12/85

    Compilador e intrprete de Java (II)

    HelloWorld.javajavac HelloWorld.java

    java HelloWorld HelloWorld.class

    compilar

    e!cutar"#tecode

    Codi$o %uente

  • 7/26/2019 Java - Modulo 1

    13/85

    &ar"a$e Collection

    -a memoria reservada din+micamente ue Bo se vaya a

    usar m+s debe ser liberada.

    En otros lenguajes* esta liberacin debe reali6arla el propio

    programador.

    -a JV% dispone de un procesoue rastrea las operaciones

    de memoria) el Garbage Collector.

    Veri/ica y libera la memoria ue no se necesita

    $e ejecuta autom+ticamente

    uede variar segn la implementacin de la JV%.

  • 7/26/2019 Java - Modulo 1

    14/85

    'e$uridad del Cdi$o

    -a JV% veri/ica los bytecodes asegurando ue)

    El cdigo se ajusta a las especi/icaciones de la JV%.

    Bo ay violaciones de acceso restringido.

    -os tipos de los par+metros son correctos para todo elcdigo.

    Bo eGisten conversiones ilegales de datos &ej. deenteros a apuntadores(.

  • 7/26/2019 Java - Modulo 1

    15/85

    ormato de los arcivos %uente

    Declaracin de pauete &opcional(

    pacAage nombreaueteK

    Instrucciones de importacin&opcional(

    import nombreauetesK

    Declaracin de clase o inter/a6

    LmodKM class BombreClaseK N.....O

  • 7/26/2019 Java - Modulo 1

    16/85

    *n pro$rama 'imple

    public classProgramaSimple

    {

    public static void main(String[] args)

    {

    System.ot.println(!"ste es# $ #n programa simple!)%

    System.e&it(')%

  • 7/26/2019 Java - Modulo 1

    17/85

    +lementos del Len$ua!e

  • 7/26/2019 Java - Modulo 1

    18/85

    +lementos del len$ua!e

    Caracteristicas del lenguaje

    Declaraciones

    Tipos de Datos !peradores

    Estructuras de control

    Clases y !bjetos

    auetes

  • 7/26/2019 Java - Modulo 1

    19/85

    Caracteristicas del len$ua!e

    $ensible a maysculas0misnsculas

    Comentarios

    -enguaje de /ormato libre Identi/icadores

    alabras reservadas

    Variables y constantes

    Convenciones de nomenclatura

    Tiene reglas sobre los tipos de datos

  • 7/26/2019 Java - Modulo 1

    20/85

    'ensi"le a

    ma#,sculasmin,sculas

    $e distingue entre maysculas y

    minsculas.

    -os identi/icadores Papa* papay PPson di/erentes.

    Todas las palabras reservadas del lenguaje

    van en minsculas.

  • 7/26/2019 Java - Modulo 1

    21/85

    Comentarios

    00 comentario

    -os caracteres desde 00 asta el /inal de la lnea sonignorados.

    0H comentario H0

    -os caracteres entre 0H y H0 son ignorados

    0HH comentario H0

    -os caracteres entre 0HH y H0son ignorados y seincluyen en la generacin autmatica de ladocumentacin.

  • 7/26/2019 Java - Modulo 1

    22/85

    Len$ua!e de %ormato li"re

    -a disposicin de los elementos dentro del cdigo es libre Instrucciones) lnea simple de cdigo terminada en ; Bloque de cdigo) Conjunto de sentencias agrupadas entre

    llaves.{

    * + & $ 1%

    , + y $ 1%

    Java permite espacios en blanco entre elementos del cdigo*1 + y - elta%

    *2 + (y/1) - elta%

  • 7/26/2019 Java - Modulo 1

    23/85

    .ala"ras /eservadas alabras con un signi/icado especial para el compilador Ejemplos)

    Bombres de tipos b+sicos) boolean* car* double* int* P

    Indicadores de controls) do* i/* else* /or* ?ile* P

    Class* inter/ace* eGtends* implements pacAage* import

    tis* super

    %odi/icadores de acceso) public* private* protected

    Constantes) true* /alse* null EtcP

  • 7/26/2019 Java - Modulo 1

    24/85

    Varia"les # Constantes

    Variable) Qona de memoria cuyos valores van a

    cambiar durante la ejecucuin.

    Declaracin)

    R

    * * ...* R

    S R

  • 7/26/2019 Java - Modulo 1

    25/85

    Varia"les # Constantes

    Ejemplos de declaracin de variables) int G*y*6R

    int G S #R

    boolean terminar S /alseR

    Cliente c" S ne? Cliente&(R

    Constantes) Qona de memoria cuyos valores nocambian

    Declaracin) finalS R

    Ejemplo) /inal double I S

  • 7/26/2019 Java - Modulo 1

    26/85

    0si$naciones

    $e utili6a el operador de asignacin = S R

    RS R

    -a parte i6uierda siempre debe ser una variable -a parte dereca puede ser un literal* una

    variable* una eGpresin* una /uncin o una

    combinacin de todos. int G S ;R 00Declaracion con asignacin

    G S #R 00$e asume ue G est+ de/inida

  • 7/26/2019 Java - Modulo 1

    27/85

    ipos de 2atos # 3peradores

  • 7/26/2019 Java - Modulo 1

    28/85

    ipos de 2atos

    Java de/ine dos tipos de datos Tipos primitivos

    Tipos re/erencia

    -os tipos primitivosson oco agrupados encuatro categoras) -gico) boolean

    TeGto) car

    Entero)byte* sort* int* long eal) /loat* double

    -os tipos referenciason apuntadores a objetos.

  • 7/26/2019 Java - Modulo 1

    29/85

    ipos de 2atos

    Tipos primitivos)

    boolean trueo false

    char unicodeU &" bits(byte entero de : bits con signo.

    short entero de " bits con signo.

    int entero de

  • 7/26/2019 Java - Modulo 1

    30/85

    ipos de datos /e%erencia ,n tipo re/erencia guarda un apuntador a la direccin

    donde se ubica el objeto &

  • 7/26/2019 Java - Modulo 1

    31/85

    Cadenas de Caracteres

    -a clase Stringpermite manejar cadenas de caracteres. El literal string debe ir entre comillas dobles 23.

    $e puede crear una cadena de caracteres de dos /ormas)

    $tring nombre S ne? $tring&2epe3(R $tring nombre S 2epe3R

    ara concatenar dos cadenas se usa el operador .

    Bo se guarda el car+cter !in de cadena.

  • 7/26/2019 Java - Modulo 1

    32/85

    Conversiones de tipos

    -a conversin de tipos &casting( debe reali6arse entretipos de la misma naturale6a) numricos o re/erencia.

    4l convertir un tipo a un tamaXo m+s peueXo se puedeperder la in/ormacin del los bits de mayor peso.

    Bo ay conversin automatica con el tipobooleanU

    -a sintaGis es) "#

    Ejemplo)int i = (int) 1.!"#

  • 7/26/2019 Java - Modulo 1

    33/85

    3peradores (I) ,narios) . @

    4ritmticos) * @* H* 0* Y &resto de la divisin(.

    De 4signacin) S* S* @S* HS* YS

    %& & %

    !peradores incrementales) * @@

    recediendo a la variable) varK* @@varK siguiendo la variable) varK* varK@@

    elacionales) SS. US* * K* S* KS* P

  • 7/26/2019 Java - Modulo 1

    34/85

    3peradores (II)

    !peradores relacionales) SS &igual(. US &distinto(* * K*

    S* KS* P

    !peradores booleanos) ZZ &4BD(* [[ &!(* U &B!T(* Z

    &4BD(* [ &!(.

    ZZ y [[ reali6an evaluacin pere6osa

    Z y [ siempre evalan los dos operadores

    El operador instanceo/) instaneo8

    determina si un objeto pertenece a una clase.

  • 7/26/2019 Java - Modulo 1

    35/85

    3peradores (III)

    !perador condicional) eGp=ooleanaK valor"K ) valor9K

    permite bi/urcaciones condicionales sencillas.

    !peradores a nivel de =its) Z* [* \* ]* * KK* KKK op" KK n* despla6a los bits de op" &con signo( a la dereca n

    posiciones.

    op" KKK n* despla6a los bits de op" &sin signo( a la dereca n

    posiciones. op" \ op9* ! eGclusivo.

    ]op" * B!T a nivel de bit &complemento(.

  • 7/26/2019 Java - Modulo 1

    36/85

    .recedencia de operadores

    ^ -os operadores binarios se evalan de i6auierda a dereca*eGcepto los operadores de asignacin.

    1. S8ijos9 . [] ()

    2. :narios9 $$ // ;

    =. 0reaion y asting9 ne3 (tipo)e&p

    . ?ltipliativos9 - 4 @

    A. itivos9 $ /

    B. CesplaDamientos9 > >>>

    E. Felaionales9 < > + ++ ;+

    G. Hits9 I J KL. Mgios9 II KK

    1'. 0oniional9 O 9

    11. signain9 + op+ (-+ 4+ @+ $+ / et.)

  • 7/26/2019 Java - Modulo 1

    37/85

    +structuras de control

  • 7/26/2019 Java - Modulo 1

    38/85

    +structuras de Control -as estructuras de control del /lujo de ejecucin

    permiten tomar decisiones y reali6ar un bloue de

    instrucciones repetidas veces.

    >ay 9 tipos principales) Condicionales) i8* s3it

    -a6os) 8or* 3ile* o 3ile

    !tras instrucciones ue permiten interrumpir el /lujo

    normal de ejecucin son brea'y continue.

  • 7/26/2019 Java - Modulo 1

    39/85

    La instruccin i%

    Ejecuta un conjunto de instrucciones en /uncin de laeGpresin de comparacin &booleana(

    if() %[else]%

    if( e&prHooleana ) %[else]%

    Ejemplo) i8 (a>b) & + a% else & + b%

    El else es opcional i8 ( &[i] > ma& ) ma& + &[i]%

  • 7/26/2019 Java - Modulo 1

    40/85

    La instruccin s4itc Comparacin de igualdad mltiple con la misma

    variable.

    s$itch() {caseliteral19[%]

    [brea%%]caseliteral29[%]

    [brea%%]

    caseliteraln9[%]

    [brea%%]

    [default9 %]

  • 7/26/2019 Java - Modulo 1

    41/85

    +!emplo s4itc

    s$itch(opion) {case19brirrivo()%

    brea%%

    case29Rmprimirrivo()%

    brea%%

    case=9RmprimirCatos()%

    brea%%

    case90errarrivo()%

    brea%%

    caseA9

    default9 terminarPrograma()%

    +l la5o %or

  • 7/26/2019 Java - Modulo 1

    42/85

    +l la5o %or

    ermite la ejecucin repetida de un grupo de

    instrucciones con mayor control8or ( %% )

    { % iniciali6acinK* asignacin de valores iniciales de

    las variables ue intervienen en la eGpresin eGp=ooleanaK* condicin boolena

    actuali6acinK* asignacin de un nuevo valor de lasvariables de iniciali6acinK

  • 7/26/2019 Java - Modulo 1

    43/85

    +l la5o 6ile

    El grupo de instrucciones se ejecuta

    mientras se cumpla la eGpresin booleana.

    $hile( e&pHooleana )

    {

    %

  • 7/26/2019 Java - Modulo 1

    44/85

    +quivalencia %or-4ile

    for( % % )

    {

    %

    Euivale a)

    $hile( e&pHooleana )

    {

    %

    %

  • 7/26/2019 Java - Modulo 1

    45/85

    +!emplo

    8or( 7+'% 7

  • 7/26/2019 Java - Modulo 1

    46/85

    +l la5o 2o-6ile

    El conjunto de instrucciones se ejecuta mientras secumpla la eGpresin booleana

    do

    {

    %

    $hile( e&pHooleana )

    El conjunto de instrucciones se ejecuta al menos " ve6.

    L i t i " 7

  • 7/26/2019 Java - Modulo 1

    47/85

    Las instrucciones "rea7 #

    continue8 -a instruccinbrea%causa la terminacin

    inmediata de un la6o o instruccin s?itc &sin

    ejecutar el resto de las instrucciones(.

    V+lido para /or* ?ile* do ?ile y s?itc -a sentencia continuecausa la terminacin

    inmediata de una iteracin de un ciclo.

    V+lido para /or* ?ile y do ?ile

  • 7/26/2019 Java - Modulo 1

    48/85

    .ro$ramacin 3rientada a

    3"!etos

  • 7/26/2019 Java - Modulo 1

    49/85

    .aradi$mas de pro$ramacin

    aradigma estructurado o procedural) -os programas se dividen

    en procedimientos independientes con acceso total a los datos

    comunes.

    4lgortimos Estructuras de Datos S rogramas

    aradigma orientado a objetos) -os datos se consideran la partem+s importante del programa. -os objetos modelan las

    caractersticas de los problemas del mundo real* su

    comportamiento ante estas caracteristicas y su /orma de interactuar

    con otros elementos

    !bjetos mensajes S rogramas

    +!emplo9 omarse un ca% en

  • 7/26/2019 Java - Modulo 1

    50/85

    +!emplo9 omarse un ca% en

    la panadera

    rocedural) El cliente entra el la

    panadera

    El cliente pasa detr+sde la barra

    El cliente prepara laca/etera

    El cliente se sirve elca/

    El cliente se bebe elca/.

    !!) El cliente entra en la

    panadera

    El cliente pide un ca/al 2ca/etero3

    El 2ca/etero3 preparael ca/.

    El 2ca/etero3 sirve elca/ al cliente.

    El cliente se bebe elca/.

    Conceptos de la 3rientacin a

  • 7/26/2019 Java - Modulo 1

    51/85

    Conceptos de la 3rientacin a

    3"!etos

    Clases) atrones ue indican como construir objetos bjetos) Instancias de las clases en tiempo de

    ejecucin.

    !iembrosde la clase) "tributos) Caractersticas o propiedades de los objetos

    &o clases(. ueden ser variables de tipos simples ore/erencias a otros objetos

    !#todos) Comportamientos de los objetos. $on/unciones ue operan sobre los atributos de los objetos.

  • 7/26/2019 Java - Modulo 1

    52/85

    Caractersticas de la 33

    Cada objeto tiene caractersticas reconocibles.Ejemplo) un empleado tiene Bombre* CI* sueldo* P

    Cada objeto es nico. Ejemplo) el empleado" es Juanre6* con CI ".;1.W: gana :#8.888 =s.

    -os objetos almacenan in/ormacin &suscaractersticas(

    -os objetos reali6an operaciones sobre sus atributos.

  • 7/26/2019 Java - Modulo 1

    53/85

    2e%inicin de Clase

    $intaGis&lass '

    44 Celaraion e atribtos

    %

    44 Celarain e mTtoos

    ( )

    {

    El nombre del arcivo debe coincidir con el de la

    clase de/inida en l. $e recomienda de/inir una clase por cada arcivo

    Java.

  • 7/26/2019 Java - Modulo 1

    54/85

    +!emplo de Clase

    pbli lass 0irlo {

    44 tribtos

    oble raio%

    String olor%

    44 ?etoos

    voi asigFaio( ){

    oble area( ){

  • 7/26/2019 Java - Modulo 1

    55/85

    Creacin de un o"!eto

    $e usa la palabra reservada ne?

    + ne3 ()%

    Ejemplo)

    0irlo mi0irlo%

    mi0irlo + ne$0irlo()%

    0cceso a los miem"ros de un

  • 7/26/2019 Java - Modulo 1

    56/85

    0cceso a los miem"ros de un

    3"!eto 4 travs del operador punto &.( se puede acceder tanto

    a los atributos como a los mtodos.

    .

    .()Ejemplo)

    0irlo mi0irlo + ne3 0irlo()%

    mi0irlo.raio + 1'%

    mi0irlo.olor + aDl%

    mi0irlo.area()%

  • 7/26/2019 Java - Modulo 1

    57/85

    Mtodos

    $on el euivalente a los procedimientos de los lenguajes no!!. ,n mtodo es un bloue de cdigo de/inido dentro deuna clase ue proporciona un mecanismo para reali6ar unaaccin.

    ,n mtodo tiene acceso a todos los atributos de su clase.

    ,n mtodo puede invocar otros mtodos

    En Java no se puede de/inir un mtodo dentro de otro.

    -a ejecucin de todos los programas se inicia en el mtodo

    main.

  • 7/26/2019 Java - Modulo 1

    58/85

    2e%inicin de mtodos (I)

    $intaGis para la de/inicin de un mtodo) (< parametros >...)

    '...

    -a declaracin de un mtodo tiene cuatro partes b+sicas) El tipo del valor de retorno del mtodo &tipo(. $i no devuelve

    ningun valor debe ser voi.

    El nombre del mtodo &nombre%etodo(

    ,na lista de par+metros &parametros(. Casa par+metro tiene la/orma tipoK argumentoK. $e separan con comas.

    El cuerpo del mtodo &instrucciones(.

    2e%inicin de mtodos (II)

  • 7/26/2019 Java - Modulo 1

    59/85

    2e%inicin de mtodos (II) Conjunto de instrucciones ue

    implementan la tarea ue debe reali6ar el mtodo.

    $i devuelve un valor debe /inali6ar con la sentencia

    retrn

    retrn %

    Debe ser del mismo con ue se a

    declarado el mtodo.

    El cdigo se ejecuta asta alcan6ar la instruccin return &si

    devuelve un valor( o asta el /inal del mtodo. $e pueden declarar variables locales si son necesarias.

    +!emplos de Mtodos

  • 7/26/2019 Java - Modulo 1

    60/85

    +!emplos de Mtodos

    oble obtFaio( ){

    retrn raio%

    voi asigFaio(int nevoFaio){

    raio + nevoFaio%

    pbli oble rea( ) {retrn raio-raio-?at.PR%

    pbli lass 0irlo

    {

    44 tribtos

    oble raio%

    String olor%

    44 ?etoos

    voi asigFaio( )

    {

    oble area( ){

    .arametros

  • 7/26/2019 Java - Modulo 1

    61/85

    .arametros -as variables en la lista de par+metros se separan con

    comas. -os parametros de la lista en la especi/icacin del

    mtodo* son llamados par+metros /ormales.

    Cuando un mtodo es llamado* estos par+metros/ormales son reempla6ados por los par+metrosactuales.

    -os par+metros actuales deben ser euivalentes entipo* orden y nmero a los parametros /ormales.

  • 7/26/2019 Java - Modulo 1

    62/85

    char calc (int num1 int num* +tring mensaje)

    '

    int sum = num1 , num*#

    char result = mensaje.char-t (sum)#

    return result#

    num =

    ch = obj.calc (* num Hola /undo0)#

    .armetros - +!emplo

  • 7/26/2019 Java - Modulo 1

    63/85

    .aso de parametros por valor

    Cuando es invocado un mtodo con unpar+metro de tipo primitivo* tal como 2int3* el

    valordel par+metro actual es pasado al mtodo.

    El valor actual de la variable /uera del mtodono es a/ectado* independientemente de los

    cambios ecos al par+metro /ormal dentro del

    mtodo.

    .arametros por valor - +!emplo

  • 7/26/2019 Java - Modulo 1

    64/85

    p ! pclass ruebaasoor2alor '

    public static void main(+tring34 args) '

    int times = #

    +ystem.out.println(-ntes del llamado la variabletimes es5,times)#

    nrintln(6ienvenido a 7ava85times)#

    +ystem.out.println(9espues del llamado la variabletimes es5 , times)#

    static void nrintln(+tring mensaje int n) '

    $hile (n : ;) '

    +ystem.out.println(n = ,n)#

    +ystem.out.println(mensaje)#

    n

  • 7/26/2019 Java - Modulo 1

    65/85

    .aso de parametros por

    re%erencia $e pueden pasar objetos a mtodos como

    par+metros actuales

    Cuando se pasa un objeto al mtodo la referencia

    del objeto es pasado al par+metro /ormal Cualuier cambio al objeto local ue ocurra

    dentro del mtodo a/ectar+ al objeto original ue

    /ue pasado como argumento.

    .arametros por re%erencia -+!emplo

  • 7/26/2019 Java - Modulo 1

    66/85

    class ruebaasooreferencia '

    public static void main(+tring34 args)'

    &irculo mi&irculo#

    mi&irculo = ne$ &irculo(".; 0blanco0)#

    imprime&irculo(mi&irculo)#

    color&irculo(mi&irculo 0negro0)#

    imprime&irculo(mi&irculo)#

    public static void color&irculo( &irculo c +tring color) 'c.color = color#

    public static void imprime&irculo(&irculo c) '

    +ystem.out.println(0El >rea del circulo de radio 0 ,

    c.getadio( ) , 0 es 0 ,c.-rea())#

    +ystem.out.println(0El color del &irculo es 0 ,c.color)#

  • 7/26/2019 Java - Modulo 1

    67/85

    .arametros por re%erencia +!emplo (cont8)

    class &irculo '

    private double radio# +tring color#

    public &irculo(double r +tring c)'

    radio = r#

    color = c#

    public double getadio( )'

    return radio#

    public double -rea( )'

    return radio?radio?/ath.@#

    0lcance de las varia"les (I)

  • 7/26/2019 Java - Modulo 1

    68/85

    ( ) En java se dispone de tres tipos de variables)

    -as variables miembro pertenecientes a una clase.

    4rgumentos de un mtodo de la clase. Variables locales de un mtodo de la clase.

    -os argumentos trabajan como variables locales.

    lass "jemplo {

    int &% 44 variable miembro

    metoo (int y){44 argmento

    int D% 44 variable loal

    & + y $ D%

    0l d l i "l (II)

  • 7/26/2019 Java - Modulo 1

    69/85

    0lcance de las varia"les (II)

    -as variables miembros son visibles desdecualuier parte de la clase.

    -os argumentos y variables locales solo son

    visibles dentro del mtodo al ue pertenece* dejan

    de eGistir al /inali6ar el mtodo.

    Dentro de un mtodo* si coincide el identi/icador

    de un argumento o variable local con el de una

    variable miembro* slo se accede a la variable delmtodo.

    +!emplo

  • 7/26/2019 Java - Modulo 1

    70/85

    +!emplo

    lass {

    int &%

    voi metoo (int y){

    int &+2%

    y + =-& $ y / &%

    println(y)%

    main

    {

    int arg + %

    obj + ne3 ()%

    obj.& + 1%

    obj.metoo(arg)%

    println(arg)%

    println(obj.&)%

  • 7/26/2019 Java - Modulo 1

    71/85

    La re%erencia tis

    $e emplea para re/erirse al objeto actual

    dentro de un mtodo.

    Con thisse ace accesible una variable

    miembro cuyo identi/icador coincide con una

    variable local.

    Constructores (I)

  • 7/26/2019 Java - Modulo 1

    72/85

    ( )

    ,n constructor es un tipo especial de mtodo ue

    permite construir un objeto de una clase. Ejemplo)

    lass 0irlo{

    pbli 0irlo(){

    pbli 0irlo(oble r){pbli 0irlo(oble r String ){

    $e utili6an junto con la palabra reservada ne?0irlo 1 + ne3 0irlo(2E)%

    Constructores (II)

  • 7/26/2019 Java - Modulo 1

    73/85

    Constructores (II)

    -os constructores se pueden sobrecargar yson opcionales

    $i no se de/ine ningn constructor* Java

    proporciona uno por de/ecto. $i se de/ine un constructor con argumentos

    se pierde el constructor por de/ecto

    Bormalmente en el constructor seiniciali6an las variables miembro.

    2 t t

  • 7/26/2019 Java - Modulo 1

    74/85

    2estructores

    En Java no ay destructores como en C

    El garbage collector es el encargado de liberar la

    memoria. Cuando se detecta objetos no re/erenciados

    4l /inal de un bloue ue aya utili6ado objetos.

  • 7/26/2019 Java - Modulo 1

    75/85

    Caractersticas de la .33

    Ms conceptos de 33

  • 7/26/2019 Java - Modulo 1

    76/85

    p $ncapsulamiento) ermite la proteccin de

    ciertas partes de un objeto del acceso desde

    otros objetos eGternos

    %erencia) Jerarua de clases basada en la

    agrupacin de atributos o mtodos comunes

    &olimorfismo) Tratamiento generali6ado a

    todas las clases pertenecientes a una jerarua

    de erencia.

    +ncapsulamiento

  • 7/26/2019 Java - Modulo 1

    77/85

    +ncapsulamiento

    El encapsulamiento consiste en la agrupacin de

    datos y su tratamiento en una misma estructura. ermite la proteccdin de la manipulacin eGterna

    de algunas partes de los objetos. ,n objeto suele tener datos y mtodos privados*

    de acceso restringido. Fuer6a al usuario a usar una inter/a6 para acceder

    a los datos.

    %ace que el cdigo sea m's f'cil de mantener

    Modi%icadores para restrin$ir el

  • 7/26/2019 Java - Modulo 1

    78/85

    p $

    acceso (I)

    -a de/inicin de los miembros de una clase sepuede ampliar aXadiendo modi/icadores al

    principio.)

    [moi8iaor] %[moi8iaor] ()

    {...

    -os modi/icadores permiten acceder a losdatos o mtodos de manera restringida

    Modi%icadores para restrin$ir el

  • 7/26/2019 Java - Modulo 1

    79/85

    Modi%icadores para restrin$ir el

    acceso (II)

    public. El miembro de la clase es accesible desde

    cualuier parte del cdigo.

    private. El miembro de la clase slo es accesible

    desde cdigo perteneciente a la propia clase.

    protected&o /riendly(. $lo las subclases de la

    clase y nadie m+s pueden acceder a las variables y

    mtodos.

    :erencia (I)

  • 7/26/2019 Java - Modulo 1

    80/85

    :erencia (I)

    Jeraruia de clases basada en agrupar atributosy0o mtodos comunes

    -as clases descendientes se llaman subclases.

    -as clases ascendientes se llaman superclases.

    -as subclases eredan caractersticas y mtodos

    de las superclases &eGcepto los constructores(

    :erencia (II)

  • 7/26/2019 Java - Modulo 1

    81/85

    :erencia (II)

    $upongamos ue tenemos la clase Je/e y la clase$ecretaria de/inidas como) Je/e NintKnumEmpleadoK* $tringKnombreK*

    intKnumDepartK* intKnum$upervisadosKO

    $ecretaria NintKnumEmpleadoK* $tringKnombreK*

    intKnumDepartK* Je/eKtrabajaaraKO -as partes comunes se pueden agrupar en una

    misma clase* manteniendo las otras dos con laspartes no comunes y eredando de esta nueva clase

    con la palabra reservada e&tens.

    +!emplo erencia

  • 7/26/2019 Java - Modulo 1

    82/85

    public class -rticulo ' AA clase padrepublic float precio=;# ...

    public void setrecio(float elrecio) ' precio = elrecio# ...public float getrecio() ' return precio#

    AAlos mBtodos y atributos de -rticulo son heredados a elicula

    public class elicula eCtends -rticulo 'AA clase hijo

    public void set9escripcion(+tring descrip) ' descripcion = descrip# ... public +tring get9escripcion() ' return descripcion#

    /elacin de Contenido

  • 7/26/2019 Java - Modulo 1

    83/85

    /elacin de Contenido

    ,na clase puede tener re/erencias a objetos deotras clases.

    $e di/erencia de la erencia en ue es necesario

    instanciarlos por separado.

    esponde a/irmativamente a la pregunta)

    contenedorK tiene uncontenidoK

    Mtodos virtuales

  • 7/26/2019 Java - Modulo 1

    84/85

    Mtodos virtuales ,na subclase puede modi/icar los mtodos

    ue a eredado de las superclase*manteniendo los mismos nombres* tipos de

    retorno y listas de argumentos.

    class Empleado 'int calcular2acaciones() '...

    class 7efe eCtends Empleado '

    int num+upervisados

    int calcular2acaciones() '...

    .olimor%ismo

  • 7/26/2019 Java - Modulo 1

    85/85

    .olimor%ismo

    ,n mtodo con el mismo nombre* tipo de retorno

    y lista de par+metros puede ser aplicado a objetosde di/erentes clases.

    ,so* trabajar con la clase m+s general) ar+metros polimr/icos

    Colecciones eterogneas

    Empleado e1 = ne$ Empleado()#

    Empleado e* = ne$ 7efe()#

    Empleado e1 = ne$ +ecretaria()#

    e*.num+upervisados = 1"# AA ED

    ((7efe)e*).num+upervisados = 1"#