Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar...
Transcript of Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar...
![Page 1: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/1.jpg)
1
Arquitectura y Lenguaje Java
![Page 2: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/2.jpg)
2
Introducción
■ El lenguaje de programación Java así como su arquitectura se diseñaron para resolver problemas que se presentan en la programación moderna.
■ Se inició como parte de un proyecto cuyo objetivo fue el de desarrollar software avanzado para dispositivos electrónicos.
![Page 3: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/3.jpg)
3
Introducción
■ Se creó un equipo de trabajo en Sun para tratar de resolver este problema. Inicialmente se pretendió utilizar C++ pero se identificaron numerosos problemas y se buscó diseñar un nuevo lenguaje.
■ Como resultado, en 1990, el nuevo lenguaje recibió el nombre de Oak y era pequeño, confiable, y de arquitectura independiente.
![Page 4: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/4.jpg)
4
Introducción
■ En 1993, mientras el equipo continuaba trabajando, apareció la Red Mundial (www) en Internet y tuvo una gran aceptación.
■ Los desarrolladores de Java pensaron que un lenguaje de arquitectura neutral sería ideal para programar en internet porque el programa podría ejecutarse en todos los tipos de computadoras conectadas a la red.
![Page 5: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/5.jpg)
5
Introducción
■ Java es un lenguaje simple, orientado a objetos, distribuido, interpretado, robusto, seguro, de arquitectura neutral, portable, de alto rendimiento, multi hilos, y dinámico.
![Page 6: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/6.jpg)
6
Simple
■ Aprenderse fácilmente y que fuera familiar (C y C++)
■ Omite la sobrecarga de operadores (aunque sí existe la sobrecarga de métodos) y la herencia múltiple.
■ Las construcciones como struct no son válidas.
![Page 7: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/7.jpg)
7
Simple
■ Descarta la instrucción goto, sin embargo, provee instrucciones etiquetadas de break y continue.
■ Incorpora la recolección de basura para manejo automático de memoria.
■ Elimina los apuntadores. ■ Maneja automáticamente la referenciación y
dereferenciación de objetos.
![Page 8: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/8.jpg)
8
Orientado a Objetos■ Permite la definición clara de interfaces y la
reusabilidad de código; así como las ventajas mencionadas previamente en este curso sobre la programación orientada a objetos.
■ Java cuenta con un conjunto extenso de clases guardadas en paquetes.
java.awt, java.io, java.net, java.lang.
![Page 9: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/9.jpg)
9
Distribuido
■ Las aplicaciones de Java pueden acceder a objetos a través de la red por medio de URL's con la misma facilidad que si accediéramos a objetos en nuestro sistema local de archivos.
![Page 10: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/10.jpg)
10
Interpretado
■ El compilador de Java genera byte-codes, en lugar de código nativo de la máquina.
■ Para ejecutar un programa en Java se utiliza el intérprete para ejecutar los byte-codescompilados, y por ello java es un lenguaje interpretado.
![Page 11: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/11.jpg)
11
Interpretado■ Los byte-codes de Java proveen un archivo objeto
de arquitectura neutral que permite que los programas puedan transportarse a múltiples plataformas.
■ Un programa en Java puede ejecutarse en cualquier sistema que cuente con el intérprete de Java y el sistema de run-time.
Máquina Virtual de Java
![Page 12: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/12.jpg)
12
Anexo A
❍ Figura 1
![Page 13: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/13.jpg)
13
Robusto
■ Java pretende que se escriban programas confiables.
■ Es un lenguaje fuertemente tipificado que permite, a tiempo de compilación, verificar problemas potenciales de asignación de tipos.
![Page 14: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/14.jpg)
14
Robusto■ La verificación de tipos es más fuerte que la de
C++ ya que no permite declaraciones implícitas de métodos.
■ Una de las mejoras de confiabilidad de Java es su modelo de memoria. Java no permite apuntadores, lo que elimina la posibilidad de sobreescribir en la memoria y corromper información valiosa.
![Page 15: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/15.jpg)
15
Robusto
■ La recolección automática de memoria evita la fragmentación de la misma por la petición y borrado dinámico.
■ El intérprete de Java realiza verificaciones a tiempo de ejecución para determinar que los accesos a arreglos y cadenas de caracteres se encuentren dentro de los límites.
![Page 16: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/16.jpg)
16
Robusto
■ Otra característica de Java es el manejo de excepciones. Esto simplifica la tarea de manejo de errores y recuperación de los mismos.
![Page 17: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/17.jpg)
17
Seguro
■ La seguridad es una preocupación primordial ya que se pretende que Java se utilice en ambientes de red.
■ Mecanismos de seguridad que impidan que algún programa trate de crear un virus o invadir el sistema de archivos.
![Page 18: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/18.jpg)
18
Seguro
■ El modelo de alojamiento de memoria de Java es una de las principales defensas contra código corrupto. El sistema de run-time realiza la verificación de los byte-codes para asegurarse de que el código que transportamos por la red no viola la integridad del medio en el que nos encontramos.
![Page 19: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/19.jpg)
19
Seguro
■ Java maneja la tecnología de encriptaciónpara verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado y no ha sido modificado.
■ Java conoce y puede combatir la mayoría de las técnicas que se han utilizado para desarrollar software corrupto.
![Page 20: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/20.jpg)
20
Arquitectura Neutral
■ Los programas de Java se compilan en un formato de arquitectura neutral conocido como byte-codes.
■ La principal ventaja de esto es que Java puede ejecutarse en cualquier sistema mientras que se implemente la Máquina Virtual de Java.
![Page 21: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/21.jpg)
21
Portable■ Java garantiza que no existen aspectos de
dependencia de implementación en la especificación del lenguaje.
■ El ambiente de Java es portable hacia nuevas plataformas de hardware y sistemas operativos. El compilador de Java está escrito en Java mientras que el sistema de run-time está escrito en ANSI C.
![Page 22: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/22.jpg)
22
Alto Rendimiento
■ Java es un lenguaje interpretado y es por ello que nunca será tan rápido como un lenguaje compilado, como C. De hecho Java es, en promedio, 20 veces más lento que C.
![Page 23: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/23.jpg)
23
Alto Rendimiento
■ Los diseñadores de Java están trabajando en compiladores just-in-time que pueden traducir los byte-codes de Java en código de máquina para un CPU específico a tiempo de ejecución.
![Page 24: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/24.jpg)
24
Multihilos
■ En una aplicación como un browser de Web, es fácil imaginar múltiples tareas realizándose al mismo tiempo.
■ Java es un lenguaje multihilos que puede contar con múltiples hilos de ejecución para manejar diferentes tareas.
![Page 25: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/25.jpg)
25
Multihilos
■ Java hace de la programación multihilos una tarea más sencilla que en C y C++, al proporcionar utilerías que permiten iniciar, ejecutar, detener y verificar hilos. Además, cuenta con rutinas de sincronización.
![Page 26: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/26.jpg)
26
Dinámico
■ Java se diseñó para adaptarse a un ambiente cambiante. Las definiciones de la clase run-time de Java hace posible que dinámicamente se liguen clases en un sistema en ejecución.
![Page 27: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/27.jpg)
27
Características del lenguaje
■ Estructura y ambiente de un programa
➀ Definición de una o más clases (.class).➁ Alguna de estas clases debe contar con un método
principal main().➂ Para ejecutar un programa en Java se debe utilizar
el intérprete, java.➃ Un applet de Java no es una aplicación (Browser
de Web, appletviewer).
![Page 28: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/28.jpg)
28
Características del lenguaje// Programa 1
public class echo {public static void main (String argv[]) {for (int i=0; i < argv.length; i++)
System.out.print (argv[i] + “ “);System.out.print (“\n”);System.exit(0); }
}
![Page 29: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/29.jpg)
29
Características del lenguaje
■ Valor de Salida del programa
Cabe notar que el método main() debe de regresar un valor void. Por ello, no es posible regresar un valor de un programa de Java con una instrucción return.
![Page 30: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/30.jpg)
30
Características del lenguaje
■ Ambiente
El API (application programming interface) de Java no permite que sean leídas variables de ambiente del sistema operativo debido a que son dependientes de la plataforma. Un programa de Java puede buscar el valor de una determinada propiedad con el método System.getProperty().
![Page 31: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/31.jpg)
31
Características del lenguaje
■ Paquetes, Clases y Campos
Java, como un lenguaje diseñado para considerar lecturas de módulos dinámicamente dentro de internet, tiene cuidado para evitar conflictos de espacio. Por ejemplo, no existen las variables globales, ni las funciones globales.
![Page 32: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/32.jpg)
32
Variables globales y paquetes
■ Variables globales. En Java, toda variable y método se declaran dentro de una clase y forman parte de la misma. También, cada clase es parte de un paquete.
■ Paquetes, clases y estructura de directorio. Java cuenta con una organización jerárquica dividida en niveles.
![Page 33: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/33.jpg)
33
Paquetes
■ Para diseñar un paquete:package nombre_del_paquete;
Por ejemplo:package CTI.cem.itesm.graphics;
![Page 34: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/34.jpg)
34
Paquetes■ En Java, cada clase compilada se guarda en un
archivo separado. El nombre de este archivo debe ser el mismo que la clase. Este archivo de clase debe guardarse en un directorio que tiene los mismos componentes que el nombre del paquete.
angeles.curso.java.HolaMundoangeles\curso\java\HolaMundo.class.
![Page 35: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/35.jpg)
35
Paquetes
■ Un archivo de código Java debe tener la extensión .java. Este consiste de una o más definiciones de clases. Si se define más de una clase en un archivo .java, sólo una de ellas debe de declararse public (disponible fuera del paquete), y debe tener el mismo nombre que el archivo principal.
![Page 36: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/36.jpg)
36
Anexo B
❍ Figura 2
![Page 37: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/37.jpg)
37
import
■ La instrucción import hace que las clases de Java sean accesibles a la clase actual utilizando un nombre abreviado.
import paquete;import paquete.class;import paquete.*;
![Page 38: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/38.jpg)
38
Comentarios
■ Java cuenta con tres tipos de comentarios:
/* *////** */
![Page 39: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/39.jpg)
39
Constantes
■ Cualquier variable declarada como final es una constante en Java. Su valor debe de especificarse al declararse y no puede cambiar.
public static final double PI = 3.14159;
![Page 40: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/40.jpg)
40
Anexo B
❍ Figura 3
![Page 41: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/41.jpg)
41
Tipos de datos referenciados
■ Los tipos de datos no primitivos en Java son objetos y arreglos (tipos referenciados)
■ Los tipos primitivos se manejan por valor. ■ En C, es posible manejar un valor por
referencia tomando su dirección y dereferenciar una dirección utilizando los operadores * y ->. Estos operadores no existen en Java.
![Page 42: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/42.jpg)
42
Tipos de datos referenciados■ Debido a que los objetos se utilizan por referencia,
dos variables diferentes pueden hacer referencia al mismo objeto:
Button a,b;p = new Button();q = p;p.setLabel("ok");String s = q.getLabel();
![Page 43: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/43.jpg)
43
Tipos de datos referenciados
■ Esto no ocurre con los tipos primitivos:
int i = 3;j = i;i = 2;
![Page 44: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/44.jpg)
44
Copia de objetos■ Debido a que los tipos referenciados no se
utilizan por valor, asignar un objeto a otro en Java no copia el valor del objeto. Simplemente asigna una referencia al objeto.
Button a = new Button ("Ok");Button b = new Button ("Cancelar");a = b;
![Page 45: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/45.jpg)
45
Copia de objetos
■ Para copiar los datos de un objeto a otro se puede utilizar el método clone().
Vector b = new Vector;c = b.clone();
![Page 46: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/46.jpg)
46
Apuntadores
■ Java no maneja apuntadores➀ Java maneja en forma automática la referenciación
y dereferenciación de objetos. ➁ No permite hacer un cast de objetos o arreglos, a
enteros o viceversa➂ No permite la aritmética de apuntadores➃ No permite calcular el tamaño, en bytes, de
cualquier tipo primitivo u objeto
![Page 47: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/47.jpg)
47
null
■ El valor de default de todos los tipos de variables referenciadas es null, que indica "ausencia de referencia", es decir, esa variable no hace referencia a ningún objeto o arreglo.
![Page 48: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/48.jpg)
48
Recolección de basura
■ Los objetos en Java se crean con la palabra new. Sin embargo, no existe un delete o free para liberarse de ellos cuando ya no son necesarios.
■ Java cuenta con mecanismos de recolección de basura para detectar automáticamente objetos que ya no son utilizados y liberarlos.
![Page 49: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/49.jpg)
49
Arreglos
■ Son manipulados por referencia■ Se crean dinámicamente con new■ Cuando ya no son referenciados, automáticamente
se eliminan■ Existen dos formas para crear arreglos en Java. La
primera es utilizando new e indicando el tamaño el arreglo.
byte a[ ] = new byte [1024];button botones[ ] = new Button [10];
![Page 50: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/50.jpg)
50
Arreglos
■ Cuando se crea un arreglo, no se generan los objetos que están almacenados en él y es por ello que no existe un constructor que llamar y no existe lista de argumentos.
■ La segunda manera de crear un arreglo es con un inicializador estático:
int tabla [ ] = {1, 2, 3, 4, 5};
![Page 51: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/51.jpg)
51
Arreglos multidimensionales
■ Java puede manejar este tipo de arreglos que son implementados como arreglos de arreglos.
int arreglo[ ] [ ] = new int [12] [8];
![Page 52: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/52.jpg)
52
Cadenas de caracteres
■ En Java, las cadenas de caracteres no son arreglos terminados con caracter null como en C. En cambio, son instancias de la clase java.lang.String.
■ No es necesario indicar la terminación nullya que Java verifica los límites de las cadenas de caracteres automáticamente.
![Page 53: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/53.jpg)
53
Cadenas de caracteres
■ Una de las características principales de los objetos tipo String es que son incambiables. Es decir, no existen métodos para cambiar el contenido de un String.
■ Para poder hacer esto, es necesario definir un objeto StringBuffer a partir del objeto String
![Page 54: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/54.jpg)
54
Cadenas de caracteres
■ Algunos de los métodos, que se encuentran en el java.lang.String:
int i;boolean b;String myString = "HolaMundo";
b = myString.equals("holamundo");
![Page 55: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/55.jpg)
55
Cadenas de caracteresb= myString.equalsIgnoreCase
("holamundo");
i = myString.indexOf( 'l' );
i = myString.lastIndexOf( 'o' );
i = myString.indexOf( "Mu" );
![Page 56: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/56.jpg)
56
Cadenas de caracteres
String subst = myString.substring( i );
subst = subst.concat(subst).concat(subst);
![Page 57: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/57.jpg)
57
Clases
■ Las clases definen la estructura, el comportamiento y los mecanismos para crear instancias de las clases.
■ Las clases son una especialización de las estructuras de C (struct).
■ Las clases en Java contienen métodos y atributos.
![Page 58: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/58.jpg)
58
Ejemplo
![Page 59: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/59.jpg)
59
Clase Alumno en Java
![Page 60: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/60.jpg)
60
Clase Alumno en Java
![Page 61: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/61.jpg)
61
Acceso a los miembros de la clase
■ Los campos y métodos de una clase se pueden acceder desde cualquier parte de la misma.
■ El acceso, por parte de otras clases, es dependiente de los modificadores de acceso: publico, privado, protegido, paquete yprivado protegido
![Page 62: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/62.jpg)
62
Objetos■ Creando objetos. El declarar una variable para
manejar un objeto no crea al objeto en sí; sólo maneja la referencia al objeto. Para crear un objeto hay que utilizar la palabra new, seguida de la clase del objeto (su tipo) y una lista opcional de argumentos entre paréntesis.
java.awt.Button b = new java.awt.Button();
![Page 63: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/63.jpg)
63
Objetos
■ Accediendo a objetos. La forma de acceder a los campos de un objeto es igual que en C cuando se manejan estructuras:
ComplexNumber c = new ComplexNumber();
c.x = 1.0;c.y = -1.414;
![Page 64: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/64.jpg)
64
Objetos
■ Para acceder a los métodos en un objeto es igual que en C++:
ComplexNumber c = new ComplexNumber(1.0,-1.414);
double magnitude = c.magnitude();
![Page 65: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/65.jpg)
65
super y this
■ En Java encontramos dos variables asociadas a cada objeto: super y this.
■ this es una referencia al objeto que el programa está utilizando en ese momento.
■ super es una referencia a la clase padre del objeto this.
![Page 66: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/66.jpg)
66
Aplicaciones y Applets
■ En Java es posible implementar aplicaciones o applets.
■ Las primeras se ejecutan en la línea de comandos como cualquier programa ejecutable y los segundos se ejecutan en un browser de Web.
![Page 67: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/67.jpg)
67
Aplicaciones y Applets
![Page 68: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/68.jpg)
68
Aplicación. Hola Mundo
// Programa 2public class HolaMundo_aplicacion {
public static void main (String args[]) {System.out.println(" Hola Mundo !!!!");}
}
$ javac HolaMundo_aplicacion.java$ java HolaMundo_aplicacion
![Page 69: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/69.jpg)
69
Applets
■ Un applet hereda la clase Applet de Java. No requiere de un método main().
■ Un applet cuenta con cinco métodos principales, todos de tipo public void:
1. init( ) 3.stop( ) 5.paint( )2.start( ) 4.destroy( )
![Page 70: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/70.jpg)
70
Applets
■ Un applet, a diferencia de una aplicación, debe de ejecutarse en un browser de Web. Para ello, es necesario generar un archivo HTML (Hyper Text Markup Language) donde se mandará llamar el applet compilado.
![Page 71: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/71.jpg)
71
Applet. Hola Mundo
// Programa 3
import java.applet.*; import java.awt.*;
public class HolaMundo extends Applet {public void paint(Graphics g) {setBackground(Color.blue);g.drawString("Hola Mundo Java!", 25, 25);}
}
![Page 72: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/72.jpg)
72
HTML. Hola Mundo
<html><applet
codebase="http:// www.tec.mx /java / applets"code = "HolaMundo.class"width = 200 height = 35>
</applet></html>
![Page 73: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/73.jpg)
73
Variables de clase
■ Una variable de clase es aquella que es compartida por todas las instancias de dicha clase.
public static float pi = 2.1416;
■ Existe sólo una copia de esta variable■ Esta variable existe aún cuando no se hayan
creado instancias de la clase.
![Page 74: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/74.jpg)
74
Variables de instancia■ Una variable de instancia de una clase tiene un
rango de alcance de la clase, que se define desde el primer { de la definición de la clase hasta el último } de la misma. Esto significa que todos los métodos de la clase tienen acceso a esa variable.
■ Existe una copia de esta variable en cada instancia de la clase.
![Page 75: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/75.jpg)
75
Ejemplo 1. Notación UML
![Page 76: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/76.jpg)
76
Anexo B
❍ Ejemplo 1
![Page 77: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/77.jpg)
77
Anexo A
❍ Programa 4❍ Programa 5❍ Programa 6❍ Programa Addition.java
![Page 78: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/78.jpg)
78
Métodos de clase
■ Se declaran con la palabra static■ Se conocen también como métodos
estáticos■ Se invocan a través de una clase en lugar de
una instancia ■ Son lo más parecido a las funciones
globales de C. ■ No utilizan this
![Page 79: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/79.jpg)
79
Anexo B
❍ Ejemplo 2❍ Ejemplo 3❍ Programa 7❍ Programa 8
![Page 80: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/80.jpg)
80
Herencia■ En Java toda clase herada de manera implícita a la
clase Object predefinida■ Para heredar los métodos y variables de una clase
(excepto los privados), es necesario utilizar la palabra reservada extends.
![Page 81: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/81.jpg)
81
Herencia
■ Java sólo soporta el concepto de herencia simple, es decir, sólo hereda directamente de una superclase.
■ La subclase hereda el comportamiento y la estructura de la superclase.
■ Se heredan todos los miembros públicos, protegidos o de paquete.
■ Los constructores no se heredan.
![Page 82: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/82.jpg)
82
Encapsulamiento
■ Se utiliza el modificador public para indicar qué variables o métodos de una clase están disponibles en cualquier parte.
■ Se utiliza el modificador private para ocultar variables o métodos de una clase.
![Page 83: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/83.jpg)
83
Encapsulamiento
■ Una variable o método privado de una clase es visible solamente por los métodos definidos para esa clase. No son accesibles por subclases ni son heredados por ellas.
![Page 84: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/84.jpg)
84
Encapsulamiento
■ Una variable o método protected es accesible dentro de la clase donde están definidos, dentro de todas las subclases de la clase, y por las clases que se encuentran en el mismo paquete que la clase donde se encuentran.
![Page 85: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/85.jpg)
85
Encapsulamiento■ La protección default es más estricta que la
protected. Si una variable o método se declara sin alguna de las llaves de public, private o protected, sólo es accesible para la clase que la o lo declara, así como dentro de las clases que forman parte del mismo paquete. No es accesible para las subclases (a menos que sean subclases en el mismo paquete).
![Page 86: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/86.jpg)
86
Encapsulamiento
■ Las subclases heredan los campos private protected y protected, pero no pueden acceder a estos campos en instancias de la superclase.
![Page 87: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/87.jpg)
87
Anexo A y Anexo B
❍ Figura 4❍ Programa 9❍ Programa 9-a❍ Programa 10
![Page 88: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/88.jpg)
88
Ejemplo.
![Page 89: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/89.jpg)
89
Ejemplo. Notación UML
![Page 90: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/90.jpg)
90
Ejemplo. Notación UML
![Page 91: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/91.jpg)
91
Ejemplo. Notación UML
![Page 92: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/92.jpg)
92
Anexo A
■ Programa 11■ Programa 11-a■ Programa 11-b
![Page 93: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/93.jpg)
93
Superposición de métodos
■ Si una clase define un método con la misma firma que un método de alguna de sus superclases, se dice que este método está siendo redefinido (overriding)
■ Se utiliza la palabra super dentro del método de la subclase para invocar a la operación original de la superclase.
![Page 94: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/94.jpg)
94
Métodos de utilería
■ No todos los métodos en Java tienen que ser públicos
■ Algunos métodos se declaran como privados (private) y sirven como métodos de utilería para otros métodos de la clase.
![Page 95: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/95.jpg)
95
Anexo A
■ Programa 12■ Programa 12-a
![Page 96: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/96.jpg)
96
Composición
■ La composición se refiere a la facilidad de poder tener objetos como variables de instancia de otras clases
■ Un objeto puede tener objetos de otras clases como miembros
![Page 97: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/97.jpg)
97
Anexo A
■ Programa 13■ Programa 13-a■ Programa 13-b
![Page 98: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/98.jpg)
98
Clases abstractas
■ Una clase abstracta es aquella que no puede ser instanciada
■ Normalmente no implementa todos los métodos que declara, sino que delega esta responsabilidad a sus subclases
![Page 99: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/99.jpg)
99
Clases abstractas
■ Una clase se define como abstracta si se incluye la palabra reservada abstract
■ Un método abstracto es un método de una clase abstracta que no contiene código
■ El método abstracto deberá implementarse en toda aquella clase que concreta que hereda de la clase abstracta
■ Un método abstracto no puede ser privado
![Page 100: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/100.jpg)
100
Clases abstractas■ Supongamos que se desea implementar clases para
diferentes figuras: rectángulo, cuadrado, elipse, etc.
■ Lo como un arreglo de figuras que se derivan de una superclase Shape. Así, Shape encapsulará las características que son comúnes en todas las figuras (como área y perímetro).
![Page 101: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/101.jpg)
101
Clases abstractas■ Sin embargo, la clase genérica Shape no puede
implementar estos métodos ya que varían de una figura a otra. Para poder manejar esto Java utiliza los métodos abstractos.
■ Un método abstracto no tiene cuerpo; sólo tiene un nombre seguido por un punto y coma.
![Page 102: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/102.jpg)
102
Clases abstractas■ Cualquier clase con un método abstracto es
abstracta automáticamente.■ Una clase abstracta no puede instanciarse.■ Una subclase de una clase abstracta puede
instanciarse si sobreescribe cada uno de los métodos abstractos de su superclase.
■ Si una subclase de una clase abstracta noimplementa todos los métodos abstractos que hereda, esa subclase es abstracta.
![Page 103: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/103.jpg)
103
Anexo B
❍ Ejemplo 4❍ Figura 5
![Page 104: Benemérita Universidad Autónoma de Puebla - …andrex/descargas/Material_Curso...para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado](https://reader035.fdocumento.com/reader035/viewer/2022081521/5e6a3de5e342322ea2042bdc/html5/thumbnails/104.jpg)
104
Anexo A
■ Programa 14■ Programa 14-a■ Programa 14-b■ Programa 14-c■ Programa 14-d■ Programa 14-e