Professional Documents
Culture Documents
AGENDA
Informacin del Curso. Java, El Lenguaje. J2SDK, Java 2 Standard Development Kit. Estructuras de Datos Bsicas en Java. Control de Flujo en Java. Paradigma Orientado a Objetos.
Competencia
Competencia del Modulo: El participante obtendr las bases del lenguaje de programacin Orientado a Objetos en busca de fomentar la capacidad abstraccin del alumno y enfocarla a la solucin de problemas. Competencia del Diplomado: Este curso provee de conocimientos en el lenguaje de programacin Java para la construccin de aplicaciones, tanto de escritorio como Web. Busca que el alumno sea capaz de desarrollarlas empleando tcnicas de programacin orientadas a objetos y componentes, que integren Interfaces de Usuario y Bases de Datos, y pueda servir de sustento para las materias de desarrollo de aplicaciones.
Objetivos
Proyecto Final del Modulo: El participante desarrollar una aplicacin en java sencilla aplicando los conocimientos en las sentencias de control bsicas y manejos de errores. Proyecto Integrador del Diplomado: El participante desarrollara una aplicacin real que permita ofrecer una solucin objetiva y favorable a una empresa, utilizando los conocimientos adquiridos en este diplomado.
2.
2 hrs. presnciales
Disear soluciones a problemas basadas en el lenguaje de programacin Java, donde se utilicen operaciones entre tipos nativos. 4 hrs. Presnciales 10 hrs. virtuales Disear soluciones a problemas, basadas en el lenguaje de programacin Java, donde se utilicen sentencias de control e iteraciones. Elaborar cdigo fuente en Java, que implemente el diseo a la solucin de problemas. Familiarizacin con el Lenguaje de Programacin Java para la codificacin del proyecto final.
Ejemplos de Abstraccin, Modularidad y Encapsulacin. Ejemplos de Clase y Objetos. Crear el modelo de dos problemas bsicos de clases, objetos, atributos y mtodos. Crear el modelo de dos problemas empleando todos los conceptos del paradigma. Base terica para la codificacin del proyecto final.
Java, el lenguaje.
Java, El Lenguaje.
Temas a Tratar
Introduccin. Orgenes del Lenguaje.
Evolucin de J2SDK.
Filosofa de Java. Caractersticas de Java. Plataforma de Java. Java frente a los dems lenguajes.
Java, El Lenguaje.
Introduccin
Java es un lenguaje de programacin orientado a objetos desarrollado por Sun Microsystems a principios de los aos 1990. Toma mucha de su Sintaxis de C y C++. Posee un diseo de objetos ms simple. Fue creado por el Green Team, un equipo compuesto por 13 personas a cargo de James Gosling La promesa del lenguaje era Write Once, Run Anywhere con el objetivo de hacer funcinar un lenguaje independiente de la plataforma con un entorno de ejecucin ligero (Java Virtual Machine).
Java, El Lenguaje.
Java, El Lenguaje.
Evolucin de J2SDK
Evolucin de J2SDK
Evolucin de J2SDK
Evolucin de J2SDK
Java, El Lenguaje.
Filosofa de Java
El lenguaje Java se cre con cinco objetivos principales: Debera usar la metodologa de la programacin orientada a objetos. Debera permitir la ejecucin de un mismo programa en mltiples sistemas operativos. Debera incluir por defecto soporte para trabajo en red. Debera disearse para ejecutar cdigo en sistemas remotos de forma segura. Debera ser fcil de usar y tomar lo mejor de otros lenguajes orientados a objetos, como C++.
Diplomado de Programacin en Java Modulo I - Fundamentos del Lenguaje Java
Java, El Lenguaje.
Java, El Lenguaje.
Sencillo
Basado en C++, pero se eliminaron sus complejidades. No soporta tipos de datos: Struct, Union y Puntero. No soporta typedef, ni #define. No permite sobre carga de operadores. No soporta herencia multiple. Posee una clase string, en vez del array tipo char[ ] finalizado con nulo. Cuenta con un sistema automtico para asignar y liberar memoria.
Java, El Lenguaje.
Orientado a Objeto
Posiblemente sea el lenguaje ms orientado a objetos de todos los existentes; en Java todo, a excepcin de los tipos fundamentales de variables (int, char, long...) es un objeto. Es un lenguaje para desarrollar software Orientado a Objetos. Implementa los siguientes conceptos Orinetados a Objetos: Herencia. Encapsulacin. Abstraccin. Reutilizacin Entre otros
Java, El Lenguaje.
Java, El Lenguaje.
Seguro
Por su naturaleza distribuida, el tema de la seguridad es muy crtico. Existe tecnologa de firma digital para confiar en un determinado cdigo java. A su vez, existen polticas de seguridad para controlar de una manera mas precisa que puede o no puede hacer.
Java, El Lenguaje.
Dinmico
El cdigo C++, a menudo requiere una recompilacin completa si cambia una clase. Java emplea un mtodo de interfaces para evitar estas dependencia y recompilaciones. Adems, Java permite la Indireccin.
Java, El Lenguaje.
Distribuido
Esta diseado para trabajar en un entorno conectado en red. Cuenta con una amplia comunicarse mediante: TCP IP. HTTP. FTP. Etc.. biblioteca de clases para
Java, El Lenguaje.
Robusto
Un software robusto es aquel que no se interrumpe fcilmente a consecuencia de fallos. Un lenguaje de estas caractersticas restricciones a la hora de programar. suele tener mas
No permite sobreescribir memoria y corromper otros datos mediante punteros. Facilita el manejo de excepciones.
Java, El Lenguaje.
Arquitectura Neutra
Los Bytecode son interpretados en cualquier plataforma donde exista una JVM. El uso de estndares como UNICODE, IEEE 754, etc, permite obtener los mismo resultados en todas las plataformas.
Java, El Lenguaje.
Multihilo
Soporta la ejecucin de varias tareas a la vez. Posee una serie de clases que facilita su utilizacin. Tambin conocido con el trmino en castellano Multihilo.
Java, El Lenguaje.
Portable
En Java no hay aspectos dependientes de la implementacin, todas las implementaciones de Java siguen los mismos estndares en cuanto a tamao y almacenamiento de los datos. Esto no ocurre as en C++, por ejemplo. En ste un entero, por ejemplo, puede tener un tamao de 16, 32 o ms bits, siendo lo nica limitacin que el entero sea mayor que un short y menor que un long int. As mismo C++ bajo UNIX almacena los datos en formato little endian, mientras que bajo Windows lo hace en big endian. Java lo hace siempre en little edian para evitar confusiones.
Java, El Lenguaje.
Altas Prestaciones
Existen compiladores JIT (Just In Time), que compilan en el momento de la ejecucin. Apartir de la JVM 1.2.2, se produjo un nuevo JIT llamado HotSpot. Apesar de todo, existe algun compilador Real de Java (Perdemos la portabilidad y ganamos rendimiento), se encuentra en desuso.
Java, El Lenguaje.
Plataforma de Java
Una plataforma es el entorno Hardware y/o Software donde se ejecuta un programa. Ejemplo: - Plataforma RISC, Intel, Sparc... - Plataforma Win32, Linux, AIX, Solaris, HP-UX, Z/OS - Plataformas IBM, Sun, HP, Microsoft... JAVA es una plataforma solo Software que se ejecuta en una plataforma Hardware / Software, la cual tiene dos componentes: - La Maquina Virtual JAVA (JVM), es el Intrprete de JAVA. - La Interfaz de Programacin de Aplicaciones (API), es un conjunto de clases ya desarrolladas que ofrecen un gran abanico de posibilidades al programador.
Diplomado de Programacin en Java Modulo I - Fundamentos del Lenguaje Java
Java, El Lenguaje.
Plataforma de Java
JAVA es una plataforma solo Software que se ejecuta en una plataforma Hardware / Software, la cual tiene dos componentes: - La Mquina Virtual JAVA (JVM), es el Intrprete de JAVA. - La Interfaz de Programacin de Aplicaciones (API), es un conjunto de clases ya desarrolladas que ofrecen un gran abanico de posibilidades al programador.
Java, El Lenguaje.
Plataforma de Java
Existen distintas ediciones de la plataforma JAVA: - J2ME Java 2 Micro Edition. - J2SE Java 2 Standard Edition. - J2EE Java 2 Enterprise Edition.
Optional Packages Optional Packages Java 2 TM Platform, Standard Edition (J2SE TM Platform) Java 2 TM Platform, Enterprise Edition (J2EE TM Platform)
JRE
CDC
CLDC
Java, El Lenguaje.
Plataforma de Java
Temas a Tratar
J2SDK. Instalacin de J2SDK. Configuracin de J2SDK. Como esta Integrado?. Que Incluye el Software?. JDK vs JRE.
J2SDK
Es el entorno de desarrollo oficial de Sun Mycrosystem. Descargable de forma gratuita de: gratuita - http://java.sun.com/javase/downloads/index.jsp
Disponible para multiples plataforma: - Windows (9x, Me, 2k,XP); Linux; Mac/OS; OS/2; Solaris; Etc.
Instalacin de J2SDK
1
Instalacin de J2SDK
4
Instalacin de J2SDK
7
Configuracin de J2SDK
3
Configuracin de J2SDK
6 7
Configuracin de J2SDK
Configuracin de J2SDK
10
JDK vs JRE
JDK: Java Development Kit JRE: Java Runtime Enviroment (o JVM). JDK: Herramienta de Desarrollo + JRE.
Temas a Tratar
Comentarios. Puntos y Coma, Bloques y Espacios en Blanco. Reglas para crear identificadores. Palabras reservadas o Keywords. Declaracin de Variables. Tipo de Datos. mbito de las variables. Tipo de Operadores.
Diplomado de Programacin en Java Modulo I - Fundamentos del Lenguaje Java
Comentarios
Existen tres formas distintas de describir comentarios: // Comentario en una lnea. /* Comentario de una lnea o Mas lneas */. //* Comentario de documentacin, Utilizado por la herramienta javadoc.exe */
Ejemplo:
Ejemplos de Identificadores
Identificadores Vlidos:
Diplomado de Programacin en Java
Identificadores NO Vlidos:
Variables
Una variable es un contenedor de datos identificados con un nombre (identificador). Dicho identificador se utilizar para referenciar el dato que contiene. Toda variable deber llevar asociado un tipo que describe el tipo de dato que contiene. Por tanto, una variable tiene: - Un identificador - Un tipo - Un Dato (o Valor).
Declaracin de Variables
Es la sentencia mediante la cual se define una variable, asignndole un tipo y una identificacin. - <Tipo> <identificador>; - int contador; Adicionalmente se le puede asignar un valor inicial mediante una asignacin: - <Tipo> <Identificador> = <Valor>; - Contador = 10; Si no se le asigna un valor, se inicializar con el valor por defecto para ese tipo.
Modulo I - Fundamentos del Lenguaje Java
Tipos de Datos
En Java existen dos tipo de datos genricos: Primitivo: boolean, char, byte, short, int, long, float, double. Complejos: enum, string, arreglos, Clases y objetos.
Existen 8 tipo de datos primitivos clasificados en 4 grupos diferentes: Lgico: Boolean. Caracter: char. Nmeros Enteros: byte, short, int y long. Nmeros Reales: double, float.
NOTA: Soporta UNICODE 4.0, que define algunos caracteres que no caben en 16 bits, por lo que se necesita un int para representarlos (o dos char dentro de un string)
Sus posibles valores son: Un valor decimal entero: 2 (Por defecto int), 2L (Long). Un valor octal: 077. Un valor hexadecimal: 0xBAAC.
Sus posibles valores: Un valor decimal entero: 2 Un valor decimal real: 0.17 o 6.02E28 (por defecto double) Un valor decimal real: 0.17F o 0.17D (redundante).
Una variable de tipo complejo contiene una referencia (puntero) a la zona de memoria donde esta el objeto.
Referencia hola
Ejemplos:
Ejemplos:
Atributos Parmetros
Locales De Bloque
Ejemplo Incorrecto:
Ejemplo Correcto:
Ejercicio:
Identificar que sentencias son correcta y cuales no.
int x = 34.5; boolean boo = x; int g = 17; int y = g; y = y + 10; short s; s = y; byte b = 3; byte v = b; short n = 12; v = n; byte k = 128; int p = 3 * g + y;
Ejercicio (Solucin)
Operadores
Los operadores realizan funciones sobre uno, dos o mas operandos, por tanto tenemos: Operadores unitarios: Puede ser prefijos o posfijos. op operador o operador op Operadores Binarios: contador + 1; Operadores ternarios. operador ? operador : operador Los operadores siempre devuelven un valor que depende del operador y de los operandos.
Tipos de Operadores
Los operadores se pueden dividir en las siguinetes categorias: 1. Aritmticos. 2. Relacionales. 3. Condicionales. 4. De desplazamiento. 5. Lgicos. 6. De Asignacin. 7. Entre otros.
Operadores Aritmticos
Tenemos los siguientes operadores Aritmticos:
Operador + * / %
Descripcion Suma dos operandos Resta dos operandos Multiplica dos operandos Divide dos operandos Calcula el resto de la division
Ejemplo Op1 + Op2 Op1 - Op2 Op1 * Op2 Op1 / Op2 Op1 % Op2
Operadores Aritmticos
De que tipo es el valor que devuelven?
Tipo de Valor Long
Cuando Aplica? Cuando ninguno de los operandos es 'float' o 'double' y hay al menos uno que es 'long' Cuando ninguno de los operandos son 'float', 'double' o 'long'. Cuando al menos hay uno de los operandos es 'double'. Cuando ninguno de los operandos es 'double' y hay al menos un que es 'float'.
Int
Double
Float
Operadores Aritmticos
Tambien existen operadores Aritmticos unitarios:
Descripcion Convierte a 'op' en int en caso de que fuese byte, short o char. Cambia el signo a 'op'. Incrementa a'op' en 1 (evaluando 'op' despues de incrementarse). Incrementa a'op' en 1 (evaluando 'op' antes de incrementarse). Decrementa a'op' en 1 (evaluando 'op' despues de decrementarse). Decrementa a'op' en 1 (evaluando 'op' antes de decrementarse).
Operadores Relacinales
Tenemos los siguientes operadores relacionales:
Operador > < == != >= <= Descripcion Compara si un operando es mayor que otro Compara si un operando es menor que otro Compara si un operando es igual que otro Compara si un operando es distinto que otro Compara si un operando es mayor e igual que otro Compara si un operando es menor e igual que otro Ejemplo Op1 > Op2 Op1 < Op2 Op1 == Op2 Op1 != Op2 Op1 >= Op2 Op1 <= Op2
Operadores Condicinales
Suelen convinarse con los operadores relacionales para crear expresiones mas complejas. Tenemos los siguientes operadores condicinales.
Operador && || !
Descripcion AND Logico, checa si ambos operandos son verdaderos OR Logico, checa si uno de los dos operandos son verdaderos NOT Logico, niega al operador
Operadores de Desplazamiento
Tenemos los siguientes operadores:
Operador >>
Descripcion
Desplaza los bit del primer operando hacia la derecha tantas veces como indique el segundo operando << Desplaza los bit del primer operando hacia la izquierda tantas veces como indique el segundo operando >>> Desplaza los bit del primer operando hacia la derecha tantas veces como indique el segundo operando pero sin signo Op1 >>> Op2 Op1 << Op2
Operadores Lgicos
Tenemos los siguientes operadores Lgicos: 1. & AND lgico a nivel de bit (Op1 & Op2).
Op1 0 0 1 1 Op2 0 1 0 1 Resultado 0 0 0 1
Op1 0 0 1 1
Op2 0 1 0 1
Resultado 0 1 1 1
Op1 0 0 1 1
Op2 0 1 0 1
Resultado 0 1 1 0
Operadores de Asignacin
Tenemos los siguientes operadores de asignacin:
Operador = += -= *= /=
Descripcion Guarda el valor del segundo operando en el primero Guarda la suma de los dos operandos en el primero Guarda la resta de los dos operandos en el primero Guarda la multiplicacion de los dos operandos en el primero Guarda la division de los dos operandos en el primero
Ejemplo Op1 = Op2 Op1 += Op2 Op1 -= Op2 Op1 *= Op2 Op1 /= Op2
Otros Operadores
Existen otros operadores en Java como:
Descripcion se trata de una abreviatura de if-then-else Ejemplo Op1 ? Op2 : Op3 Operador ?: [] Utilizado para declarar, crear y acceder a los arrays . utilizado para acceder a metodos y/o atributos de objetos
(Parametros) Utilizado para pasar parametros a un metodo. (Tipo) New Instanceof Utilizado para realizar castings (Conversiones) Utilizaddo para crear objetos nuevos Checa si el priemro operando es una instancia del segundo operando
Ejercicios
Ejercicios
Ejercicios
Temas a Tratar
Sentencias de Control de Flujo. Sentencia If then else. Sentencia Swich case. Sentencias While y Do While. Sentencia For Sentencias de Ruptura.
?
Si
No
Sentencia_3;
Sentencia_2;
Ejemplo
?
Case_1; Case_2; default;
Ejemplo
Sintaxis:
do { Sentencias; } While (Expresion)
Ejemplo
Sentencia For
La sentencia For facilita la ejecucin de un bloque de cdigo un nmero determinado de veces. Sintaxis:
For (Inicializacion; Terminacion; Incremento) { Sentencias; }
NOTA: Las variables definidas en la sentencia de inicializacin son locales al bloque. Por tanto dejan de existir una vez se haya terminado el bucle.
Diplomado de Programacin en Java Modulo I - Fundamentos del Lenguaje Java
Ejemplo
Sentencia For / In
Esta nueva sentencia del J2SE 5.0 nos facilita la iteracin por los elementos de cualquier tipo de coleccin: arrays, listas, etc. Sintaxis:
For (Inicializacion: coleccion) { Sentencias; }
Bsicamente se trata una simplificacin a la hora de compilar. Es decir, al final, el compilador convierte el cdigo en una sentencia for convencional.
Ejemplo
Sentencias de Ruptura
Break: sirve para detener la ejecucin tanto de los bucles como de la sentencia switch. Y por tanto salta a la siguiente lnea de cdigo despues del bucle o switch. Continue: sirve para detener la ejecucin del bloque de cdigo de un bucle y volver a evaluar la condicin de este. Return: sirve para finalizar la ejecucin de un mtodo.
Ejemplo
Temas a Tratar
Paradigmas de Programacin. Clases y Objetos. Modificadores de Acceso. Principios de la Orientacin a Objetos. Conceptos del Diseo Orientado a Objetos
Paradigmas de Programacin
Hay para todos los gustos Estructurados (C, Pascal, Basic, etc.) Funcinales (CAML) Declarativos (Prolog) Orientados a Objetos (C#, VB.NET, Smalltalk, Java) Orientados a Aspectos Hbridos (Lisp, Visual Basic) Incomprensibles.... Cada enfoque tiene sus ventajas y desventajas. Cada uno es ms apropiado para ciertas cosas
Diplomado de Programacin en Java Modulo I - Fundamentos del Lenguaje Java
Qu es un Objeto?
Informalmente, un objeto representa una entidad del mundo real. Entidades Fsicas (Ej.: Vehculo, Casa, Producto) Entidades Conceptuales (Ej.: Proceso Qumico, Transaccin Bancaria) Entidades de Software (Ej.: Lista Enlazada, Interfaz Grfica)
Qu es un Objeto?
Definicin Formal (Rumbaugh): Un objeto es un concepto, abstraccin o cosa con un significado y lmites claros en el problema en cuestin Un objeto posee (Booch): Estado Comportamiento Identidad
Qu es una Clase?
Una clase es una descripcin de un grupo de objetos con: Propiedades en comn (atributos) Comportamiento similar (operaciones) La misma forma de relacionarse con otros objetos (relaciones) Una semntica en comn (significan lo mismo) Una clase es una abstraccin que: Enfatiza las caractersticas relevantes Suprime otras caractersticas (simplificacin) Un objeto es una instancia de una clase
Objetos y Clases
Una clase es una definicin abstracta de un objeto. Define la estructura y el comportamiento compartidos por los objetos. Sirve como modelo para la creacin de objetos . Los objetos pueden ser agrupados en clases.
Modificadores de Acceso
Permiten definir el nivel de acceso (visibilidad) de los miembros (atributos o mtodos) de una clase. Publico: Cualquier clase puede ver los miembros pblicos de otra clase Privado: Slo la clase puede ver sus propios miembros privados Existen otros dos modificadores para propsitos especficos (Paquete, Protegido).
Abstraccin
Una abstraccin denota caractersticas esenciales de un objeto, distinguibles de otro tipo de objetos y provee limites conceptuales a la perspectiva del observador.
Abstraccin
Ignorancia Selectiva. La abstraccin nos ayuda a trabajar con cosas complejas Se enfoca en lo importante Ignora lo que no es importante (simplifica) Una clase es una abstraccin en la que: Se enfatizan las caractersticas relevantes Se suprimen otras caractersticas Una clase debe capturar una y solo una abstraccin clave
Encapsulamiento
Mientras la abstraccin permite pensar en que hacer, la encapsulacin se dirige en como se va a realizar, permitiendo cambiar programas en forma confiable con un mnimo de esfuerzo por esta barrera. La abstraccin se enfoca en el funcionamiento observable del objeto. La encapsulacin se enfoca en la implementacin que da origen a ese funcionamiento.
Encapsulamiento
Principio que establece que los atributos propios de un objeto no deben ser visibles desde otros objetos. Deben ser declarados como privados Permite abstraer al resto del mundo de la complejidad de la implementacin interna. Permite exponer el estado del objeto slo a travs del comportamiento que le hayamos definido mediante miembros pblicos. Por qu es til? Punto de Control/Validacin Mejor respuesta ante los Cambios
Jerarqua
Un conjunto de abstracciones en varias ocasiones pueden formar una jerarqua. Al identificar en el diseo, el entendimiento del problema se simplifica.
La herencia representa una jerarqua de abstracciones en donde una Subclase (Clase Hijo) hereda de una o mas Superclases (Clases Padre).
Diplomado de Programacin en Java Modulo I - Fundamentos del Lenguaje Java
Modularidad
La modularidad se realiza para dividir un sistema en mdulos compilables separadamente, pero con ciertas conexiones mnimas de dependencia con otros mdulos.
Para lograr una buena modularidad, los mdulos deben construirse con:
Herencia
Es una relacin entre clases en la cual una clase comparte la estructura y comportamiento definido en otra clase (Grady Booch) Cada clase que hereda de otra posee: Los atributos de la clase base adems de los propios Soporta todos o algunos de los mtodos de la clase base Una subclase hereda de una clase base
Clases Derivadas Clases Derivadas o subclases o subclases
Diplomado de Programacin en Java Modulo I - Fundamentos del Lenguaje Java
Automvil
Avin
Herencia
Herencia Es-Un: herencia real, donde la subclase es especfico de la superclase. Un Cuadrado es un Rectngulo Un perro es un mamfero Un automvil es un vehculo a motor un tipo
Polimorfismo
Es la propiedad que tienen los objetos de permitir invocar genricamente un comportamiento (mtodo) cuya implementacin ser delegada al objeto correspondiente recin en tiempo de ejecucin. El polimorfismo tiende a existir en las relaciones de herencia, pero no siempre es as
Polimorfismo
La definicin del mtodo reside en la clase base. La implementacin del mtodo reside en la clase derivada. La invocacin es resuelta al momento de ejecucin.
Transporte
Avanzar Frenar
Ejemplo
Ejemplo
GRACIAS!!!