Anda di halaman 1dari 154

FUNDAMENTOS DE PROGRAMACIN

2011

Ing. Carlos E. Durand Flores

Introduccin a Java
Conceptos Bsicos

Que es Java ?
Java es un Lenguaje de Programacin Orientado a Objetos desarrollado por Sun Microsystems. Java es una Maquina Virtual (entorno de ejecucin) que puede ser integrada en los navegadores web (web browsers ejem: Netscape, Internet Explorer ) y en diversos Sistemas Operativos. Java es un conjunto de Clases, Libreras estandarizadas (paquetes) APIs, que permiten implementar diversas funcionalidades.

Que es la plataforma Java ?


La plataforma java es fundamentalmente una nueva forma de computacin, basada en el poder de las redes y la idea que el mismo software pueda ejecutarse en muchos y diferentes tipos de computadores y otros dispositivos (PDA, telfonos celulares, etc.) . Con la tecnologa Java, podemos usar las mismas aplicaciones en cualquier clase de maquina: una PC, una Macintosh, una computadora de red, o en tecnologas nuevas como los celulares con acceso a internet.

Caractersticas Principales
Sencillo Orientado a objetos Distribuido Interpretado Robusto Seguro Arquitectura neutra Portable Altas prestaciones Multithread (multihilo) Dinmico

La plataforma Java
La plataforma de Java tiene dos Componentes: Maquina Virtual de Java Interfaz de Programacin de Aplicaciones Java(API)

Java Virtual Machine


Java es compilado a byte-codes para ser ejecutado en la Java Virtual Machine (JVM). La Virtual Machine es el procesador sobre el cual el bytecode de Java se ejecuta. Este es un conjunto de instrucciones que el interprete maneja. La Virtual Machine es integrada dentro de otros ambientes, ejm: web browsers y sistemas operativos.

Java Virtual Machine


Proceso de Desarrollo de una aplicacin

Java Virtual Machine


Con la JVM una misma aplicacin es capaz de ejecutarse en mltiples plataformas

Java API
Est conformado por un conjunto de clases que nos permite obtener funcionalidades especficas en el desarrollo de nuestras aplicaciones. Organizada a travs de mdulos que son incrementales. Pueden ser una API estndar o extendidas.

Que puede hacer la tecnologa java?


El propsito general de Java es proveer una plataforma de software de alto nivel. Java ofrece las caractersticas siguientes:

Herramientas de Desarrollo. Herramientas para compilar, ejecutar, monitorear, depurar, y documentar aplicaciones. Interface de Programacin de Aplicaciones (API). Las APIs proporcionan las funcionalidades Bsicas de Java. Tecnologa de Despliegue. Java Proporciona Mecanismos para el despliegue de las aplicaciones a los usuarios finales. (Java Web Start, Java Plug-In) Kit de Herramientas para las GUI. Para la creacin de GUI sofisticadas se puede usar Swing y Java 2D. Libreras de Integracin. Se puede integrar libreras como JDBC API, JNDI API, RMI API, etc.

Tipos de Archivo
java : es la extensin de los archivos fuente del lenguaje java, ejem. HelloWorldApp.java , MyApplet.java. class : el resultado de compilar un archivo fuente java es un archivo en byte-code con extensin class, ejem. HelloWorldApp.class, MyApplet.class. El comando usado para compilar los arhivos con extensin java es javac y para su ejecucin el comando java que vienen incluidos en el JDK (Java Development Kit) de Sun Microsystems. jar/zip : las clases desarrolladas en java suelen por lo general guardarse en estos tipos de archivos comprimidos.

Organizacin
Paquetes (Packages) : son un grupo o librera de clases desarrolladas en java que se utilizan para algo especfico. Las principales clases de java son las siguientes (incluidas en el JDK) : java.applet Desarrollo de Applets. java.awt Abstract Window Toolkit. java.awt.event Soporte y procesamiento de eventos. java.swing Soporte para componentes grficos de Java. java.swing.event Soporte y procesamiento de eventos para componentes swing. java.io Input/output streams. java.lang Clases fundamentales del lenguaje JAVA. java.net Soporte para networking. java.util Utilidades extras.

Organizacin
Clases : como JAVA es un lenguaje OO (Orientado a objetos) tipico su estructura esta basada en clases. Una clase es una plantilla que define las caractersticas de un objeto una vez que es instanciado. La herencia y el nivel de acceso entre clases son soportados por JAVA.

Organizacin
Mtodos : los mtodos en JAVA como en cualquier lenguaje orientado a objetos se utilizan para realizar alguna accin especfica, estos se definen dentro de la clase y asi como las clases tambin poseen niveles de acceso. Los mtodos pueden recibir parmetros y retornar algun valor.

Teora de Objetos.
Orientacin a Objetos

Orientacin a objetos

Conjunto de disciplinas que desarrollan y modelizan software que facilitan la construccin de sistemas a partir de componentes.

Fundamentos del modelado OO


Siempre que algo se construye, se realizan dibujos que describen su comportamiento y su apariencia. Los dibujos trabajan como una especificacin de cmo queremos que se vea el producto terminado.

Principios del SW OO
Abstraccin Encapsulamiento Principio cliente-servidor Jerarquas Polimorfismo Modularidad Persistencia

Principios del SW OO
Abstraccin  Representacin de las caractersticas esenciales de un objeto, as como de su comportamiento.  Programas = descripcin abstracta de un procedimiento del mundo real.

Principios del SW OO
Encapsulamiento  Propiedad que permite asegurar que el contenido de la informacin de un objeto est oculta al mundo exterior.  Es el proceso de ocultar los secretos de un objeto  Permite la divisin de un programa en mdulos.

Principios del SW OO
Encapsulamiento  La encapsulacin presenta dos ventajas bsicas: Se protegen los datos de accesos indebidos El acoplamiento entre las clases se disminuye Favorece la modularidad y el mantenimiento  Los atributos de una clase no deberan ser manipulables directamente por el resto de objetos

Principios del SW OO
Encapsulamiento  Los niveles de encapsulacin estn heredados de los niveles de C++: (-) Privado : es el ms fuerte. Esta parte es totalmente invisible (excepto para clases friends en terminologa C++). (#) Los atributos/operaciones protegidos estn visibles para las clases friends y para las clases derivadas de la original. (+) Los atributos/operaciones pblicos son visibles a otras clases (cuando se trata de atributos se est transgrediendo el principio de encapsulacin).

Principios del SW OO
Encapsulamiento

 Ejemplo:
Reglas de visibilidad Atributo pblico : Integer Atributo protegido : Integer Atributo privado : Integer "Operacin pblica"() "Operacin protegida"() "Operacin privada"()

Principios del SW OO
Cliente-servidor  Se basa en la interaccin de dos entidades: El cliente hace solicitudes al servidor para que este realice servicios.

La aplicacin reside en la maquina del usuario

Los datos residen en el servidor

Principios del SW OO
Jerarquas  Propiedad que permite una ordenacin de las abstracciones.  Existen 2 tipos:  Generalizacin / especializacin conocidas como herencia  Agregacin, permite el agrupamiento fsico de estructuras relacionadas lgicamente.

Principios del SW OO

Polimorfismo  Propiedad que indica la posibilidad que una entidad tome diversas formas  Posibilidad de desencadenar operaciones distintas en respuesta a un mismo mensaje

Principios del SW OO
Polimorfismo
Animal dormir()
Dormir() { }

Len dormir()
Dormir() { sobre el vientre }

Oso dormir()

Tigre dormir()

Dormir() { sobrela espalda }

Dormir() { en un rbol }

Principios del SW OO
Modularidad  Propiedad que permite subdividir una aplicacin en partes mas pequeas (mdulos)  Cada modulo es tan independiente como sea posible

Principios del SW OO
Persistencia  Capacidad de un objeto de trascender en el tiempo y espacio  Conserva su estado en almacenamiento permanente un sistema de

Clasificacin
 El mundo real puede ser visto desde abstracciones diferentes (subjetividad)  Mecanismos de abstraccin: Clasificacin / Instanciacin Composicin / Descomposicin Agrupacin / Individualizacin Especializacin / Generalizacin  La clasificacin es uno de los mecanismos de abstraccin ms utilizados.  Una abstraccin trata de mostrar las propiedades y comportamientos de un objeto que lo diferencia de otro.

Clases
 Modela una abstraccin definiendo propiedades y comportamientos para los objetos representados.  La clase define el mbito de definicin de un conjunto de objetos.  Cada objeto pertenece a una clase.  Los objetos se crean por instanciacin de las clases.

Clases
Propiedades : Atributos, variables. Comportamientos : Operaciones, mtodos. Contratos : Define qu servicios proporciona una clase. Implementacin : Define cmo se proporcionan los servicios en una clase.

Definicin de objeto
Ente real o conceptual que posea caractersticas y comportamiento propios, nicos e inconfundibles Es una instancia concreta de la abstraccin que representa la clase.

Juan Prez

Computador

Identidad de un objeto
Cada objeto tiene una identidad nica, incluso si su estado es idntico al de otro objeto.

Identificador de un objeto
Caractersticas del Identificador: nico y global Determinado en el momento de su creacin Es independiente de la localizacin fsica del objeto Es independiente de las propiedades del objeto

Caractersticas y Comportamiento
Caractersticas (atributos):  Nombre  Estatura  Edad Comportamiento (operacin):  Caminar  Hablar  Saltar

Comportamiento y Estado
Comportamiento Agrupa las competencias de un objeto, Conocido como OPERACIN Es consecuencia de un estmulo externo (mensaje) Ejemplo: Prender CPU Estado Representado por los valores de los atributos Ejemplo: Prendido, apagado

Identificando objetos
Imaginemos que tenemos estacionado en nuestra cochera un Audi - A8 6.0 450CV quattro color azul que corre hasta 250 km/h.
Marca = Audi Modelo = A8 6.0 450CV quattro Color = Azul Velocidad Mxima = 250 km/h

Cuando a las caractersticas del objeto le asignamos valores decimos que el objeto tiene estados.

Comunicacin
Sistema = Conjunto de objetos autnomos y concurrentes que trabajan de manera coordinada en la consecucin de un fin especifico.

Mensaje Unidad de comunicacin entre objetos Para que exista un comportamiento (Operacin) es necesario que exista un mensaje

Comunicacin

Objetos: UML
En UML, un objeto se representa por un rectngulo con un nombre subrayado
Otro objeto

Un objeto

Otro objeto ms

Asociaciones
Relaciones entre clases

Clases
Conjunto de objetos con caractersticas (atributos) y comportamientos (operaciones) similares.

Juan Arias DNI 07715221 Ate

Jos Lpez DNI 08816721 Lince

Mary Falcn DNI 05814423 San Borja

CLASE: Persona

Clases: Notacin Grfica


 Cada clase se representa en un rectngulo con tres compartimientos:
Nombre

de la clase. Estructura (atributos de la clase). Comportamiento (operaciones de la clase).


Motocicleta color cilindrada velocidad mxima arrancar() acelerar() frenar()

Representacin UML

Clases: ejemplo
Una Cuenta Corriente que posee como caracterstica Balance Puede realizar las siguientes operaciones Depositar Girar y Balance

Relaciones entre Clases


 Los enlaces entre de objetos pueden representarse entre las respectivas clases  Formas de relacin entre clases:
Asociacin,

Dependencia y Agregacin (vista como un caso particular de asociacin) Generalizacin/Especializacin  Las relaciones de Agregacin y Generalizacin forman jerarquas de clases

Asociacin
 La asociacin permite asociar objetos que colaboran entre si. Cabe destacar que no es una relacin fuerte, es decir, el tiempo de vida de un objeto no depende del otro.  Una asociacin es una abstraccin de la relacin existente en los enlaces entre los objetos
Univ. de Murcia : Universidad Un enlace Antonio : Estudiante

Universidad Una asociacin

Estudiante

Asociacin
 Especificacin de multiplicidad (mnima...mxima) 1 Uno y slo uno 0..1 Cero o uno M..N Desde M hasta N (enteros naturales) * Cero o muchos 0..* Cero o muchos 1..* Uno o muchos (al menos uno)  La multiplicidad mnima >= 1 establece una restriccin de existencia

Asociacin
Ejemplo  Un cliente puede tener asociadas muchas Ordenes de Compra, en cambio una orden de compra solo puede tener asociado un cliente.

Asociacin
Ejemplo:
marido casado-con
0..1 0..1

mujer

Persona nombre s.s.

emplea-a

Compaa trabaja-para nombre direccin *

jefe Administra

0.. 1

empleado

Dependencia
 La relacin de Dependencia o tambin conocida como de instanciacin representa un tipo de relacin muy particular, en la que una clase es instanciada (su instanciacin es dependiente de otro objeto/clase). Se denota por una flecha punteada.

Dependencia
 El uso ms particular de este tipo de relacin es para denotar la dependencia que tiene una clase de otra, como por ejemplo una aplicacin grafica que instancia una ventana (la creacin del Objeto Ventana esta condicionado a la instanciacin proveniente desde el objeto Aplicacin):

Agregacin
 La agregacin representa una relacin parte_de entre objetos  En UML se proporciona una escasa caracterizacin de la agregacin  Puede ser caracterizada con precisin determinando las relaciones de comportamiento y estructura que existen entre el objeto agregado y cada uno de sus objetos componentes

Agregacin
Para modelar objetos complejos, no bastan los tipos de datos bsicos que proveen los lenguajes (enteros, reales y cadena de caracteres). Cuando se requiere componer objetos que son instancias de clases definidas por el desarrollador de la aplicacin, tenemos dos posibilidades:
Por

Valor. (Composicin) Por Referencia. (Agregacin)

Agregacin
Por Valor: Es un tipo de relacin esttica, en donde el tiempo de vida del objeto incluido esta condicionado por el tiempo de vida del que lo incluye. Este tipo de relacin es comnmente llamada Composicin (el Objeto base se construye a partir del objeto incluido, es decir, es "parte/todo"). Por Referencia: Es un tipo de relacin dinmica, en donde el tiempo de vida del objeto incluido es independiente del que lo incluye. Este tipo de relacin es comnmente llamada Agregacin (el objeto base utiliza al incluido para su funcionamiento).

Agregacin: Ejemplo
Un Almacn posee Clientes y Cuentas, cuando se destruye el Objeto Almacn tambin son destruidos los objetos Cuenta asociados, en cambio no son afectados los objetos Cliente asociados. La composicin se destaca por un rombo relleno. La agregacin se destaca por un rombo transparente.

Agregacin: Ejemplo
Window scrollbar[2] : Slider title : Header body : Panel

Window
1 1 1

scrollbar
2

title 1 Header

body

Slider

Panel

Herencia
 Es un concepto que determina que una clase, que en adelante llamaremos subclase, puede heredar (extenderse) de una nica clase principal, a la que llamaremos superclase, recibiendo las variables y mtodos visibles de la Superclase (public y protected).  El concepto de herencia es la verdadera base de la OOP, el cual permite la reutilizacin de cdigo de forma natural.

Herencia

Generalizacin
 Permite gestionar la complejidad mediante un ordenamiento taxonmico de clases  Se obtiene usando los mecanismos de abstraccin de Generalizacin y/o Especializacin  La Generalizacin consiste en factorizar las propiedades comunes de un conjunto de clases en una clase ms general

Generalizacin
 Nombres usados: clase padre - clase hija. Otros nombres: superclase - subclase, clase base - clase derivada  Las subclases heredan propiedades de sus clases padre, es decir, atributos y operaciones (y asociaciones) de la clase padre estn disponibles en sus clases hijas

Generalizacin
Vehculo

Veihculo Terrestre

Vehculo Areo

Coche

Camin

Avin

Helicptero

Generalizacin
 La especializacin es una tcnica muy eficaz para la extensin y reutilizacin
Coche

Funcionando

Est ropeado

 Restricciones predefinidas en UML: disjunta - no disjunta total (completa) - parcial (incompleta)

... Generalizacin
 La nocin de clase est prxima a la de conjunto  Dada una clase, podemos ver el conjunto relativo a las instancias que posee o bien relativo a las propiedades de la clase  Generalizacin y especializacin expresan relaciones de inclusin entre conjuntos

... Generalizacin
 Particionamiento del espacio de objetos => Clasificacin Esttica  Particionamiento del espacio de estados de los objetos => Clasificacin Dinmica  En ambos casos se recomienda considerar generalizaciones/especializaciones disjuntas

... Generalizacin
 Un ejemplo de Clasificacin Esttica:
Ve hcu lo Areo

{ esttica }

Avin

Helicptero

... Generalizacin
 Un ejemplo de Clasificacin Dinmica:
Coche
{ dinmica }

Funcionando

Est ropeado

... Generalizacin
 Ejemplo: varias especializaciones a partir de la misma clase padre, usando discriminadores:
Comercial Militar

uso Vehculo Areo

estructura

Avin

Helicptero

Clasificacin Mltiple (herencia mltiple)


 Se presenta cuando una subclase tiene ms de una superclase  La herencia mltiple debe manejarse con precaucin. Algunos problemas son el conflicto de nombre y el conflicto de precedencia  Se recomienda un uso restringido y disciplinado de la herencia. Java y Ada 95 simplemente no ofrecen herencia mltiple

Herencia Mltiple
 Uso disciplinado de la herencia mltiple: clasificaciones disjuntas con clases padre en hojas de jerarquas alternativas
Bpedo nro patas Con Pelos cubertura Con Plumas cobertura cobertura Con Escamas Animal comida Carnvoro comida Cuadrpedo nro patas Herbvoro

Conejo

Diagrama de Clases y Objetos


 Diagrama de Clases y Diagramas de Objetos pertenecen a dos vistas complementarias del modelo  Un Diagrama de Clases muestra la abstraccin de una parte del dominio  Un Diagrama de Objetos representa una situacin concreta del dominio  Las clases abstractas no son instanciadas

Netbeans
Interfaz de Desarrollo

www.netbeans.org

Qu es NetBeans?
NetBeans es un proyecto exitoso de cdigo abierto con una gran base de usuarios y una comunidad en constante crecimiento. Sun MicroSystems fund el proyecto de cdigo abierto NetBeans en junio 2000 y contina siendo el patrocinador principal de los proyectos. Al da de hoy hay disponibles dos productos: el NetBeans IDE y NetBeans Platform.

NetBeans IDE
Es una herramienta para que los programadores puedan escribir, compilar, depurar y ejecutar programas. Es un entorno de desarrollo y est escrito en Java pero puede servir para cualquier otro lenguaje de programacin. Existe adems un nmero importante de mdulos para extender el NetBeans IDE. Es un producto libre y gratuito sin restricciones de uso.

NetBeans IDE

Partes del IDE Netbeans


Panel de Proyecto. Panel de Archivos. Panel de Servicios. Editor de Cdigo. Navegador. Ventana de Salida (output). Paleta de Controles (Swing, Awt, Html). Panel de Propiedades.

Sintaxis y Referencia
Estructura del Lenguaje Java

Conceptos Bsicos de la POO


Objeto: Son usados para modelar los objetos del mundo real que tienen un estado y un comportamiento. Clase: Es un Plano o prototipo de cmo los objetos sern creados. Herencia: Provee un poderoso y natural mecanismo para reutilizar, organizar y estructurar el Software. Interface: Es el contrato entre una clase y el mundo exterior, para cumplir los acuerdos del contrato. Paquete: Es un nombre de espacio para organizar clases e interfaces de una manera lgica.

Estndares de Programacin
Paquetes: Nombre nico se escribe todo en minsculas. Clases: Nombres sustantivos siendo la primera letra de cada palabra con Mayscula. Interfaces: Similar a de las Clases. Mtodos: Debe comenzar con un verbo en minscula y la primera letra de las siguientes palabras (diferentes al verbo) con mayscula. Variables: La primera letra con minscula, las palabras internas empiezan con mayscula. Constantes: Deben estar todas con maysculas y las palabras separadas por el carcter de subrayado _.

Identificadores
Caracteres Unicode : 16 bits El primer carcter no puede ser un dgito Pueden empezar con un subrayado o un dlar ( _ ) ( $ ) Java es Case-Sensitive : se distinguen mayscula de minsculas Pueden ser de cualquier longitud. No puede ser una palabra reservada o (true, false,null)

Clases
Nombramiento (Estndar) Usar el sustantivo singular Los nombres de la clase deben empezar con maysculas No debe usarse el subrayado Los nombres compuestos se ponen juntos y la primera palabra se escribir con mayscula Ejemplo: Alumno, SistemaDePago

Modificadores de Acceso
Definen el grado de comunicacin y visibilidad de los atributos y mtodos de ellos con el entorno, estos son: public (+): Indica que el atributo ser visible tanto dentro como fuera de la clase, es decir, es accsesible desde todos lados sin restricciones. private (-): Indica que el atributo slo ser accesible desde dentro de la clase que lo declara (slo sus mtodos lo pueden acceder).

Clases : Niveles de Acceso


protected

(#): Indica que el atributo es accesible desde cualquier subclase (tanto dentro como fuera del paquete) y a todo mtodo dentro del paquete. Package: El campo es accesible a todos los mtodos dentro del paquete. Es el acceso por defecto.
NIVELES DE ACCESO CLASE private X protected X public X default X SUBCLASE PAQUETE X X X X X OTROS

Clases : Sintaxis
Sintaxis : [modificador*] class <nombreDeClase> [extends <nombreDeClase>] [implements <nombreDeInterface*>] { ... } Modificadores : Abstract: No se pueden instanciar objetos. Solamente una clase abstracta puede declarar mtodos abstractos. Final: No permite subclases. Public: Acceso general.

Variables
Sintaxis :
[modificador] <nombreDeTipo> <nombreDeVariable> [= <inicializador>]; Adicionalmente a las declaraciones de Acceso, las variables pueden ser declaradas como:
Static .Final .Variable de clase.(Solo existe un copia por clase con acceso compartido entre todas las instancias de la misma.) Declara la variable como constante.

En caso de que sea una variable de tipo primitivo indica que el valor no podr ser cambiado. Para objetos, la referencia del mismo no podr apuntar a un nuevo objeto, pero el objeto aun es capaz de ser modificado.

Tipos de Datos Primitivos

Tipos Primitivos :
       

Byte Short Int Long Char Float Double Boolean

int i = 102 i 102

Declarar un variable de tipo primitiva reserva de por si el espacio de memoria necesario.

Tipos de Datos Primitivos


Tipos
Byte Short Int Long Char Float Double Boolean

Precisin
8 bits 16 bits 32 bits 64 bits 16 bits 32 bits 64 bits -

Valor Por Defecto


0 0 0 0 \u0000 +0.0f +0.0d false

De no asignarse un valor de inicio, el compilador por defecto asignar uno.

Tipo de Datos Objeto


Declarar un variable de tipo objeto no crea un objeto, solo una referencia al mismo. La palabra reservada new hace que el sistema cree, instancie y reserve la memoria para el nuevo objeto.

String cadena = new String (Java) String cadena


Java

Ambito de las Variables


Variables Miembro: Puede ser declarada en cualquier lugar de una clase, menos dentro de un mtodo. Variable Locales: Aquellas declaradas dentro de un mtodo o dentro de un bloque de cdigo. Parmetros de Mtodos: Pasan valores entre mtodos. Manejadores de Excepciones: Similar al anterior, salvo que son parmetros de una excepcin. Las variables locales y las miembro pueden ser inicializadas cuando son declaradas: short tipodeAsiento = 0; int codigoCentroCosto = 100;

Ambito de las Variables

Mtodos
Sintaxis : [modificador*] <nombreDeTipo> <nombreDeMetodo> ([<args*>]) [throws <nombreDeExcepcion*>] { ... } | ; Adicionalmente a las declaraciones de Acceso, las variables pueden ser declaradas como: Static Mtodo de clase. No requiere de un objeto de la clase para su ejecucin. Solo tiene acceso a campos y Mtodos Static. Abstract No implementa cdigo dentro de si, sus subclases deben de implementarlo o declararse como abstact. Final No puede ser sobreescrito. Native Declara una referencia para un cdigo implementado fuera del java.

Constructores
Es un tipo especial de mtodo que se ejecuta al crear una nueva instancia de una clase. Sintaxis : [modificador*] <nombreDeClase> ([<args*>]) [throws <nombreDeExcepcion*>] {...} Si ningn constructor es creado, uno por defecto es elaborado por el compilador, sin argumentos y llamando al constructor por defecto de la superclase super(). Si se especifica un constructor no ya no se crea el constructor por defecto.

Constructores
Un constructor debe de tener el mismo nombre que la clase y no debe especificar un tipo de retorno, si es especificado, el compilador ya no lo reconoce como un constructor. Para toda clase definida , la primer instruccin de todos los constructores es una llamada a otro constructor. Esta llamada puede ser la invocacin por defecto de super() , o puede ser: Una invocacin a otro constructor presente en la clase: this(<parametros*>); Una invocacin a un constructor de la superclase: super(<parametros*>);

Expresiones y Bloques
Una expresin es una serie de variable, operadores y llamadas de mtodos (implementadas de acuerdo al lenguaje) que evala y da como resultado un nico valor.

Expresiones

int aux = 100; System.out.println(Mi cdigo es : + aux);

If (alumno.validarCodigo(iMiCodigo) { ................. ................. }

Bloque

Un bloque es una coleccin de sentencias encerradas entre llaves. ( {} )

Operadores
Operadores :
        

++ -+= -= *= /= %= && ||

incremento decremento adicin sustraccin multiplicacin divisin modulo AND Lgico OR Lgico

(a=a+b es equivalente a a+=b) (a=a-b es equivalente a a-=b ) (a=a*b es equivalente a a*=b ) (a=a/b es equivalente a a/=b ) (a=a*b es equivalente a a*=b )

Comentarios
Los comentarios de documentacin, colocados inmediatamente antes de una declaracin (de variable o funcin), indican que ese comentario ha de ser colocado en la documentacin que se genera automticamente cuando se utiliza la herramienta de Java, javadoc.

// comentarios para una sola lnea /* comentarios de una o ms lneas */ /** comentario de documentacin, de una o ms lneas */

Sentencias de Control de Flujo

TIPO DE SENTENCIA Loop Toma de Decisiones Manejo de Excepciones Branching

PALABRAS CLAVES while do - while for if - else switch - case try - catch - finally throw break continue label: return

while (condicin) { ............. ............. }

if { ............. } else { ............. }

for (inicio ; trmino ; incremento) { ............. ............. }

Sentencias de Control de Flujo


do { ............. ............. } while (condicin) ;
switch (variable) { case valor1 : sentencias case valor2 : sentencias break; case valor3 : sentencias break; ............. default : sentencias }

try { sentencias; ............. } catch (Excepcion e0) { sentencias; ............. } catch (Excepcion e1) { .............. } finally { sentencias; }

Estructura if - else
if (boolean) { ... { else if (boolean) { ... } else { ... } * Al contrario del C, en Java solo se puede evaluar una expresin booleana en una sentencia if.

Estructura switch
Switch (expresion) { case Costante1: ... break; case Constante2: ... break; . . . default: ... break; }

Estructura while y do-while


while (boolean) { ... } do { ... } while (boolean);
La expresin a evaluar debe de tener como resultado un valor de tipo boolean.

Estructura for
for ( expresion ; boolean ; expresion) { ... }
A diferencia del C, el Java permite inicializar la variable dentro de la sentencia for, por ejemplo: for (int x = 0; x < 20; x++) La variable x solamente ser valida dentro del cuerpo del bucle.

Paquetes
Un paquetes es un conjunto de clases e interfaces relacionadas que proporcionan proteccin y administracin en el acceso a ellas. Para declararlas se usa la palabra reservada package Esto se coloca al inicio de todo programa fuente. Para acceder a un paquete utilizamos la notacin del punto.

paquete1.paquete2.miClase;

Referencias
this Hace referencia al mismo objeto, se puede invocar a atributos o metodos de la clase. super Hace referencia al objeto padre, se puede invocar a atributos o metodos de la clase padre.

this.dato = datoParametro; super.unMetodo();

Herencia
Es la capacidad de crear una nueva clase a partir de otra. La clase creada puede utilizar las propiedades y los mtodos de la anterior, as como los propios que haya creado. La clase padre se denomina superclase y la hija, subclase. En Java la herencia es lineal (slo existe un superclase para una subclase) y se Utiliza la palabra clave extends. Se heredan los mtodos permitidos, a menos que se sobreescriba alguno.

Reglas de la Herencia: SubClase


Una clase puede sobrescribir un mtodo heredado pero no esconderlo. nicamente desde dentro de una clase se puede llamar a mtodos de su superclase usando la instruccin : super.nombre_del_metodo(); Los constructores no son heredados; pero, la clase puede implementar constructores equivalentes reenviado los parmetros respectivos con la instruccin: super(parm1,parm2); en la primer lnea del Constructor.

Reglas de la Herencia: SuperClase


Una clase puede prevenir la herencia de si misma o de sus mtodos empleando la palabra reservada final en su declaracin. Ejemplo : final String Velocidad(float d, double t) { ... } Una clase puede forzar la sobre escritura de si misma y de sus mtodos empleando la palabra reservada abstract en sus declaraciones. En este caso no es necesario incluir cdigo. Ejemplo : abstract String Velocidad(float d, double t) { } nicamente una clase de tipo abstract puede contener mtodos de tipo abstract.

Interfaces (Multiherencia)
Una interfaz es simplemente un archivo que establece un tipo de objeto y los mtodos necesarios para su empleo, sin implementarlos. Sintaxis : [modificador*] <nombreDeInterfaz> [extends <nombreDeInterfaz>] {...} Cuando una clase implementa una interfaz necesariamente debe implementar los mtodos establecidos en ella.

Sobreescritura de Mtodos
Para sobrescribir un mtodo debemos de tener en cuenta algunas condiciones:

Debemos revisar el nivel de accesibilidad para comprobar que podemos sobreescribir el mtodo. El mtodo debe tener la misma firma que el de la clase padre. Desde el mtodo hijo podemos ejecutar el mtodo padre si es necesario.

Principio de Sustitucin
El Principio de Sustitucin de Liskow afirma que: Debe ser posible utilizar cualquier objeto instancia de una subclase en el lugar de cualquier objeto instancia de su superclase sin que la semntica del programa escrito en los trminos de la superclase se vea afectado.

Principio de Sustitucin
Dado que los programadores pueden introducir cdigo en las subclases redefiniendo las operaciones, es posible introducir involuntaria-mente incoherencias que violen el principio de sustitucin El polimorfismo que veremos a continuacin no debera implementarse sin este principio

Polimorfismo
El trmino polimorfismo se refiere a que una caracterstica de una clase puede tomar varias formas El polimorfismo representa en nuestro caso la posibilidad de desencadenar operaciones distintas en respuesta a un mismo mensaje Cada subclase hereda las operaciones pero tiene la posibilidad de modificar localmente el comportamiento de estas operaciones

Polimorfismo
Ejemplo: todo animal duerme, pero cada clase lo hace de forma distinta

Animal dormir()

?
dormir

?
Len Oso Tigre

Polimorfismo
Animal dormir()
Dormir() { }

Len dormir()
Dormir() { sobre el vientre }

Oso dormir()

Tigre dormir()

Dormir() { sobrela espalda }

Dormir() { en un rbol }

Polimorfismo
La bsqueda automtica del cdigo que en cada momento se va a ejecutar es fruto del enlace dinmico El cumplimiento del Principio de Sustitucin permite obtener un comportamiento y diseo coherente

Sobrecarga y Sobreescritura
Sobrecarga(Overloading) .

Mltiples mtodos declarados en la misma clase con el mismo nombre, pero con diferente tipo y numero de argumentos. Ejemplo :
 

void g(int k) .. void g(String c, int f) ..

Sobrescritura(Overriding) .

Un mtodo declarado en una subclase con el mismo nombre y tipo de argumentos que su superclase

Estructura de Datos: Cadenas


Se encuentran dentro del paquete : java.lang Dos clases : String y StringBuffer Las creamos con el operador : new Concatenamos dos cadenas con el operador : + String miCadena = new String(); String miCadena2 = HOLA; String miCadena3 = new String(HOLA) Mtodos principales : length charAt(posicion) indexOf(carcter) lastIndexOf(carcter) substring valueOf(valor)

Estructura de Datos: Arreglo


Un arreglo es una estructura de datos que contiene elementos de un mismo tipo de dato. La longitud del arreglo debe ser especificada al momento de la creacin Son de longitud fija. <tipo_de_dato>[ ] miArreglo; miArreglo = new <tipo_de_dato>[longitud]; Tambin : <tipo_de_dato>[ ] miArreglo = new <tipo_de_dato>[longitud]; Tambin tenemos arreglos en tiempo de compilacin como : int[] posicionesFijas = {0,0,0,0,0,0,0,0}; Accesamos al arreglo con : miVariable = posicionesFijas[ndice]; El tamao del arreglo lo obtenemos de : posicionesFijas.length;

Estructura de Datos: Vector


El vector es una derivacin del arreglo, salvo que guarda objetos en vez de datos y es dinmico en cuanto a su tamao. Se obtiene de la clase : java.til.Vector;

Excepciones y su gestin
Una excepcin es un objeto que avisa que ha ocurrido alguna condicin inusual. Java tiene muchos objetos de excepcin predefinidos y tambin podemos crear los nuestros propios para gestionar personalizadamente su tratamiento. Para utilizar excepciones, tenemos que hacer cuatro cosas: Intentar: crear un bloque alrededor de la instruccin donde puedan ocurrir excepciones y precederlas con la palabra clave try Capturar: colocar a continuacin de la instruccin try otro bloque precedido por la palabra catch

Excepciones y su gestin
Lanzar: si no se trata la excepcin, sta pasar automticamente al mtodo llamador; si la capturamos y la tratamos parcialmente, podemos de todas formas pasarla con una instruccin throw. Declarar: mencionar en la declaracin del mtodo qu excepciones se devolvern al mtodo llamador. try{ }catch( ){ }finally{ }

Excepciones - Ejemplo
public void leeArchivo(String nombre) throws IOException { BufferedReader fin = new BufferedReader(new FileReader(nombre)); try { while(true) { cadena = fin.readLine(); System.out.println(cadena); } } catch (EOFException e) { System.out.println("Fin del archivo"); } }

Aserciones
Una asercin es una instruccin que contiene una expresin booleana de la que el programador sabe que en un momento dado de la ejecucin del programa este debe ser verdadero. Su uso esta centrado en la fase de desarrollo y con ellos podemos verificar que el programa se ejecuta dentro de los lmites que el programador le marca reduciendo la posibilidad de errores. Para declarar un aserto en una clase Java, se usa la palabra clave assert: assert Expresion1; assert Expresin1:Expresin2;

Aserciones
En cualquiera de los dos casos Expresin1 tiene que ser una expresin booleana o se producir un error de compilacin. Cuando se evala un aserto que solo tenga Expresin1, se comprueba la veracidad de la expresin y si es verdadera se contina la ejecucin del programa, pero si es falsa, se lanza una excepcin de tipo AssertionError. Si el aserto contiene adems una Expresin2 y Expresin1 es falsa, se evala Expresion2 y se le pasa como parmetro al constructor del AssertionError (Si Expresion1 se evala como cierto, la segunda expresin no se evala). Para usar en Netbeans las Aserciones se debe especificar su uso en Propiedades del Proyecto, Categora Run en la opcin: VM Options: -ea

Qu es Deprecated?.
Deprecated es un warning diciendo que el soporte de esos mtodos ser retirado del ncleo del JVM, y que existen clases mas apropiadas, o nuevas formas de realizar la labor deseada. A pesar de ello, el fuente java es pre-compilado a un class y aun es posible ejecutarlo. El Java recibe modificaciones constantemente; nuevas clases, nuevas interfaces, nuevos mtodos mas verstiles, son desarrollados y publicados frecuentemente, as como libreras son anexadas al sistema ( caso SWING).

Base de Datos
Arquitectura de Software Escalable

Agenda

JDBC. Drivers de terceros. Mantenimientos y consultas. Cursores y Procedimientos Almacenados.

Objetivos

Reconocer los objetos para trabajar con bases de datos. Desarrollar aplicaciones que trabajen con bases de datos.

JDBC
Existen 4 formas de usar JDBC para conexin con la BD: El puente JDBC-ODBC (ODBC de Microsoft) Driver de Java parcialmente nativo (Drivers Nativos) Driver JDBC de Java puro ( Conexin directa) Driver de protocolo de Java puro ( Driver en Java)

El puente JDBC-ODBC

Ejemplo de Conexin a una BD

Drivers de terceros
http://developers.sun.com/product/jdbc/drivers

Manejando datos en Java


Connection cn = new ConectaDB().getConnection(); Ejecutar sentencia: Statement st = cn.createStatement(); st.execute(sentencia a ejecutar); Recuperar datos: Statement st = cn.createStatement(); ResultSet rs = st.executeQuery(Query); while (rs.next()) rs.getString(1);

Mantenimientos y consultas (SQL)


INSERT INTO NombreDeTabla(ColumnasDeTabla) VALUES(DatosDeColumnas) UPDATE NombreDeTabla SET Columna1= Expresin , Columna2= Expresin .... WHERE CondicinDeBsqueda DELETE FROM NombreDeTabla WHERE CondicinDeBsqueda

Procedimientos almacenados
PreparedStatement ps = cn.prepareStatement(Select * from alumno where codigo=?); ps.setString(1, 123); ResultSet rs = ps.executeQuery();

Cursores y SP
createStatement(int resultSetType, int resultSetConcurrency); ResultSet.TYPE_FORWARD_ONLY ResultSet.TYPE_SCROLL_INSENSITIVE ResultSet.TYPE_SCROLL_SENSITIVE

Procedimientos almacenados
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet uprs = stmt.executeQuery("SELECT * FROM COFFEES"); //Insertando un registro uprs.moveToInsertRow(); uprs.updateString("COF_NAME", "Kona"); uprs.updateInt("SUP_ID", 150); uprs.updateFloat("PRICE", 10.99); uprs.insertRow();

Procedimientos almacenados
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); ResultSet uprs = stmt.executeQuery("SELECT * FROM COFFEES"); //Actualizando un registro uprs.last(); uprs.updateFloat("PRICE", 10.99); uprs.updateRow();

Procedimientos almacenados
Create Procedure sp_Promedio @alumno varchar(30), @promedio real Output As Declare @suma real Select @suma= (Select nota1+nota2+nota3 From notas Where alumno=@alumno) Select @promedio= @suma/3

Procedimientos almacenados
DELIMITER // CREATE PROCEDURE GetOfficeByCountry (IN countryName VARCHAR(255)) BEGIN SELECT city, phone FROM offices WHERE country = countryName; END // DELIMITER ;

Procedimientos almacenados
DELIMITER $$ CREATE PROCEDURE CountOrderByStatus ( IN orderStatus VARCHAR(25), OUT total INT) BEGIN SELECT count(orderNumber) INTO total FROM orders WHERE status = orderStatus; END$$ DELIMITER ;

Procedimientos almacenados
Statement st = cn.createStatement(); ResultSet rs = st.executeQuery({call sp_listaAlumnos}); -------------------------------------------------------------------------CallableStatement cs = cn.prepareCall({call sp_promedio(?,?)}); cs.setString(1, codigo); cs.registerOutParameter(2, java.sql.Types.DOUBLE); cs.execute(); double pro = cs.getDouble(2);

Aplicaciones en Capas
Arquitectura de Software Escalable

Capas en Aplicaciones
Nuevas plataformas de hardware para clientes y servidores a menos costo. El avance de las tecnologas de redes. Centralizacin de Procesos en Servidores Especializados. Automatizacin de las empresas.

Capas en Aplicaciones
UNA CAPA Un solo programa se encarga de generar desde la interfaz grafica, pasando por el proceso de la informacin y el control de su almacenamiento. Un programa hecho en C que lea los datos de un archivo de texto los ordene y los muestre por pantalla.

Capas en Aplicaciones
DOS CAPAS El objetivo es facilitar el trabajo de las PC Clientes y centralizar ciertos procesos, este esquema podra aumenta el trafico de la red si se generan mltiples peticiones Un sistema Visual Basic que se conecta a una Base de Datos Oracle

Capas en Aplicaciones
Aplicacin Aplicacin

DB Una Capa Dos Capas

Capas en Aplicaciones
TRES CAPAS La aplicacin se divide en tres capas lgicas distintas, cada una de estas con una interfaces perfectamente definidas, comnmente se definen de la siguiente manera: - Presentacin - Lgica - Datos

Capas en Aplicaciones
Interfaz de Usuario

Tres Capas

Lgica de Aplicacin

DB

Documentos XML

Capas en Aplicaciones
N CAPAS En una arquitectura de N niveles, la lgica del negocio esta lgicamente dividida por funciones (no necesariamente divisiones fsicas). No hay un modo preciso para definir las capas, el arquitecto de software las definir de acuerdo al requerimiento.

Capas en Aplicaciones
Interfaz de Usuario

N Capas

Generador de Presentacin

Lgica de Aplicacin

Acceso a Datos

DB

Documentos XML

Gracias

Anda mungkin juga menyukai