Page 1

UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE FILOSOFÍA, LETRAS Y CIENCIAS DE LE EDUCACIÓN

Jonathan Peralta


Programación VII

UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE FILOSOFÍA, LETRAS Y CIENCIAS DE LE EDUCACIÓN

Construir proyectos aplicando la programación Orientada a objetos que le permita al estudiante resolver problemas de distinta índole (matemáticos, administrativos, gráficos, contables etc.) empleando como herramienta la computadora través de la plataforma del Java y programa BJ, con honestidad.

Descarga el Sílabus


Programación VII

UNIDAD N° 1 CONCEPTUALIZACIÓN DEL LENGUAJE JAVA Breve historia de Java Java es un lenguaje de programación creado por Sun Microsystems, (empresa que posteriormente fue comprada por Oracle) para poder funcionar en distintos tipos de procesadores. Su sintaxis es muy parecida a la de C o C++, e incorpora como propias algunas características que en otros lenguajes son extensiones: gestión de hilos, ejecución remota, etc. Java superó a la competencia y se posicionó como la tecnología por excelencia para las aplicaciones web empresariales. Desde entonces Java es una de las tecnologías más importantes, disponible en casi todas las plataformas. Se encuentra en las desktops (aplicaciones de escritorio), el los servidores (sirviendo páginas web y aplicaciones web) y hasta en los teléfonos celulares (versión micro de Java). Ahora Java forma parte de uno de los sistemas operativos para celular más famosos y pujantes que hay en la actualidad: Android. Este sistema operativo fue creado por los desarrolladores del famoso buscador Google; está basado en Java, por lo cual todas las aplicaciones para los celulares con Android están hechas utilizando este lenguaje. No sólo existen celulares con el sistema operativo Android, sino smartphones, netbooks y tablets que también lo utilizan. En el 2009 Oracle, gigante de las bases de datos, compró Sun y, por lo tanto, también asumió la responsabilidad sobre la evolución de Java. El futuro de Java es prometedor, ya que esta respaldado por gigantes de la informática y por una enorme comunidad de programadores. Usos más habituales de programas en Java Productividad y utilidades Java es muy utilizado en todo tipo de aplicaciones de productividad como procesadores de texto u hojas de cálculo. Incluso Google Maps en ocasiones, utiliza applet de Java que se ejecuta dentro del propio navegar del usuario reduciendo la carga del servidor. Entretenimiento Los juegos constituyen el uso más extendido de Java ya que gracias a su uso estos juegos pueden ser ejecutados en diferentes plataformas de gaming. Basta con hacer clic dentro de sus límites y el juego comenzará a estar plenamente operativo para el usuario.


Programación VII

Educación Uno de los usos más prestigiosos de Java es el de herramientas educativas como hojas de finanzas, calculadora, gráficos, herramientas para gestionar el tiempo, composición, ejercicios. Comunicación Los applets de Java forman parte delas aplicaciones de mensajería instantánea (WhatsApp, Telegram, LINE…) y chats que diariamente utilizan millones y millones de personas en todo el mundo. Aplicaciones móviles Con Java ME o “Micro Edition”, los applets de Java, que ya son lo bastante pequeños, se hacen mucho más apropiados para las aplicaciones y navegadores que encontramos y utilizamos en nuestros dispositivos móviles. En líneas generales, Java se encuentra en multitud de navegadores y programas pues cualquier aplicación desarrollada por con este lenguaje puede ser embebida en un website y ejecutado en un navegador, al margen del sistema operativo. Preparación Para poder programar en Java, compilar y correr los programas, necesitaremos instalar el kit de desarrollo. Debemos asegurarnos de descargar la última versión del SDK, Software Development Kit (Kit de Desarrollo de Software), y no el JRE, Java Runtime Environment (Entorno de Ejecución Java). El primero nos permitirá crear y ejecutar aplicaciones Java, el segundo solamente correrlas. El ejecutable que descargaremos nos guiará durante la sencilla instalación. Finalizada esta tendremos a nuestra disposición los distintos programas para producir y ejecutar aplicaciones Java. El compilador correspondiente a este lenguaje: javac.exe (el cual se encarga de producir los binarios Java a partir del código fuente), el intérprete java.exe (que ejecuta un programa Java) y el documentador javadoc.exe (el que se encargará de generar la documentación necesaria para las clases) entre otros. También encontraremos el profiler jvisualvm.exe, una herramienta que nos permitirá medir la performace (tiempo de ejecución y uso de memoria) de cualquier programa Java de una forma sencilla y visual. Así mismo contaremos con las librerías base que trae Java por defecto y el código fuente de estas, por si queremos ver cómo funcionan internamente.


Programación VII

¿SABIAS QUÉ?

Duke, la mascota de Java en los comienzos del lenguaje, fue muy popular y atrayente. Se lo podía ver en cada artículo, libro o sitio relacionado con este lenguaje.

VISIÓ GENERAL VISIÓN GENERAL Y ELEMENTOS BÁSICOS DEL LENGUAJE. En Java, prácticamente todo son clases (objetos). El lenguaje obliga a la programación orientada a objetos y no permite la posibilidad de programar mediante ninguna otra técnica que no sea ésta. Por esta razón, un programa estará formado por uno o varios ficheros fuente y en cada uno de ellos habrá definida una o varias clases. En un fichero fuente puede declararse una o más clases y tendrá un aspecto similar a este:

Una clase está formada por una parte correspondiente a la declaración, y otra correspondiente al cuerpo de la misma


Programación VII

En la plantilla anterior se ha simplificado el aspecto de la Declaración de clase, pero sí que puede asegurarse que la misma contendrá, como mínimo, la palabra reservada class y el nombre que recibe la clase. El cuerpo de las clases comienza con una llave abierta({) y termina con una llave cerrada (}). Dentro del cuerpo de la clase se declaran los atributos y los métodos de la clase. Para que un programa se pueda ejecutar, debe contener una clase que tenga un método main con la siguiente declaración:

PRIMER PROGRAMA En primer lugar, vamos a ver qué estructura debería tener el típico programa con el que se empieza en cualquier lenguaje de programación y que proporciona una primera visión de la sintaxis del lenguaje y que comienza a transmitir una serie de sentimientos de aceptación o de rechazo en el programador. El programa simplemente mostrará en pantalla el mensaje “hola, mundo” y terminará. Este ejemplo habrá que crearlo mediante un editor cualquiera y guardar el fichero con el nombre Hola.java (ATENCIÓN: Es importante que tenga el mismo nombre que la clase “Hola”, distinguiendo entre mayúsculas y minúsculas).

La instrucción que realmente realiza el trabajo efectivo de nuestro programa es la siguiente:

INFORMES Ficheros adjuntos 

info1.pdf (Ventana nueva)


Programación VII

VARIABLES VARIABLES Las variables son unidades básicas de almacenamiento en Java .Una variable se define por la combinación de un identificador, un tipo y un inicializador opcional. Además las variables tiene un ámbito que define su visibilidad y una duración.

Declaración de variables. La declaración de una variable se realiza de la misma forma que en C. Siempre contiene el nombre (identificador de la variable) y el tipo de dato al que pertenece. El ámbito de la variable depende de la localización en el programa donde es declarada.

Las variables pueden ser inicializadas en el momento de su declaración, siempre que el valor que se les asigne coincida con el tipo de dato de la variable.

Modificaciones de variables Las variables se pueden modificar mediante indicadores. 

Public La clase o variable de instancia es accesible desde todos los ámbitos.

Protected La clase o variable de instancia es accesible solo en el ámbito actual de

Private La clase o variable de instancia es accesible solo en el ámbito actual de la

Final La variable es una constante ,de modo que su valor no se puede modificar.

Static La variable es una variable de clase, compartida entre todos los objetos

la clase ,el ámbito del paquete actual y todas las subclases de la clase actual.

clase.

instancia de una clase. 

Transfert Se declara que no es parte de un estado persistente del objeto .


Programación VII 

Volatile Se necesita a veces cuando se utiliza una variable instancia por ¿¿ para

prevenir al compilador de su optimización.

INFORME2 Ficheros adjuntos 

infor2.pdf (Ventana nueva)

OPERADORES OPERADORES. Los operadores son partes indispensables en la construcción de expresiones. Existen muchas definiciones técnicas para el término expresión. Puede decirse que una expresión es una combinación de operandos ligados mediante operadores. Los operandos pueden ser variables, constantes, funciones, literales, etc. y los operadores todos los enumerados en este punto. Operadores relacionales

Los operadores relacionales actúan sobre valores enteros, reales y caracteres (char); y devuelven un valor del tipo boolean (true o false).

Operadores lógicos:


Programación VII

Estos operadores actúan sobre operadores o expresiones lógicas, es decir, aquellos que se evalúan a cierto o falso (true / false).

Operadores de bits:

INFORME3 Ficheros adjuntos 

infor3.pdf (Ventana nueva)

FORMATO DE ENTRADA Y SALIDA (SCANNER) CLASE SCANNER


Programación VII

La clase Scanner (paquete java.util ) permite leer números y texto de un fichero de texto y de otras fuentes 

Permite la lectura del texto línea a línea (similar a BufferedReader )

Permite la lectura sencilla de números y palabras separadas por el separador especificado

El separador por defecto es cualquier tipo de espacio en blanco (espacio, salto de línea, tabulador, etc.)

Puede utilizarse otro separador utilizando el método useDelimiter

Permite reconocer patrones de texto conocidos como “expresiones regulares”

Scanner se comporta como un stream filtro de caracteres

INFORME4 Ficheros adjuntos 

infor4.pdf (Ventana nueva)

ESTRUCTURAS DE CONTROL (TRY/CATCH) LA ESTRUCTURA DE CONTROL

TRY … CATCH

La primer sección del Bloque es iniciada con el vocablo try y una llave ({ ) que indica el principio de la zona protegida, dentro de esta primer sección es colocado todo código que pueda generar algún tipo de error, al terminar esta sección se define un grupo de estructuras con el elemento catch. Como se puede observar en la ilustración, cada vocablo catch es seguido de un paréntesis que contiene una Clase así como una referencia, estos son considerados los Datos de Entrada para cada sección catch; el tipo de Clases definidas dentro de cada sección catch depende del numero de "Exceptions" que pueden ser generadas por el programa; lo anterior permite definir un numero ilimitado de "Exceptions" cada uno con su propio código para manejar el error. Para todo Bloque try/catch debe ser definida al menos una sección catch; si son definidos más de dos Clases para errores ("Exceptions") estas deben ser declaradas de más a menos especifica, siendo la menos especifica la Clase java.lang.Throwable; es de esta Clase que son Heredadas ("Inherited") todo "Exception" en Java, esto será descrito en la siguiente sección de este curso.


Programación VII

Sintaxis del Bloque try/catch/finally Para los Bloques try/catch existe una variación que consiste en agregar una sección denominada finally, dicha estructura estaría compuesta de la siguiente manera:

La utilización de finally es empleada dentro de un Bloque try/catch para realizar tareas que deben ser ejecutadas independientemente del comportamiento de errores. Cuando se atrapa un error ("Exception") un programa queda inconcluso, es esta terminación abrupta la que puede causar que algún recurso/mecanismo permanezca asignado o mal utilizado; a través de una sección finally se garantiza que sea ejecutado un juego de instrucciones independientemente del tipo de error que pueda ocurrir; un uso muy común para una sección finallyconsiste en liberar conexiones hacia Bases de Datos que pudieran haber sido asignadas en la sección try.

INFORME5 Ficheros adjuntos 

infor5.pdf (Ventana nueva)


Programación VII

CLIENTE-SERVIDOR SOCKETS EN JAVA Los sockets son basicamente formas en las que podemos interconectar 2 (o mas) programas mediante el uso de la internet. En java se utilizan para poder crear conexiones utilizando basicamente una IP/hostname y un puerto para establecer la conexión. Para aprender podemos utilizarla para conenctar 2 programas por medio de Internet. ¿Como funciona? El modelo mas basico de los sockets consta de 2 simples programas, un servidor y un cliente. Basicamente el programa servidor comienza a “escuchar” en un puerto determinado(nosotros lo especificamos), y posteriormente el programa que la hace de “cliente” debe conocer la ip o nombre de dominio/hostname del servidor y el puerto que esta escuchando, al saber esto simplemente solicita establecer una conexión con el servidor. Es aqui cuando el servidor acepta esa conexión y se puede decir que estos programas estan “conectados”, de este modo pueden intercambiar información. En el siguiente video muestro un programa servidor con sockets, explico mas o menos el codigo, en que consiste y hago una prueba en el cual la conexión es exitosa.

INFORME6 Ficheros adjuntos 

infor6.pdf (Ventana nueva)

SENTENCIAS DE CONTROL SIMPLES Y ANIDADOS IF La Instrucción If, "Si" en pseudocódigo, permite alterar la secuencia seleccionando entre dos opciones posibles. Esta instrucción puede escribirse de las siguientes formas: IF SIMPLE

En esta forma, los pasos o instrucciones que se encuentran dentro se ejecutan únicamente cuando la evaluación de la condición sea verdadera. Sintaxis:


Programación VII

Pseudocódig DFD o

si (condición) paso1 paso2 ... pasoN finSi

Java

if (condición) { instrucción 1 instrucción 2 ... instrucción N }

IF COMPLETO (VERDADERO - FALSO)

En esta forma, los pasos o instrucciones que se encuentran entre el inicio y fin de la estructura, tienen dos secciones: 1. Un conjunto de instrucciones que se ejecutan cuando la evaluación de la condición sea verdadera 2. Un conjunto e instrucciones que se ejecutan cuando la evaluación de la condición sea falsa.

Sintaxis: En DFD Pseudocódigo

si (condición) paso1 paso2

En Java

if (condición) { instrucción 1

... instrucción


Programación VII

pasoN finSi caso contrario

2

paso1

...

paso2

instrucción N

... } pasoN finCasoContrar io

IF ANIDADO

Es una modificación del uso de la instrucción "Si", que aprovechando la característica de anidamiento de las estructuras de control, según la cual es posible que una estructura se contenga a sí misma como parte de su cuerpo de instrucciones, permitiendo así elegir entre más de dos opciones. Sintaxis: Pseudocódig DFD o

Java


Programación VII

Si (condición) pasos

if (condición){ pasos }

caso contrario

else{

si (condición)

if(condición) {

pasos

pasos

caso contrario si (condición)

} else{ if(condición) {

pasos finSi

pasos

finSi

}

finSi

} }

Como puede observarse en la tabla anterior, esta característica de la instrucción if, permite decidir entre más de dos posibilidades de respuesta, siendo posible extenderse tantas como sea necesario. Es necesario aclarar que tanto la parte verdadera como la parte falsa pueden anidar dentro de sí mismas otra instrucción de tipo if con o sin su correspondiente caso contrario.

INFORME7 Ficheros adjuntos 

infor7.pdf (Ventana nueva)

INTERFACES MAP MAP


Programación VII

La interface Map, representa un objeto que sirve para ligar (“hacer un mapeo”) un valor clave (key en inglés) y un valor u objeto (value en inglés). Así podemos pensar que un mapa es una especie de diccionario donde a un objeto clave le asignamos un objeto valor. Como ejemplo podríamos pensar en que una clave puede ser un número de pasaporte de una persona y como valor el objeto Persona que contiene toda la información y métodos de una persona en concreto. Aunque la clave lo más frecuente es que sea algo conciso (como un número) también puede ser otra cosa. Por ejemplo el objeto clave podría ser una imagen, al que le correspondiera por ejemplo otra imagen valor. Por ejemplo podríamos tener un mapa de conversión de imágenes, que dada una imagen clave, le correspondiera una imagen valor que fuera la misma imagen escalada a un determinado tamaño. Esto no es lo más usual, pero sería posible. Por tanto un mapa está abierto a cualquier tipo de objeto. Eso sí, un mapa no puede tener claves duplicadas. La clave funciona como un identificador único. Para entender esto, considera por ejemplo que esta restricción sería igual que decir que dos personas no pueden tener igual número de pasaporte. También hay que tener en cuenta que un map proporciona tres vistas. Podemos ver un mapa como un conjunto de claves (por ejemplo todos los números de pasaportes en el sistema), colecciones de valores (por ejemplo todas las personas), o un conjunto de pares claves-valor mapeados (todos los números de pasaporte vinculados cada uno a su persona correspondiente). En principio hay que tener especial cuidado con los métodos equals y hashCode ya que estos en general no están bien definidos o no resultan útiles sobre un map genérico o recién creado, por lo que hay que sobreescribir estos métodos para que tengan un funcionamiento acorde a nuestras necesidades.

SORTEDMAP Esta interfaz es muy similar a la interface Map. Tan solo se diferencia en que SortedMap permite que los elementos dentro del conjunto de la colección estén ordenados totalmente, facilitando por tanto su acceso en búsquedas y haciendo más rápida su consulta. Así pues los elementos del sortedmap (mapa ordenado) están ordenados por sus elementos claves. En el ejemplo que estamos usando tendríamos que los números de pasaporte podrían estar ordenados de menor a mayor. Para que la ordenación de las claves sea posible, estos elementos deben pertenecer a una clase que implemente la interface Comparable o tener un Comparator adecuado. Algunas clases como Integer ya tienen un orden natural definido válido. En otras clases será necesario que nosotros definamos un orden. ¿Cuándo usar la interface Map y cuándo usar la interface SortedMap? Básicamente cuando vayamos a crear nuestra estructura de datos deberemos pensar en si necesitamos o es ventajoso mantener los datos ordenados de alguna manera para


Programación VII

hacer más rápido el acceso. En este caso nos decantaremos por el uso de la interface SortedMap y las clases que la implementan. Si no resulta ventajoso el mantener los datos ordenados o se trata de mapas donde no hay una gran cantidad de datos, la ordenación puede suponer un consumo de recursos innecesario y podemos optar por usar la interface Map y las clases que la implementan.

HASHMAP HashMap es la clase que vamos a utilizar para implementar la interfaz Map siendo una de las más usadas para implementar esta interface. Esta clase implementa la interface Map basada en una tabla hash en modo similar a como lo hacíamos con HashSet para la interfaz Set.


Programación VII

TREEMAP TreeMap es la clase que vamos a utilizar como implementación de la interface SortedMap. Al igual que en el caso de TreeSet implementando la interface SortedSet, TreeMap se basa en una implementación en árbol que permite tener un mapa ordenado implementando así por tanto la interfaz TreeMap. En este caso además TreeMap es la clase más usada para implementar esta interface, al menos en nuestra opinión.

INFORME8

ProgramacionVII  

Personal document that serves to see the progress of an activity in the educational classroom

ProgramacionVII  

Personal document that serves to see the progress of an activity in the educational classroom

Advertisement