1 Programacic3b3n en Java

17
 Aplicaciones Empresariales en Java – Programación en Java ESPOCH FIE - Ing. Jorge Huilca Palacios Página 1 PROGRAMACIÓN EN JAVA BREVE HISTORIA DE JAVA Java data de 1991, en el que un grupo de ingenieros de Sun Microsystems liderados por Patrick Naughton, Sun Fellow y James Gosling, deseaban diseñar un lenguaje de computadoras que se pudiera utilizar para dispositivos de consumo como los computadores de TV por Cable. Estos dispositivos poseen pocos recursos de procesamiento y de almacenamiento de memoria. Era importante que el lenguaje no estuviera asociado a una sola arquitectura. Esto llevo a resucitar el modelo de compacidad y neutralidad respecto a la plataforma creado hace varios años por Niklaus Wirth inventor de Pascal. Este es el inicio de un lenguaje transportable y del concepto de máquinas virtuales. El personal de Sun tenía experiencia en UNIX así que basaron al lenguaje Java a partir de C y C++. Gosling decidió llamarlo en sus inicios Oak y luego lo bautizaron como Java. En 1992, el proyecto Green generó su primer producto denominado *7, que se trataba de un control remoto inteligente. Lamentablemente este producto no tuvo éxito en el mercado. Mientras sucedía todo esto en Sun, la parte del internet que es la WWW se iba haciendo cada vez más grande. La clave de la web es el navegador. En 1994, casi todo el mundo usaba Mosaica(un navegador comercial que surgió del Centro de Supercompuadoras de la Universidad de Illinois en 1994). Este navegador fue escrito en gran parte por Mark Andreesen estudiante universitario que más tarde sería cofundador y jefe de tecnología de Netscape. A mediados de 1994, Gosli ng inicia la construcción de u n navegador escrito en Java desarrollado por Patrick Naughton y Jonathan Payne y lo denominador HotJava. Este navegador introduce el concepto de Applets (programas con interfaz gráfica que funcionan en un navegador web). Sun publicó su primera versión de Java a principios de 1996. Esta versión carecía de credibilidad entre los programadores por su escasa aplicabilidad. La versión 1.1 corregía errores de la versión anterior y se agrega el modelo de eve ntos para programación gráfica. En 1998 aparece la versión Java 1.2 que reemplaza en antiguo conjunto de herramientas de Interfaz Gráfica por un modelo sofisticado y escalable denominado Swing. En diciembre de 1998 se cambia el nombre por Java 2 Standard Edition Software Developer Kit versión 1. 2. Además, se presentaron otras dos ediciones: Micro Edition para dispositivos móviles y Enterprise Edition para servidores. ARQUITECTURA DE JAVA El lenguaje de programación Java saltó a la escena de internet y consiguió instantáneamente un título de celebridad. Un lenguaje con una ingeniería muy sólida. Su característica de protección y seguridad para programadores y usuarios. Propietario de Sun hoy de Oracle. Java es el mejor lenguaje de programación usado por buenos programadores Java es una plataforma con una gran biblioteca de clases. Basado en C y C++ con fundamento de Pascal. Java es toda una plataforma, con una enorme biblioteca con una gran cantidad de código reutilizable y con un entorno de ejecución que ofrece servicios tales como: seguridad, adaptabilidad entre sistemas operativos y recolección automática de basura. Como programador, se necesita un lenguaje que tenga una sintaxis agradable y u na semántica comprensible. Versiones de Java:   Java 2 Standar d Edition J2SE : Estructuras Fundamentales, Clases y Objetos, Interfaz Gráfica de Usuario (GUI), Acceso a Base de Datos (JDBC)

Transcript of 1 Programacic3b3n en Java

Page 1: 1 Programacic3b3n en Java

5/12/2018 1 Programacic3b3n en Java - slidepdf.com

http://slidepdf.com/reader/full/1-programacic3b3n-en-java 1/17

Aplicaciones Empresariales en Java – Programación en Java

ESPOCH FIE - Ing. Jorge Huilca Palacios Página 1

PROGRAMACIÓN EN JAVA

BREVE HISTORIA DE JAVA

Java data de 1991, en el que un grupo de ingenieros de Sun Microsystems liderados por Patrick Naughton, Sun

Fellow y James Gosling, deseaban diseñar un lenguaje de computadoras que se pudiera utilizar para dispositivos de

consumo como los computadores de TV por Cable. Estos dispositivos poseen pocos recursos de procesamiento y de

almacenamiento de memoria. Era importante que el lenguaje no estuviera asociado a una sola arquitectura.

Esto llevo a resucitar el modelo de compacidad y neutralidad respecto a la plataforma creado hace varios años por

Niklaus Wirth inventor de Pascal. Este es el inicio de un lenguaje transportable y del concepto de máquinas

virtuales.

El personal de Sun tenía experiencia en UNIX así que basaron al lenguaje Java a partir de C y C++. Gosling decidió

llamarlo en sus inicios Oak y luego lo bautizaron como Java.

En 1992, el proyecto Green generó su primer producto denominado *7, que se trataba de un control remoto

inteligente. Lamentablemente este producto no tuvo éxito en el mercado.

Mientras sucedía todo esto en Sun, la parte del internet que es la WWW se iba haciendo cada vez más grande. La

clave de la web es el navegador. En 1994, casi todo el mundo usaba Mosaica(un navegador comercial que surgió del

Centro de Supercompuadoras de la Universidad de Illinois en 1994). Este navegador fue escrito en gran parte por

Mark Andreesen estudiante universitario que más tarde sería cofundador y jefe de tecnología de Netscape.

A mediados de 1994, Gosling inicia la construcción de un navegador escrito en Java desarrollado por Patrick

Naughton y Jonathan Payne y lo denominador HotJava. Este navegador introduce el concepto de Applets

(programas con interfaz gráfica que funcionan en un navegador web).

Sun publicó su primera versión de Java a principios de 1996. Esta versión carecía de credibilidad entre los

programadores por su escasa aplicabilidad. La versión 1.1 corregía errores de la versión anterior y se agrega el

modelo de eventos para programación gráfica.

En 1998 aparece la versión Java 1.2 que reemplaza en antiguo conjunto de herramientas de Interfaz Gráfica por un

modelo sofisticado y escalable denominado Swing. En diciembre de 1998 se cambia el nombre por Java 2 Standard

Edition Software Developer Kit versión 1.2.

Además, se presentaron otras dos ediciones: Micro Edition para dispositivos móviles y Enterprise Edition para

servidores.

ARQUITECTURA DE JAVA

El lenguaje de programación Java saltó a la escena de internet y consiguió instantáneamente un título de

celebridad. Un lenguaje con una ingeniería muy sólida. Su característica de protección y seguridad para

programadores y usuarios. Propietario de Sun hoy de Oracle. Java es el mejor lenguaje de programación usado por

buenos programadores Java es una plataforma con una gran biblioteca de clases. Basado en C y C++ con

fundamento de Pascal.

Java es toda una plataforma, con una enorme biblioteca con una gran cantidad de código reutilizable y con un

entorno de ejecución que ofrece servicios tales como: seguridad, adaptabilidad entre sistemas operativos y

recolección automática de basura.

Como programador, se necesita un lenguaje que tenga una sintaxis agradable y una semántica comprensible.

Versiones de Java:

 Java 2 Standard Edition J2SE: Estructuras Fundamentales, Clases y Objetos, Interfaz Gráfica de Usuario(GUI), Acceso a Base de Datos (JDBC)

Page 2: 1 Programacic3b3n en Java

5/12/2018 1 Programacic3b3n en Java - slidepdf.com

http://slidepdf.com/reader/full/1-programacic3b3n-en-java 2/17

Aplicaciones Empresariales en Java – Programación en Java

ESPOCH FIE - Ing. Jorge Huilca Palacios Página 2

  Java 2 Enterprise Edition J2EE: hoy se la denomina Java Enterprise Edition (JEE) orientada al desarrollo

web, programación de redes, componentes distribuidos (RMI, Corba, EJB, Servicios Web)

  Java 2 Micro Edition J2ME: orientado a dispositivos móviles

A demás han aparecido nuevas tecnologías

  Java FX: para la creación de Rich Internet Applications (RIAs), esto es, aplicaciones web que tienen lascaracterísticas y capacidades de aplicaciones de escritorio, incluyendo aplicaciones multimedia

interactivas

  Java Card: es una tecnología que permite ejecutar de forma segura pequeñas aplicaciones Java (applets)

en tarjetas inteligentes (SIM) y similares dispositivos empotrados

  Java TV: implementación de Java que se ejecuta en diferentes dispositivos relacionados con la TV: desde

top boxes para televisión por cable y satelital hasta lectores de discos

La evolución de Java en cuanto a su desarrollo interno de clases:

Versiones No. de ClasesVersión 1.0 211 clases

Versión 1.1 477 clasesVersión 1.2 1524 clases

Versión 1.3 1840 clases

Versión 1.4 2723 clases

Versión 5.0 3279 clases

Versión 6 3777 clases

Las características de Java son:

Sencillo: Programación de forma sencilla. Utiliza prácticas actuales. Muy parecido a C++. Carece de muchas

características erróneas (punteros). En java se genera mucho código. Hoy existen Entornos de Desarrollo Integrados

(IDE) que mejoran la productividad. Si se está acostumbrado a entornos visuales (Visual Basic, .NET, Delphi) no le

resultará fácil.

Orientado a Objetos: El diseño orientado a objetos es una técnica de programación que se centra en los datos y en

las relaciones. Las capacidades orientadas a objetos de Java son las mismas de C++. En Java no existe herencia

múltiple, sobrecarga de operadores. Aparecen conceptos de interfaces, serialización y construcciones de GUI.

Distribuido: Java posee una extensa biblioteca para tratar protocolos de red (TCP/IP, FTP y HTTP). Manejo fácil de

sockets. Fácil invocación a métodos remotos entre objetos distribuidos (RMI, CORBA, EJB, Servicios Web). Una

arquitectura específica denominada Java 2 Enterprise Edition.

Robusto: Fiable para el cliente y el programador. Mejorado el modelo de punteros. Existen clases que representan

las diferentes estructuras de datos (arreglos, listas, árboles, mapas)

Seguro: Java está diseñado para entornos distribuidos. Protegidos para ataques como: Desbordar la pila de

ejecución (virus), Corromper la memoria (punteros) y L/E de archivos sin permiso (applets)

Neutro en su Arquitectura: El compilador genera un archivo neutro denominado bytecode independiente de la

arquitectura. La traducción a código objeto se denomina JIT (Just In Time). Modelo adoptado por .NET. Hace más de

20 años Niklaus Wirth con el sistema UCSD Pascal empleaba la misma técnica.

Page 3: 1 Programacic3b3n en Java

5/12/2018 1 Programacic3b3n en Java - slidepdf.com

http://slidepdf.com/reader/full/1-programacic3b3n-en-java 3/17

Aplicaciones Empresariales en Java – Programación en Java

ESPOCH FIE - Ing. Jorge Huilca Palacios Página 3

Adaptable: A diferencia de C y C++ no existen aspectos dependientes de la plataforma. Los tipos primitivos están

bien especificados. Las cadenas son Unicode. Ej. Interfaz Gráfico de Usuario utilizando Swing.

Interpretado: el intérprete de Java puede ejecutar directamente bytecodes de Java en cualquier máquina a la que

se haya adaptado el intérprete. Las herramientas de desarrollo de Java son lentas.

Multihilo: Ejecución en múltiples procesadores. No planifica. Deja que el Sistema Operativo lo planifique. Fácil

manejo para el desarrollador

ERRORES POPULARES DE JAVA

  Java es una extensión de HTML

  Yo uso XML así que no necesito de Java

  Java es un lenguaje de programación fácil de aprender

  Java llegará a convertirse en un lenguaje de programación universal para todas las plataformas

  Java tan solo es un buen lenguaje de programación

  Ahora que existe C#, Java a quedado obsoleto

  Java es un lenguaje privado, y por tanto habría que evitarlo

  Todos los programas en Java se ejecutan en una página web

JAVA DEVELOPMENT KIT (JDK)

Es un software que provee herramientas de desarrollo para la creación de programas en java. En los sistemas

Windows sus variables de entorno son:

  JAVAPATH: es un path completo del directorio donde esta instalado el JDK.

  CLASSPATH: son las librerias o clases de usuario.

  PATH: variable donde se agrega la ubicación de JDK

Los programas más importantes que se incluyen son:

Page 4: 1 Programacic3b3n en Java

5/12/2018 1 Programacic3b3n en Java - slidepdf.com

http://slidepdf.com/reader/full/1-programacic3b3n-en-java 4/17

Aplicaciones Empresariales en Java – Programación en Java

ESPOCH FIE - Ing. Jorge Huilca Palacios Página 4

  Appletviewer: es un visor de applet para generar sus vistas previas,ya que un applet carece de método

main y no se puede ejecutar con el programa java.

  Javac: es el compilador de JAVA.

   java: es el intérprete de JAVA.

   javadoc: genera la documentación de las clases java de un programa.

ENTORNOS DE DESARROLLO

Java funciona en las siguientes plataformas operativas: Solaris, Linux, Windows y Macintosh.

Los Entornos de Desarrollo Integrados (IDE) más utilizados en el desarrollo de Java son:

Eclipse (www.eclipse.org)

Eclipse es un entorno de desarrollo integrado de código abierto multiplataforma para desarrollar lo que el proyectollama "Aplicaciones de Cliente Enriquecido", opuesto a las aplicaciones "Cliente-liviano" basadas en navegadores.

Esta plataforma, típicamente ha sido usada para desarrollar entornos de desarrollo integrados (del inglés IDE),

como el IDE de Java llamado Java Development Toolkit (JDT) y el compilador (ECJ) que se entrega como parte de

Eclipse (y que son usados también para desarrollar el mismo Eclipse).

Eclipse es también una comunidad de usuarios, extendiendo constantemente las áreas de aplicación cubiertas.

Eclipse fue desarrollado originalmente por IBM como el sucesor de su familia de herramientas para VisualAge.

Eclipse es ahora desarrollado por la Fundación Eclipse, una organización independiente sin ánimo de lucro que

fomenta una comunidad de código abierto y un conjunto de productos complementarios, capacidades y servicios.

NetBeans (www.netbeans.org)

NetBeans es un entorno de desarrollo, hecho principalmente para el lenguaje de programación Java. Existe además

un número importante de módulos para extender el NetBeans IDE. NetBeans IDE es un producto libre y gratuito sin

restricciones de uso.

NetBeans es un proyecto de código abierto de gran éxito con una gran base de usuarios, una comunidad en

constante crecimiento, y con cerca de 100 socios en todo el mundo. Sun MicroSystems fundó el proyecto de código

abierto NetBeans en junio de 2000 y continúa siendo el patrocinador principal de los proyectos.

La plataforma NetBeans permite que las aplicaciones sean desarrolladas a partir de un conjunto de componentes de

software llamados módulos. Un módulo es un archivo Java que contiene clases de java escritas para interactuar con

las APIs de NetBeans y un archivo especial (manifest file) que lo identifica como módulo. Las aplicaciones

construidas a partir de módulos pueden ser extendidas agregándole nuevos módulos. Debido a que los módulos

Page 5: 1 Programacic3b3n en Java

5/12/2018 1 Programacic3b3n en Java - slidepdf.com

http://slidepdf.com/reader/full/1-programacic3b3n-en-java 5/17

Aplicaciones Empresariales en Java – Programación en Java

ESPOCH FIE - Ing. Jorge Huilca Palacios Página 5

pueden ser desarrollados independientemente, las aplicaciones basadas en la plataforma NetBeans pueden ser

extendidas fácilmente por otros desarrolladores de software.

JDeveloper(www.oracle.com/technology/products/jdev/index.html)

JDeveloper es un entorno de desarrollo integrado desarrollado por Oracle Corporation para los lenguajes Java,

HTML, XML, SQL, PL/SQL, Javascript, PHP, Oracle ADF, UML y otros.

Es un software propietario pero gratuito desde 2005. Las primeras versiones de 1998 estaban basadas en el entorno

JBuilder de Borland, pero desde la versión 9i de 2001 está basado en Java, no estando ya relacionado con el código

anterior de JBuilder.

BlueJ (bluej.org)

BlueJ es un entorno integrado de desarrollo (de sus siglas en inglés IDE - Integrated Development Environment)

para el lenguaje de programación Java, desarrollado principalmente con propósitos educacionales, pero también es

adecuado para el desarrollo de software a pequeña escala.

BlueJ fue desarrollado para apoyar la enseñanza y el aprendizaje de la programación orientada a objetos, y como

resultado, su diseño difiere de otros entornos de desarrollo. La pantalla principal muestra gráficamente la

estructura de clases de una aplicación en desarrollo (en un diagrama muy parecido a UML), y los objetos pueden ser

creados y probados interactivamente. Combinado con una interfaz de usuario simple, esta facilidad de interacción

permite experimentar de manera fácil con los objetos en desarrollo. Los conceptos de la orientación a objetos

(clases, objetos, comunicación a través de llamadas a métodos) son representados visualmente en el diseño de

interacción en la interfaz.

EJERCICIOS PROPUESTOS No.1

1.  Realice la instalación del JDK y del IDE capturando cada una de las pantallas y describiendo las opciones de

instalación

2.  Realice una investigación sobre las semejanzas y diferencias de los diferentes IDEs de desarrollo

3.  Realice una investigación sobre la nueva versión del JDK 7

ESTRUCTURA DE UN PROGRAMA

El lenguaje de programación Java es sensible al contexto, es decir respeta mayúsculas y minúsculas. Todo programa

en Java vive dentro de una clase. Una clase debe escribirse en Mayúscula la primera letra. El nombre del archivo

debe ser el mismo nombre de la clase.

El compilador, para iniciar la ejecución, busca al método o función main. Según la Java Language Especification

(JLE), el método main se tiene que declarar como public Las llaves {} delimitan un bloque de programación. Toda

sentencia termina con punto y coma (;). Se usan las comillas (“ ”) para trabajar con en cadenas de caracteres. Las

funciones o métodos emplean el separador punto (.). Aún cuando un método o función no admita parámetros, son

necesarios los paréntesis.

Los comentarios pueden ser una línea (//) o de varias líneas (/**/). Los comentarios no forma parte del bytecode o

ejecutable.

Page 6: 1 Programacic3b3n en Java

5/12/2018 1 Programacic3b3n en Java - slidepdf.com

http://slidepdf.com/reader/full/1-programacic3b3n-en-java 6/17

Aplicaciones Empresariales en Java – Programación en Java

ESPOCH FIE - Ing. Jorge Huilca Palacios Página 6

TIPOS DE DATOS

Java es un lenguaje de comprobación estricta de tipos, es decir Java no siempre realiza una conversión automática

de los tipos de datos. Java contiene tipos primitivos y avanzados de datos.

Entre los tipos primitivos tenemos las siguientes categorías: Enteros, Coma Flotante, Carácter y Lógico. En cada una

de las categorías tenemos tipo específicos como se detalla a continuación:

Enteros : Números que carecen de parte fraccionaria

Tipo Tamaño Rangobyte 1 byte -128 hasta 127

short 2 bytes -32768 hasta 32767

int 4 bytes -2147483648 hasta 2147483647

long 8 bytes -9223372036854775808 hasta

9223372036854775807

Coma  Flotante : Números con parte fraccionaria. El tipo utilizando en la mayoría de aplicaciones es double

Tipo Tamaño Rangofloat 4 byte ±3.40282347E+38

6 – 7 cifras decimales

double 8 bytes ±79769313486231570E+30815 cifras decimales

Caracter – char: Caracteres del UNICODE de 16 bits. UTF-16. Se representa el carácter encerrado entre apóstrofes.

Ejm ‘A’

Lógico – boolean: Dos posibles valores: true y false

Variables

Las variables se declaran ubicando primero el tipo. Se puede tener múltiples declaraciones en una sola línea. Java

obliga a inicializar las variables. Se puede declarar las variables en cualquier lugar. Se recomienda ubicar las

variables tan cerca del lugar en que se utilice por primera vez.

Page 7: 1 Programacic3b3n en Java

5/12/2018 1 Programacic3b3n en Java - slidepdf.com

http://slidepdf.com/reader/full/1-programacic3b3n-en-java 7/17

Aplicaciones Empresariales en Java – Programación en Java

ESPOCH FIE - Ing. Jorge Huilca Palacios Página 7

Constantes

En Java para la declaración de constante se utiliza la palabra final. Para constantes, se acostumbra a poner en

MAYUSCULAS.

Operadores Aritméticos

  Operadores aritméticos +,-,*,/

  Módulo o residuo %

  Operadores de Aritmética Binaria: X+=10 equivale a X=X+10

  Operadores de incremento y decremento

o  Prefijo ++i, --i

o  Sufijo i++, i--

Operadores Relacionales

  Igualdad ==

  Desigualdad !=

  Y lógico &&

  O lógico ||

  Operadores habituales >,>=,<,<=

  Operador ternario C1?expresión1:expresión2

Cadenas de Caracteres

Son secuencia de caracteres UNICODE, Java no posee un tipo primitivo para representar una cadena de caracteres.

Se utiliza la clase String.

Las variables u objetos de tipo String poseen los siguientes métodos o funciones:

  Método length() proporciona el número de caracteres

  Método charAt(n) extrae un carácter  Método substring(inicio,fin-1) extrae una subcadena

Page 8: 1 Programacic3b3n en Java

5/12/2018 1 Programacic3b3n en Java - slidepdf.com

http://slidepdf.com/reader/full/1-programacic3b3n-en-java 8/17

Aplicaciones Empresariales en Java – Programación en Java

ESPOCH FIE - Ing. Jorge Huilca Palacios Página 8

Para la concatenación se utiliza el signo +. No utilice == , != para la comparación entre cadenas. En su lugar utilice

los métodos o funciones:

  Método equals(cadena) comprueba la igualdad

  Método equalsIgnoreCase(cadena) comprueba la igualdad sin distinción

LECTURA DE DATOS

Para imprimir un resultado se utiliza println() o print(). Desde JDK 5.0 existe una forma sencilla de lectura de datos

utilizando la clase Scanner. La lectura se realiza con nextLine(), next(), nextInt(), etc. Se debe importar el paquete

 java.util. El paquete java.lang está importado por defecto

Scanner in = new Scanner(System.in);

String mensaje=in.nextLine();

La clase Scanner no es apropiada para la lectura de claves desde consola. A partir del JDK 6.0 se introduce la clase

Console para este propósito.

Console cons = System.console();

String username = cons.readLine("User name: ");

char[] passwd = cons.readPassword("Password: ");

Por motivos de seguridad, se devuelve un arreglo de caracteres en la clave.

ESTRUCTURAS CONDICIONALES

Se utiliza la sentencia if . La condición debe ir entre paréntesis. Si las sentencias son más de una, utilice los

delimitadores de bloque. La sentencia if  resulta complicada si tenemos varias opciones. En el switch la opción

únicamente es entera

If (condición)

sentencia

else

sentencia

switch(opcion)

{

case 1: …break;

Page 9: 1 Programacic3b3n en Java

5/12/2018 1 Programacic3b3n en Java - slidepdf.com

http://slidepdf.com/reader/full/1-programacic3b3n-en-java 9/17

Aplicaciones Empresariales en Java – Programación en Java

ESPOCH FIE - Ing. Jorge Huilca Palacios Página 9

default: …break;

}

ESTRUCTURAS REPETITIVAS

El bucle while ejecuta una sentencia mientras se cumpla la condición. El bucle while hace la comprobación en laparte superior. El bucle do while ejecuta primero la sentencia y después comprueba la condición.

while (Condición)

sentencia

do

sentencia

while(Condición);

El bucle for es un bucle determinado que tiene una iteración controlada. A partir del JDK 5 se presenta otra

alternativa para recorrer elementos de una matriz. Se denomina el for each

for (inicio;condición;contador)

sentencia

for(variable:colección)

sentencia

EXCEPCIONES

Cuando un programa Java viola las restricciones semánticas del lenguaje (se produce un error), la máquina virtual

Java comunica este hecho al programa mediante una excepción.

Muchas clases de errores pueden provocar una excepción, desde un desbordamiento de memoria o un disco duro

estropeado hasta un disquete protegido contra escritura, un intento de dividir por cero o intentar acceder a un

vector fuera de sus límites. Cuando esto ocurre, la máquina virtual Java crea un objeto de la clase exception o error

y se notifica el hecho al sistema de ejecución. Se dice que se ha lanzado una excepción (“Throwing Exception”).

Un método se dice que es capaz de tratar una excepción (“Catch Exception”) si ha previsto el error que se ha

producido y prevé también las operaciones a realizar para “recuperar” el programa de ese estado de error. En el

momento en que es lanzada una excepción, la máquina virtual Java recorre la pila de llamadas de métodos en busca

de alguno que sea capaz de tratar la clase de excepción lanzada. Para ello, comienza examinando el método donde

se ha producido la excepción; si este método no es capaz de tratarla, examina el método desde el que se realizó la

llamada al método donde se produjo la excepción y así sucesivamente hasta llegar al último de ellos. En caso de que

ninguno de los métodos de la pila sea capaz de tratar la excepción, la máquina virtual Java muestra un mensaje de

error y el programa termina.

Manejador de excepciones.

Un manejador de excepciones es una porción de código que se va a encargar de tratar las posibles excepciones que

se puedan generar.

El bloque try.

Page 10: 1 Programacic3b3n en Java

5/12/2018 1 Programacic3b3n en Java - slidepdf.com

http://slidepdf.com/reader/full/1-programacic3b3n-en-java 10/17

Aplicaciones Empresariales en Java – Programación en Java

ESPOCH FIE - Ing. Jorge Huilca Palacios Página 10

Lo primero que hay que hacer para que un método sea capaz de tratar una excepción generada por la máquina

virtual Java o por el propio programa mediante una instrucción throw es encerrar las instrucciones susceptibles de

generarla en un bloque try.

try {

BloqueDeIntrucciones

}

Cualquier excepción que se produzca dentro del bloque try será analizado por el bloque o bloques catch que se verá

en el punto siguiente. En el momento en que se produzca la excepción, se abandona el bloque try y, por lo tanto, las

instrucciones que sigan al punto donde se produjo la excepción no serán ejecutadas.

Cada bloque try debe tener asociado por lo menos un bloque catch.

El bloque catch.

try {

BloqueDeIntrucciones

} catch (TipoExcepción nombreVariable) {

BloqueCatch

} catch (TipoExcepción nombreVariable) {

BloqueCatch

} …

Por cada bloque try pueden declararse uno o varios bloques catch, cada uno de ellos capaz de tratar un tipo u otro

de excepción.

Para declarar el tipo de excepción que es capaz de tratar un bloque catch, se declara un objeto cuya clase es la clase

de la excepción que se desea tratar o una de sus superclases

El bloque finally.

try {

BloqueDeIntrucciones

} catch (TipoExcepción nombreVariable) {

BloqueCatch

} catch (TipoExcepción nombreVariable) {

BloqueCatch

} …

} catch (TipoExcepción nombreVariable) {

BloqueCatch

}

Page 11: 1 Programacic3b3n en Java

5/12/2018 1 Programacic3b3n en Java - slidepdf.com

http://slidepdf.com/reader/full/1-programacic3b3n-en-java 11/17

Aplicaciones Empresariales en Java – Programación en Java

ESPOCH FIE - Ing. Jorge Huilca Palacios Página 11

finally {

BloqueFinally

}

El bloque finally se utiliza para ejecutar un bloque de instrucciones sea cual sea la excepción que se produzca. Estebloque se ejecutará en cualquier caso, incluso si no se produce ninguna excepción. Sirve para no tener que repetir

código en el bloque try y en los bloques catch.

EJERCICIOS PROPUESTOS No.2

1.  Realice un programa que efectúe un intercambio de variables enteras, sin utilizar una variable temporal

2.  Diseñe un programa que permita validar una cédula de identidad a través del dígito verificador

3.  Diseñe una aplicación de consola que posea un menú con las siguientes opciones:

a.  Suma

b.  Resta

c.  Multiplicación

d.  División

e.  Salir

En dependencia de la selección que realice el usuario, se deberá solicitar dos números y realizar la

operación respectiva. Incluya bloques controladores de excepciones.

INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS

La programación orientada a objetos POO es un paradigma de programación dominante en estos días, al haber

sustituido a las técnicas estructuradas, basadas en procedimientos, que se desarrollaron a principios de la década

de 1970. Java es totalmente orientado a objetos. 

Un objeto es todo aquello que existe en la vida real. Los objetos tienen propiedades y métodos. Las propiedades

son las características o atributos de un objeto. Un objeto se construye a partir de una clase. Una clase es la plantillao plano a partir del cual se crean realmente los objetos.

El Encapsulamiento u Ocultamiento de Información permite ocultar la implementación; es decir no nos interesa la

implementación interna sino su funcionamiento. Los valores de las propiedades de un objeto se denominan estado.

No se puede acceder a los datos de forma directa. Se debe interactuar a través de métodos de acceso (set o asignar

y get u obtener). A continuación se detalla la creación de una clase

public class Persona

{

private String nombre;

public void setnombre(String pnombre)

{

nombre=pnombre;

}

public String getnombre()

{

Page 12: 1 Programacic3b3n en Java

5/12/2018 1 Programacic3b3n en Java - slidepdf.com

http://slidepdf.com/reader/full/1-programacic3b3n-en-java 12/17

Aplicaciones Empresariales en Java – Programación en Java

ESPOCH FIE - Ing. Jorge Huilca Palacios Página 12

return nombre;

}

public void imprimir()

{

System.out.println(“El Nombre es: ”+nombre);

}

}

Para la creación de un objeto se realiza de la siguiente manera:

Persona objeto = new Persona();

Para asignar los datos al objeto se utiliza el siguiente código:

objeto.setNombre(“Jorge Huilca”);

Para llamar al método imprimir, utilizamos el siguiente código:

objeto.imprimir();

Los métodos set y get se denominan métodos de modificación y acceso respectivamente.

El método imprimir, en este caso no recibe parámetros ni retorna algún valor.

Un ejemplo de un método que retorna parámetros sería:

public int calcularTamano()

{

return(nombre.length());

}

La llamada sería:

System.out.println(“El tamaño del nombre es: ”+ objeto.calcularTamano());

CONSTRUCTORES

Un constructor es un método especial de una clase que tiene las siguientes características:

  Un constructor tiene el mismo nombre de la clase

  La clase puede tener más de un constructor

  Un constructor suele tener cero, uno o más parámetros

  Un constructor carece de valor proporcionado

  Los constructores siempre se invocan con el operador new.

Page 13: 1 Programacic3b3n en Java

5/12/2018 1 Programacic3b3n en Java - slidepdf.com

http://slidepdf.com/reader/full/1-programacic3b3n-en-java 13/17

Aplicaciones Empresariales en Java – Programación en Java

ESPOCH FIE - Ing. Jorge Huilca Palacios Página 13

Una clase puede tener uno o varios constructores (sobrecarga de constructores). Lleva el mismo nombre de la clase

y se ejecuta al crear un objeto. El constructor solo se puede llamar a través del operador new.

public Persona()

{

//Código

}

public Persona(String valor)

{

//Código

}

Si no se da un valor explícito a un campos en el constructor, ese campo recibe automáticamente un valor

predeterminado: los números se ponen a 0, los boolean a false y las referencias a objetos a null. Es una mala

práctica de programación recurrir a esto.

Un constructor predeterminado o default es un constructor sin parámetros. Si se escribe una clase que carezca por

completo de constructores, se nos proporcionará un constructor predeterminado.

La palabra reservada this, se refiere al parámetro implícito del método o clase. Sin embargo se lo puede usar dentro

de un constructor para llamar a otro constructor.

this(nombre,valor)

Como Java posee un mecanismo de recolección automática de basura, no se necesita una liberación manual de la

memoria, por tanto no se admite destructores.

Sin embargo, hay objetos que utilizan recursos distintos de memoria como los ficheros, base de datos, sockets, etc.

En este caso es importante que ese recurso se libere y recicle cuando ya no es necesario.

A todas las clases se les puede añadir un método llamado finalize. Este método será invocado antes que el

recolector de basura descarte el objeto. Esta técnica no es 100% confiable. Es mejor crear métodos personalizados

de cierre de recurso que haga esta tarea.

METODOS PRIVADOS

Cuando implementamos una clase, hacemos privados todos los campos de datos porque los datos públicos son

peligrosos. La mayoría de los métodos son públicos, los métodos privados se utilizan en ciertas circunstancias. Para

esto se utiliza el modificador de acceso private.

CAMPOS FINALES

Los campos de una clase se pueden definir como final. Estos campos deben recibir valor inicial por única vez. Se

utiliza en campos de tipo primitivo o en clases inmutables.

private final int IVA=12;

CAMPOS Y MÉTODOS ESTÁTICOS

Campos Estáticos

Page 14: 1 Programacic3b3n en Java

5/12/2018 1 Programacic3b3n en Java - slidepdf.com

http://slidepdf.com/reader/full/1-programacic3b3n-en-java 14/17

Aplicaciones Empresariales en Java – Programación en Java

ESPOCH FIE - Ing. Jorge Huilca Palacios Página 14

Si se define a un campo como static, estará disponible desde cualquier lugar del proyecto. A los campos estáticos

también se los conoce como campos de clase.

public static int sueldo=240;

Para utilizar el campo lo haremos de la siguiente forma:

System.out.println(Clase.sueldo);

Constantes Estáticas

Los campos estáticos son poco frecuentes. Sin embargo las constantes static aparecen mayormente en las

aplicaciones.

public static final double PI=3.141592

Tal como se ha indicado, nunca es buena idea tener campos públicos, ya que todo el mundo puede modificarlos. Sin

embargo, las constantes públicas son correctas.

Métodos Estáticos

Los métodos estáticos no operan sobre objetos. Se utilizan en dos situaciones:

  Cuando un método no necesita acceder al estados de un objeto, porque todos los parámetros se

proporcionan de forma explícita.

  Cuando el método solo necesita acceder a campos static

EJERCICIOS PROPUESTOS No.3

1.  Realice el modelado del siguiente problema e implemente las clases, propiedades y métodos respectivos:

Un club de fútbol desea crear un sistema que permita gestionar la organización del club. El club está

compuesto por los socios, los jugadores, los directivos y el personal. Teniendo en cuenta que, por

ejemplo, un jugador podrá ser a la vez jugador y socio. De los jugadores se desea almacenar el nombre y

el sueldo, de los socios el número de socio, y de los directivos el puesto que ocupan. Una persona que

pertenezca al personal podrá ser técnico, administrativo o de limpieza.

También es necesario conocer qué directivo es actualmente el director del club. Los jugadores juegan

partidos, y en cada partido cada jugador puede recibir una prima (que puede ser diferente para cada

 jugador aunque se trate del mismo partido). El club también quiere controlar quién arbitra los partidos al

club. Para ello se desea guardar los árbitros para cada partido y a qué federación autonómica pertenecen.

Los árbitros podrán ser árbitros principales o jueces de línea. Es necesario tener en cuenta que en cada

partido sólo podrá arbitrar un solo árbitro por federación autonómica, aunque un mismo árbitro podrá

arbitrar varios partidos al club

HERENCIA

Se puede crear nuevas clases tomando como base clases ya existentes. Concepto de reutilización de código. La

herencia utiliza la palabra extends. Superclase, clase base o clase padre. Subclase, clase derivada o clase hija.

public class Padre

{

//Propiedades del Padre

//Métodos del Padre

}

Page 15: 1 Programacic3b3n en Java

5/12/2018 1 Programacic3b3n en Java - slidepdf.com

http://slidepdf.com/reader/full/1-programacic3b3n-en-java 15/17

Aplicaciones Empresariales en Java – Programación en Java

ESPOCH FIE - Ing. Jorge Huilca Palacios Página 15

public class Hijo extends Padre

{

//Propiedades del Hijo

//Métodos del Hijo

}

Los métodos generales deben ir en el padre. Los más específicos en los hijos. Es posible invalidar los métodos del

padre (Override - Sobreescritura). Se puede utilizar el constructor del padre con la palabra super. No se puede

eliminar propiedades y métodos heredados.

CLASES FINALES

En ocasiones es necesario impedir que un método sea invalidado. Se puede evitar la herencia utilizando la palabra

final. Este mecanismo asegura que no se pueda invalidar los métodos de la clase padre.

public final class Padre

{

//Propiedades de la clase final

//Métodos de la clase final

}

CLASES ABSTRACTAS

Algunas clases son muy generales que resulta innecesario crear objetos. Para bloquear la creación de instancias, se

utiliza la palabra abstract. Las clases abstractas deben tener propiedades y métodos concretos. Se puede crear

métodos abstractos. Estos no deben ser implementados. Toda clase que posea uno o más métodos abstractos,

tiene que declararse como abstracta. Actúan como reserva de espacio. Si no se implementa estos métodos en la

subclase, entonces es abstracta.

public abstract class Padre

{

//Propiedades de la clase abstracta

//Métodos de la clase abstracta

}

INTERFACES

Una característica adicional de la orientación a objetos es el uso de plantillas de implementación de clases, llamadas

contratos o interfaces. En las interfaces se define los métodos con sus respectivos parámetros pero no se

implementa. El código correspondiente al método se lo hará en la clase que quiera implementar la interfaz. Es decir

en la definición de la clase que quiera cumplir el contrato se deberá indicar que interfaz implementará. Esta clase

deberá implementar todo los métodos que correspondan al contrato.

Page 16: 1 Programacic3b3n en Java

5/12/2018 1 Programacic3b3n en Java - slidepdf.com

http://slidepdf.com/reader/full/1-programacic3b3n-en-java 16/17

Aplicaciones Empresariales en Java – Programación en Java

ESPOCH FIE - Ing. Jorge Huilca Palacios Página 16

public interface Animal

{

public void Dormir();

public int Comer(int cantidad);

}

public class Gato implements Animal

{

public void Dormir()

{

//Cuerpo del Programa Dormir

}

public int Comer(int cantidad)

{

//Cuerpo del Programa Comer

}

}

COLECCIONES

A menudo nos encontramos que necesitamos funciones para manipular datos más sofisticados que las que puede

ofrecer las matrices. Las matrices tienen longitud fija.

Las colecciones se encuentran dentro del paquete java.util, y nos permiten organizar mejor nuestros datos. Una

colección es un objeto que representa a un grupo de objetos. Contiene un marco de trabajo de colecciones, el

mismo es una arquitectura estándar de manipulación. Reemplazo de las Estructuras de Datos.

Existen distintos tipos de colecciones:

  Conjuntos (java.util.Set)

  Listas (java.util.List)

  Mapas (java.util.Map)

CONJUNTOS

Es la colección más simple. Es un grupo de objetos agrupados, sin ningún orden particular. Las clases de colección

que implementan esta interfaz son: HashSet y TreeSet

LISTAS

Page 17: 1 Programacic3b3n en Java

5/12/2018 1 Programacic3b3n en Java - slidepdf.com

http://slidepdf.com/reader/full/1-programacic3b3n-en-java 17/17

Aplicaciones Empresariales en Java – Programación en Java

ESPOCH FIE - Ing. Jorge Huilca Palacios Página 17

Es una colección en la que los objetos se organizan secuencialmente, con un principio y un final. Es una colección

ordenada. Una matriz es una lista fija. Las listas pueden aumentar y disminuir su tamaño libremente. Las listas

incluyen las pilas y colas. Las pilas son listas en las que los nuevos objetos se incluyen e eliminan al final de la lista

LIFO (last in first out). Las colas llevan un mecanismo FIFO (first in first out), es decir los nuevos objetos se anaden al

final de la lista, mientras que los objetos que tienen que eliminarse de la lista se toman siempre al principio de ésta.

Las clases de colección que implementan esta interfaz son: Vector, Stack, ArrayList y LinkedList.

MAPAS

Los objetos se almacenan de dos en dos. Uno de los objetos del par contiene la información que queremos

almacenar en la colección y el otro objeto se denomina keys. El valor de la clave únicamente identifica al par, de

forma muy parecida a cómo el índice de un elemento de una matriz únicamente identifica al elemento. A diferencia

de un índice, una clave no tiene por qué ser un número entero; puede ser cualquier tipo de objeto. No puede haber

claves repetidas en el mapa. Cuando queremos recuperar información almacenada en un par de objetos,

ubicaremos dicho par buscando el valor apropiado de la key. Las clases de colección que implementan esta interfaz

son: HashTable, TreeMap, HashMap y WeakHashMap. 

EJERCICIOS PROPUESTOS No.4

Realice el modelado del siguiente escenario e implemente orientado a objetos:

En una empresa existen tres tipos de funcionarios: Directivos, Empleados y Trabajadores. Los datos de los

funcionarios son: Cedula, Nombres, Apellidos, Dirección y Edad. Los funcionarios adicionalmente poseen el sueldo

básico definido por el gobierno nacional y que este puede variar. Los Directivos adicionalmente a su sueldo perciben

un bono de responsabilidad dependiendo de su jerarquía. Los Empleados se les pagan un valor fijo por cada carga

familiar, hasta 6 cargas en total. Los Trabajadores, reciben un valor fijo por cada año de antigüedad en la empresa.

Es necesario modelar el sistema tomando en cuenta criterios de orientación a objetos y calcular el sueldo total a

recibir mensualmente por el funcionario.