Java - PowerPoint PPT Presentation

1 / 85
About This Presentation
Title:

Java

Description:

Creado en 1991 por Sun Microsystems (James Gosling) para ... Byte-codes. Win32 JVM. C digo m quina. Win32. Macintosh JVM. UNIX JVM. C digo m quina. Macintosh ... – PowerPoint PPT presentation

Number of Views:60
Avg rating:3.0/5.0
Slides: 86
Provided by: ldcUs
Category:
Tags: cods | java

less

Transcript and Presenter's Notes

Title: Java


1
Java Módulo 1
  • Introducción y Fundamentos del lenguaje de
    programación Java

2
Contenido
  • Introducción
  • Características del lenguaje.
  • Variables y Tipos de Datos.
  • Estructuras de Control
  • Ciclos iterativos.
  • Introducción a la POO.

3
Introducción
4
Introducción (I)?
  • Creado en 1991 por Sun Microsystems (James
    Gosling) para dispositivos electrónicos
    calculadoras, microondas y la televisión
    interactiva.
  • Escasa potencia de cálculo
  • Poca memoria
  • Distintas CPUs
  • Consecuencias
  • Lenguaje sencillo que genera código reducido
  • Lenguaje que independiente de la plataforma

5
Introducción (II)?
  • Lenguaje de progamación para computadores/internet
    desde 1995.
  • Sun describe Java como un lenguaje simple,
    orientado a Objetos, distribuido, interpretado,
    robusto, seguro, de arquitectura neutral,
    portable, de alto rendimiento, multihilos, y
    dinámico
  • Ejecución de Java como
  • Aplicación independiente
  • Applet (dentro del navegador al cargar la página
    Web)?
  • Servlet (ejecutado en servidor de internet, sin
    interfaz gráfica).

6
Introducción (III)?
  • JDK (Java Development Kit) programas y librerias
    para desarrollar, compilar y ejecutar programas
    Java.
  • Versiones
  • Java 1.0 212 clases organizadas en 8 paquetes
  • Java 1.1 504 clases, 23 paquetes. Mejoras a la
    JVM.
  • Java 1.2 (Java 2) 1520 clases, 59 paquetes.
    Plataforma muy madura . Apoyado por grandes
    empresas IBM, Oracle, Inprise, Hewtlett-Packard,
    Netscape, Sun.
  • Java 1.3 (Java Enterprise Edition). Java
    comienza a ser una plataforma de desarrollo
    profesional
  • ??? Java MicroEdition

7
Características de Java
8
Características de Java I
  • Lenguaje de fácil uso orientado a objetos
  • Lenguaje compilado e interpretado
  • Facilita un entorno interpretado
  • Velocidad de desarrollo (no de ejecución)?
  • Portabilidad del código
  • Ejecución multitareas
  • Cambios dinámicos en tiempo de ejecución
  • Seguridad del código.

9
La máquina Virtual Java - JVM (I)?
  • Es una máquina hipotética que emula por software
    una máquina real. Es definida por una
    especificación.
  • Conjunto de instrucciones de máquina
  • (C.O.)
    Operandos
  • Pila
  • Memoria
  • ...
  • El compilador genera bytecodes (instrucciones de
    código maquina para la JVM)?
  • El interprete tarduce y ejecuta los bytecodes
    para cada máquina específica.

10
(No Transcript)
11
Compilador e intérprete de Java (I)?
  • El compilador analiza la sintaxis del código
    fuente (con extensión .java). Si no hay errores,
    genera bytecodes
  • gt javac ltNombregt.java
  • El intérprete es la Máquina Virtual de Java que
    ejecuta los bytecodes (.class) creados por el
    compilador.
  • gt java ltNombregt (sin extensión)?
  • gt java ltNombregt arg1 arg2

12
Compilador e intérprete de Java (II)?
Codigo fuente
compilar
javac HelloWorld.java
HelloWorld.java
java HelloWorld
HelloWorld.class
ejcutar
bytecode
13
Garbage Collection
  • La memoria reservada dinámicamente que No se vaya
    a usar más debe ser liberada.
  • En otros lenguajes, esta liberación debe
    realizarla el propio programador.
  • La JVM dispone de un proceso que rastrea las
    operaciones de memoria el Garbage Collector.
  • Verifica y libera la memoria que no se necesita
  • Se ejecuta automáticamente
  • Puede variar según la implementación de la JVM.

14
Seguridad del Código
  • La JVM verifica los bytecodes asegurando que
  • El código se ajusta a las especificaciones de la
    JVM.
  • No hay violaciones de acceso restringido.
  • Los tipos de los parámetros son correctos para
    todo el código.
  • No existen conversiones ilegales de datos (ej. de
    enteros a apuntadores).

15
Formato de los archivos fuente
  • Declaración de paquete (opcional)?
  • package ltnombrePaquetegt
  • Instrucciones de importación(opcional)?
  • import ltnombrePaquetesgt
  • Declaración de clase o interfaz
  • ltmodgt class ltNombreClasegt .....

16
Un programa Simple
  • public class ProgramaSimple
  • public static void main(String args)
  • System.out.println("Este es un programa
    simple")
  • System.exit(0)

17
Elementos del Lenguaje
18
Elementos del lenguaje
  • Caracteristicas del lenguaje
  • Declaraciones
  • Tipos de Datos
  • Operadores
  • Estructuras de control
  • Clases y Objetos
  • Paquetes

19
Caracteristicas del lenguaje
  • Sensible a mayúsculas/misnúsculas
  • Comentarios
  • Lenguaje de formato libre
  • Identificadores
  • Palabras reservadas
  • Variables y constantes
  • Convenciones de nomenclatura
  • Tiene reglas sobre los tipos de datos

20
Sensible a mayúsculas/minúsculas
  • Se distingue entre mayúsculas y minúsculas.
  • Los identificadores Papa, papa y PAPA son
    diferentes.
  • Todas las palabras reservadas del lenguaje van en
    minúsculas.

21
Comentarios
  • // comentario
  • Los caracteres desde // hasta el final de la
    línea son ignorados.
  • / comentario /
  • Los caracteres entre / y / son ignorados
  • / comentario /
  • Los caracteres entre / y /son ignorados y se
    incluyen en la generación autómatica de la
    documentación.

22
Lenguaje de formato libre
  • La disposición de los elementos dentro del código
    es libre
  • Instrucciones línea simple de código terminada
    en
  • Bloque de código Conjunto de sentencias
    agrupadas entre llaves.
  • X x 1
  • Y y 1
  • Java permite espacios en blanco entre elementos
    del código
  • X1 y delta
  • X2 (y-1) delta

23
Palabras Reservadas
  • Palabras con un significado especial para el
    compilador
  • Ejemplos
  • Nombres de tipos básicos boolean, char, double,
    int,
  • Indicadores de controls do, if, else, for,
    while,
  • Class, interface, extends, implements
  • package, import
  • this, super
  • Modificadores de acceso public, private,
    protected
  • Constantes true, false, null
  • Etc

24
Variables y Constantes
  • Variable Zona de memoria cuyos valores van a
    cambiar durante la ejecucuión.
  • Declaración
  • lttipogt ltvariablegt
  • lttipogt ltvar1gt, ltvar2gt, ..., ltvarngt
  • lttipogt ltvar1gt ltvalorgt

25
Variables y Constantes
  • Ejemplos de declaración de variables
  • int x,y,z
  • int x 9
  • boolean terminar false
  • Cliente c1 new Cliente()
  • Constantes Zona de memoria cuyos valores no
    cambian
  • Declaración
  • final lttipogt ltvariablegt ltvalorgt
  • Ejemplo final double PI 3.14159

26
Asignaciones
  • Se utiliza el operador de asignación
  • lttipogt ltvariablegt ltvalorgt
  • lttipogt ltvariablegtltotras instruccionesgt...ltvaria
    blegt ltvalorgt
  • La parte izquierda siempre debe ser una variable
  • La parte derecha puede ser un literal, una
    variable, una expresión, una función o una
    combinación de todos.
  • int x 4 //Declaracion con asignación
  • x 9 //Se asume que x está definida

27
Tipos de Datos y Operadores
28
Tipos de Datos
  • Java define dos tipos de datos
  • Tipos primitivos
  • Tipos referencia
  • Los tipos primitivos son ocho agrupados en cuatro
    categorías
  • Lógico boolean
  • Texto char
  • Enterobyte, short, int, long
  • Real float, double
  • Los tipos referencia son apuntadores a objetos.

29
Tipos de Datos
No es un int
  • Tipos primitivos
  • boolean true o false
  • char unicode! (16 bits)?
  • byte entero de 8 bits con signo.
  • short entero de 16 bits con signo.
  • int entero de 32 bits con signo.
  • long entero de 64 bits con signo.
  • float,double IEEE 754 floating point

30
Tipos de datos Referencia
  • Un tipo referencia guarda un apuntador a la
    dirección donde se ubica el objeto (32 bits).
  • Sólo puede almacenar objetos de su propio tipo.
  • Ejemplo
  • Cuadrado cuad1, cuad2
  • Circulo circ1
  • cuad1 new Cuadrado()
  • circ1 cuad1 // Error de compliación
  • cuad2 cuad1 // Ok
  • Todas las clases son de tipo referencia.
  • El valor que toma por defecto una variable de
    tipo referencia es null.

31
Cadenas de Caracteres
  • La clase String permite manejar cadenas de
    caracteres.
  • El literal string debe ir entre comillas dobles
    .
  • Se puede crear una cadena de caracteres de dos
    formas
  • String nombre new String(Pepe)
  • String nombre Pepe
  • Para concatenar dos cadenas se usa el operador .
  • No se guarda el carácter fin de cadena.

32
Conversiones de tipos
  • La conversión de tipos (casting) debe realizarse
    entre tipos de la misma naturaleza numéricos o
    referencia.
  • Al convertir un tipo a un tamaño más pequeño se
    puede perder la información del los bits de mayor
    peso.
  • No hay conversión automatica con el tipo boolean!
  • La sintaxis es (lttipogt) ltexpresiongt
  • Ejemplo int i (int) 1.345

33
Operadores (I)?
  • Unarios . -
  • Aritméticos , -, , /, (resto de la
    división).
  • De Asignación , , -, ,
  • ltvargt ltexpgt ó ltvargt ltvargt ltexpgt
  • Operadores incrementales , --
  • Precediendo a la variable ltvargt, --ltvargt
  • siguiendo la variable ltvargt, ltvargt--
  • elacionales . !, lt, gt, lt, gt,

34
Operadores (II)?
  • Operadores relacionales (igual). !
    (distinto), lt, gt, lt, gt,
  • Operadores booleanos (AND), (OR), ! (NOT),
    (AND), (OR).
  • y realizan evaluación perezosa
  • y siempre evalúan los dos operadores
  • El operador instanceof ltobjetogt instanceof
    ltclasegt determina si un objeto pertenece a una
    clase.

35
Operadores (III)?
  • Operador condicional ?
  • ltexpBooleanagt ? ltvalor1gt ltvalor2gt
  • permite bifurcaciones condicionales sencillas.
  • Operadores a nivel de Bits , , , , ltlt, gtgt,
    gtgtgt
  • op1 gtgt n, desplaza los bits de op1 (con signo) a
    la derecha n posiciones.
  • op1 gtgtgt n, desplaza los bits de op1 (sin signo)
    a la derecha n posiciones.
  • op1 op2, O exclusivo.
  • op1 , NOT a nivel de bit (complemento).

36
Precedencia de operadores
  • Los operadores binarios se evalúan de izaquierda
    a derecha, excepto los operadores de asignación.
  • Sufijos . ()
  • Unarios -- !
  • Creacion y casting new (tipo)exp
  • Multiplicativos /
  • Aditivos -
  • Desplazamientos ltlt gtgt gtgtgt
  • Relacionales lt gt lt gt !
  • Bits
  • Lógicos
  • Condicional ?
  • Asignación op ( / - etc.)?

37
Estructuras de control
38
Estructuras de Control
  • Las estructuras de control del flujo de ejecución
    permiten tomar decisiones y realizar un bloque de
    instrucciones repetidas veces.
  • Hay 2 tipos principales
  • Condicionales if , switch
  • Lazos for, while, do while
  • Otras instrucciones que permiten interrumpir el
    flujo normal de ejecución son break y continue.

39
La instrucción if
  • Ejecuta un conjunto de instrucciones en función
    de la expresión de comparación (booleana)?
  • if (ltexprBooleanagt) ltinstruccion1gtelse
    ltinstrucción2gt
  • if ( exprBooleana ) ltbloque1gtelse ltbloque2gt
  • Ejemplo if (agtb) x a else x b
  • El else es opcional if ( xi gt max ) max
    xi

40
La instrucción switch
  • Comparación de igualdad múltiple con la misma
    variable.
  • switch(ltvariablegt) case literal1ltcjtoInstruc
    c1gt
  • break
  • case literal2ltcjtoInstrucc2gt
  • break
  • case literalnltcjtoInstruccngt
  • break
  • default ltcjtoInstruccgt

41
Ejemplo switch
  • switch(opcion) case 1AbrirArchivo()
  • break
  • case 2ImprimirArchivo()
  • break
  • case 3ImprimirDatos()
  • break
  • case 4CerrarArchivo()
  • break
  • case 5
  • default terminarPrograma()

42
El lazo for
  • Permite la ejecución repetida de un grupo de
    instrucciones con mayor control
  • for ( ltinicializacióngt ltexpBooleanagt
    ltactualizacióngt )
  • ltgrupo de instruccionesgt
  • ltinicializacióngt, asignación de valores iniciales
    de las variables que intervienen en la expresión
  • ltexpBooleanagt, condición boolena
  • ltactualizacióngt, asignación de un nuevo valor de
    las variables de ltinicializacióngt

43
El lazo While
  • El grupo de instrucciones se ejecuta mientras se
    cumpla la expresión booleana.
  • while ( expBooleana )
  • ltgrupoInstruccionesgt

44
Equivalencia for-while
  • for ( ltinicializacióngt ltexpBooleanagt
    ltactualizacióngt )
  • ltgrupo de instruccionesgt
  • Equivale a
  • ltinicializacióngt
  • while ( expBooleana )
  • ltgrupoInstruccionesgt
  • ltactualizacióngt

45
Ejemplo
  • for( k0 kltn k ) ltsgt
  • K0
  • while ( kltn )
  • ltsgt
  • k
  • Realizan el las instrucciones en la secuencia de
    instrucciones s, n veces.

46
El lazo Do-While
  • El conjunto de instrucciones se ejecuta mientras
    se cumpla la expresión booleana
  • do
  • ltgrupoInstruccionesgt
  • while ( expBooleana )?
  • El conjunto de instrucciones se ejecuta al menos
    1 vez.

47
Las instrucciones break y continue.
  • La instrucción break causa la terminación
    inmediata de un lazo o instrucción switch (sin
    ejecutar el resto de las instrucciones).
  • Válido para for, while, do while y switch
  • La sentencia continue causa la terminación
    inmediata de una iteración de un ciclo.
  • Válido para for, while y do while

48
Programación Orientada a Objetos
49
Paradigmas de programación
  • Paradigma estructurado o procedural Los
    programas se dividen en procedimientos
    independientes con acceso total a los datos
    comunes.
  • Algortimos Estructuras de Datos Programas
  • Paradigma orientado a objetos Los datos se
    consideran la parte más importante del programa.
    Los objetos modelan las características de los
    problemas del mundo real, su comportamiento ante
    estas caracteristicas y su forma de interactuar
    con otros elementos
  • Objetos mensajes Programas

50
Ejemplo Tomarse un café en la panadería
  • Procedural
  • El cliente entra el la panadería
  • El cliente pasa detrás de la barra
  • El cliente prepara la cafetera
  • El cliente se sirve el café
  • El cliente se bebe el café.
  • OO
  • El cliente entra en la panadería
  • El cliente pide un café al cafetero
  • El cafetero prepara el café.
  • El cafetero sirve el café al cliente.
  • El cliente se bebe el café.

51
Conceptos de la Orientación a Objetos
  • Clases Patrones que indican como construir
    objetos
  • Objetos Instancias de las clases en tiempo de
    ejecución.
  • Miembros de la clase
  • Atributos Características o propiedades de los
    objetos (o clases). Pueden ser variables de tipos
    simples o referencias a otros objetos
  • Métodos Comportamientos de los objetos. Son
    funciones que operan sobre los atributos de los
    objetos.

52
Características de la OO
  • Cada objeto tiene características reconocibles.
    Ejemplo un empleado tiene Nombre, CI, sueldo,
  • Cada objeto es único. Ejemplo el empleado1 es
    Juan Pérez, con CI 1.456.786 gana 890.000 Bs.
  • Los objetos almacenan información (sus
    características)?
  • Los objetos realizan operaciones sobre sus
    atributos.

53
Definición de Clase
  • Sintaxis
  • Class ltNombreClasegt
  • // Declaracion de atributos
  • lttipogt ltvargt
  • // Declaración de métodos
  • lttipogt ltnombreMetodogt ( ltargumentosgt )?
  • El nombre del archivo debe coincidir con el de la
    clase definida en él.
  • Se recomienda definir una clase por cada archivo
    Java.

54
Ejemplo de Clase
  • public class Circulo
  • // Atributos
  • double radio
  • String color
  • // Metodos
  • void asigRadio( )
  • double area( )

55
Creación de un objeto
  • Se usa la palabra reservada new
  • ltrefObjetogt new ltNombreClasegt()
  • Ejemplo
  • Circulo miCirculo
  • miCirculo new Circulo()

56
Acceso a los miembros de un Objeto
  • A través del operador punto (.) se puede acceder
    tanto a los atributos como a los métodos.
  • ltrefObjetogt.ltatributogt
  • ltrefObjetogt.ltmetodogt()
  • Ejemplo
  • Circulo miCirculo new Circulo()
  • miCirculo.radio 10
  • miCirculo.color azul
  • miCirculo.area()

57
Métodos
  • Son el equivalente a los procedimientos de los
    lenguajes no OO. Un método es un bloque de código
    definido dentro de una clase que proporciona un
    mecanismo para realizar una acción.
  • Un método tiene acceso a todos los atributos de
    su clase.
  • Un método puede invocar otros métodos
  • En Java no se puede definir un método dentro de
    otro.
  • La ejecución de todos los programas se inicia en
    el método main.

58
Definición de métodos (I)?
  • Sintaxis para la definición de un método
  • lttipoRetornogt ltnombreMetodogt(lt parametros gt...)
  • ltinstruccionesgt...
  • La declaración de un método tiene cuatro partes
    básicas
  • El tipo del valor de retorno del método (tipo).
    Si no devuelve ningun valor debe ser void.
  • El nombre del método (nombreMetodo)?
  • Una lista de parámetros (parametros). Casa
    parámetro tiene la forma lttipogt ltargumentogt. Se
    separan con comas.
  • El cuerpo del método (instrucciones).

59
Definición de métodos (II)?
  • ltinstruccionesgt, Conjunto de instrucciones que
    implementan la tarea que debe realizar el método.
  • Si devuelve un valor debe finalizar con la
    sentencia
  • return
  • return ltvalorgt
  • ltvalorgt Debe ser del mismo lttipoRetgt con que se
    ha declarado el método.
  • El código se ejecuta hasta alcanzar la
    instrucción return (si devuelve un valor) o hasta
    el final del método.
  • Se pueden declarar variables locales si son
    necesarias.

60
Ejemplos de Métodos
public class Circulo // Atributos double
radio String color // Metodos void
asigRadio( ) double area( )
  • double obtRadio( )
  • return radio
  • void asigRadio(int nuevoRadio)
  • radio nuevoRadio
  • public double Area( )
  • return radioradioMath.PI

61
Parametros
  • Las variables en la lista de parámetros se
    separan con comas.
  • Los parametros de la lista en la especificación
    del método, son llamados parámetros formales.
  • Cuando un método es llamado, estos parámetros
    formales son reemplazados por los parámetros
    actuales.
  • Los parámetros actuales deben ser equivalentes
    en tipo, orden y número a los parametros formales.

62
(No Transcript)
63
Paso de parametros por valor
  • Cuando es invocado un método con un parámetro de
    tipo primitivo, tal como int, el valor del
    parámetro actual es pasado al método.
  • El valor actual de la variable fuera del método
    no es afectado, independientemente de los cambios
    hechos al parámetro formal dentro del método.

64
Parametros por valor - Ejemplo
  • class PruebaPasoPorValor
  • public static void main(String args)
  • int times 3
  • System.out.println(Antes del llamado, la
    variable times estimes)
  • nPrintln(Bienvenido a Java!,times)
  • System.out.println(Despues del llamado, la
    variable times es times)
  • static void nPrintln(String mensaje, int
    n)
  • while (n gt 0)
  • System.out.println(n n)
  • System.out.println(mensaje)
  • n--

65
Paso de parametros por referencia
  • Se pueden pasar objetos a métodos como parámetros
    actuales
  • Cuando se pasa un objeto al método la referencia
    del objeto es pasado al parámetro formal
  • Cualquier cambio al objeto local que ocurra
    dentro del método afectará al objeto original que
    fue pasado como argumento.

66
Parametros por referencia -Ejemplo
  • class PruebaPasoPorReferencia
  • public static void main(String args)
  • Circulo miCirculo
  • miCirculo new Circulo(5.0, "blanco")
  • imprimeCirculo(miCirculo)
  • colorCirculo(miCirculo, "negro")
  • imprimeCirculo(miCirculo)
  • public static void colorCirculo( Circulo c,
    String color)
  • c.color color
  • public static void imprimeCirculo(Circulo c)
  • System.out.println("El área del circulo de
    radio "
  • c.getRadio( ) " es " c.Area())
  • System.out.println("El color del Circulo es "
    c.color)

67
Parametros por referencia Ejemplo (cont.)?
  • class Circulo
  • private double radio
  • String color
  • public Circulo(double r, String c)
  • radio r
  • color c
  • public double getRadio( )
  • return radio
  • public double Area( )
  • return radioradioMath.PI

68
Alcance de las variables (I)?
  • En java se dispone de tres tipos de variables
  • Las variables miembro pertenecientes a una clase.
  • Argumentos de un método de la clase.
  • Variables locales de un método de la clase.
  • Los argumentos trabajan como variables locales.
  • class Ejemplo
  • int x // variable miembro
  • metodo (int y) // argumento
  • int z // variable local
  • x y z

69
Alcance de las variables (II)?
  • Las variables miembros son visibles desde
    cualquier parte de la clase.
  • Los argumentos y variables locales solo son
    visibles dentro del método al que pertenece,
    dejan de existir al finalizar el método.
  • Dentro de un método, si coincide el identificador
    de un argumento o variable local con el de una
    variable miembro, sólo se accede a la variable
    del método.

70
Ejemplo
  • class A
  • int x
  • void metodo (int y)
  • int x2
  • y 3x y - x
  • println(y)
  • main
  • int arg 4
  • A obj new A()
  • obj.x 1
  • obj.metodo(arg)
  • println(arg)
  • println(obj.x)

71
La referencia this
  • Se emplea para referirse al objeto actual dentro
    de un método.
  • Con this se hace accesible una variable miembro
    cuyo identificador coincide con una variable
    local.

72
Constructores (I)?
  • Un constructor es un tipo especial de método que
    permite construir un objeto de una clase.
  • Ejemplo
  • class Circulo
  • public Circulo()
  • public Circulo(double r)
  • public Circulo(double r, String c)
  • Se utilizan junto con la palabra reservada new
  • Circulo c1 new Circulo(27)

73
Constructores (II)?
  • Los constructores se pueden sobrecargar y son
    opcionales
  • Si no se define ningún constructor, Java
    proporciona uno por defecto.
  • Si se define un constructor con argumentos se
    pierde el constructor por defecto
  • Normalmente en el constructor se inicializan las
    variables miembro.

74
Destructores
  • En Java no hay destructores como en C
  • El garbage collector es el encargado de liberar
    la memoria.
  • Cuando se detecta objetos no referenciados
  • Al final de un bloque que haya utilizado objetos.

75
Características de la POO
76
Más conceptos de OO
  • Encapsulamiento Permite la protección de ciertas
    partes de un objeto del acceso desde otros
    objetos externos
  • Herencia Jerarquía de clases basada en la
    agrupación de atributos o métodos comunes
  • Polimorfismo Tratamiento generalizado a todas
    las clases pertenecientes a una jerarquía de
    herencia.

77
Encapsulamiento
  • El encapsulamiento consiste en la agrupación de
    datos y su tratamiento en una misma estructura.
  • Permite la proteccdión de la manipulación externa
    de algunas partes de los objetos.
  • Un objeto suele tener datos y métodos privados,
    de acceso restringido.
  • Fuerza al usuario a usar una interfaz para
    acceder a los datos.
  • Hace que el código sea más fácil de mantener

78
Modificadores para restringir el acceso (I)?
  • La definición de los miembros de una clase se
    puede ampliar añadiendo modificadores al
    principio.
  • modificadorlttipogt ltidentificadorgt
  • modificadorlttipogt ltnombregt(ltargsgt)?
  • ...
  • Los modificadores permiten acceder a los datos o
    métodos de manera restringida

79
Modificadores para restringir el acceso (II)?
  • public. El miembro de la clase es accesible
    desde cualquier parte del código.
  • private. El miembro de la clase sólo es
    accesible desde código perteneciente a la propia
    clase.
  • protected(o friendly). Sólo las subclases de la
    clase y nadie más pueden acceder a las variables
    y métodos.

80
Herencia (I)?
  • Jerarquia de clases basada en agrupar atributos
    y/o métodos comunes
  • Las clases descendientes se llaman subclases.
  • Las clases ascendientes se llaman superclases.
  • Las subclases heredan características y métodos
    de las superclases (excepto los constructores)?

81
Herencia (II)?
  • Supongamos que tenemos la clase Jefe y la clase
    Secretaria definidas como
  • Jefe ltintgtltnumEmpleadogt, ltStringgtltnombregt,
    ltintgtltnumDepartgt, ltintgtltnumSupervisadosgt
  • Secretaria ltintgtltnumEmpleadogt, ltStringgtltnombregt,
    ltintgtltnumDepartgt, ltJefegtlttrabajaParagt
  • Las partes comunes se pueden agrupar en una misma
    clase, manteniendo las otras dos con las partes
    no comunes y heredando de esta nueva clase con la
    palabra reservada extends.

82
Ejemplo herencia
  • public class Articulo // clase padre
  • public float precio0
  • ...
  • public void setPrecio(float elPrecio)
  • precio elPrecio
  • ...
  • public float getPrecio()
  • return precio
  • //los métodos y atributos de Articulo son
    heredados a Pelicula
  • public class Pelicula extends Articulo // clase
    hijo
  • public void setDescripcion(String descrip)
  • descripcion descrip

83
Relación de Contenido
  • Una clase puede tener referencias a objetos de
    otras clases.
  • Se diferencia de la herencia en que es necesario
    instanciarlos por separado.
  • Responde afirmativamente a la pregunta
    ltcontenedorgt tiene un ltcontenidogt?

84
Métodos virtuales
  • Una subclase puede modificar los métodos que ha
    heredado de las superclase, manteniendo los
    mismos nombres, tipos de retorno y listas de
    argumentos.
  • class Empleado
  • int calcularVacaciones() ...
  • class Jefe extends Empleado
  • int numSupervisados,
  • int calcularVacaciones() ...

85
Polimorfismo
  • Un método con el mismo nombre, tipo de retorno y
    lista de parámetros puede ser aplicado a objetos
    de diferentes clases.
  • Uso, trabajar con la clase más general
  • Parámetros polimórficos
  • Colecciones heterogéneas
  • Empleado e1 new Empleado()
  • Empleado e2 new Jefe()
  • Empleado e1 new Secretaria()
  • e2.numSupervisados 15 // ERROR
  • ((Jefe)e2).numSupervisados 15
Write a Comment
User Comments (0)
About PowerShow.com