Sunteți pe pagina 1din 11

18/01/12

Qu es?
! Ordenador ! Mquina virtual
! Arquitectura del ! Programacin
Introduccin a Java ordenador

! SoNware
estructurada

! Programacin orientada a
Curso de Programacin en Java objetos
! Programar
! Aplicacin Web
! Lenguaje de programacin
Jess Montes Snchez
! Terminal (smbolo de
jmontes@.upm.es ! C, C++, Java sistema)

! Compilador ! IDE

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

Contenidos
! Origen, caracters\cas y evolucin de Java

! Temario del curso

! Paradigmas de programacin Origen, caracters\cas y evolucin


! Entorno de trabajo de Java

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

Estructura de un ordenador Estructura de un ordenador


! Qu sabe hacer un ! Disposi\vos de Entrada/
ordenador? Salida
! Muy poco, muy rpido. ! Sirven para la interaccin
hombre-mquina
! Qu partes \ene un ! Entrada: Teclado, ratn,
ordenador? escner
! Componentes ^sicos: ! Salida: Monitor,
Hardware impresora
! Programas: SoNware

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es) Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

1
18/01/12

Estructura de un ordenador Estructura de un ordenador


! Memoria principal ! Unidad central de procesamiento (CPU)
! Conjunto de celdas en una ! Unidad aritm\co-lgica (ALU): Realiza operaciones
tabla
! Aritm\cas (suma, resta)
! Almacena datos (entrada,
! Lgicas (AND, OR)
salida y procesados) e
instrucciones (programas) ! Banco de registros: Almacenamiento temporal de informacin, de
muy rpido acceso.
! De acceso rpido
! Unidad de control (UC): Controla la ejecucin del programa. Da las
! Dos \pos: RAM y ROM rdenes para acceder a los datos en memoria.

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es) Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

Estructura de un ordenador Ciclo de vida del soNware

Especicacin

Implantacin Anlisis

Validacin Diseo

Programacin

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es) Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

Ciclo de vida del soNware Ciclo de vida del soNware


! Especicacin ! Programacin
! Qu quiere exactamente el usuario nal?
! Validacin
! Contrato
! Calidad de la integracin de cada mdulo
! Anlisis ! Cumplimiento de las especicaciones
! Cmo resolver el problema?
! Implantacin
! Descomposicin
! Correcto funcionamiento y aceptacin
! Diseo
! Cada una de las partes y su interconexin

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es) Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

2
18/01/12

Ciclo de programacin Lenguajes de programacin


! Codica ! Lenguaje mquina
! Implementa con precisin cada elemento ! Cdigo binario
! Comenta el cdigo fuente ! Fuertemente relacionado con el hardware (i386, PowerPC)
! Ayuda a su lectura y comprensin ! El nico lenguaje que en6ende el ordenador
! Comprensible para la mquina
! Verica ! pero imposible para una persona
! Casos de prueba

! Depura 00111101010111000101110001110001
! Localiza y corrige errores

! Documenta

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es) Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

Lenguajes de programacin Lenguajes de programacin


! Lenguaje ensamblador ! Lenguaje de alto nivel
! Juego de instrucciones bsico del ordenador ! Comnmente conocido como lenguaje de programacin
! De muy bajo nivel (traduccin directa a lenguaje mquina) ! Cercano al lenguaje humano
! Muy rpido y eciente ! Abstrae las caracters\cas especcas del hardware
! Mediente la compilacin y el enlazado se traduce a lenguaje
Suma de dos nmeros: mquina
MOV R1, 10 ! C, C++, Java, Python
MOV R2, 20
ADD R1, R2 r1 = 10 + 20
ST #0014, R1

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es) Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

Codicacin, compilacin,
enlazado y ejecucin
Lenguajes de alto nivel
! Codicacin ! C
! Escritura del programa
! Creado de 1972 por Dennis M. Ritchie
! Compilacin y enlazado ! De alto nivel, pero muy relacionado con las funcionalidades
bsicas de la mquina (de forma abstracta)
! Traduccin del programa

a lenguaje mquina
! Ideal para la programacin de sistemas opera\vos, sistemas
ejecutable empotrados, dirvers
! Depende de la mquina ! Muy eciente
! En teora, portable siempre que se disponga de un compilador de
! Ejecucin C para la arquitectura des\no
! Puesta en funcionamiento
del programa resultante

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es) Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

3
18/01/12

Lenguajes de alto nivel Los orgenes de Java


! C++ ! Surge en la dcada de los 90 de la mano de Patrick Naughton y
! Evolucin de C James Gosling
! Creado por Bjarne Stroustrup en 1979
! Inicialmente llamado Oak
! Orientado al desarrollo de aplicaciones de mas alto nivel
! Incorpora mecanismos para realizar programacin orientada a ! Desarrollado por Sun Microsystems para facilitar la portabilidad
objetos de soNware entre disposi\vos electrnicos
! Depende del compilador para garan\zar la portabilidad entre
arquitecturas ! Mo\vaciones:
! Problemas en la depuracin de programas C/C++
! Movilidad de soNware al actualizar los componentes hardware

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es) Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

Java Java
! Filoso^a write once, run anywhere (se escribe una vez y se ! Lenguaje simple y sencillo, basado en C++
ejecuta en todas partes)
! De alto nivel
! Programacin orientada a objetos
! Incorpora un amplio conjunto de bibliotecas
! Uso fcil, robusto y eciente en entornos distribuidos
(aplicaciones web) ! Facilita la ges\n de errores (ges\n autom\ca de memoria,
control de denicin de \pos)

! Controla aspectos de seguridad (acceso ilegal a memoria,


acceso restringido a cheros)

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es) Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

Java Java
// Esto es un comentario de una linea
! Se ejecuta sobre una aplicacin llamada Mquina Virtual (JVM)
/*
! Abstrae las caracters\cas especcas del hardware Esto es un comentario de
multiples lineas
! Facilita la portabilidad de cdigo */
// Clase holaMundo
! Portable a cualquier arquitectura en la que exista la JVM
public class holaMundo {

! Hoy en da, muy orientado al mudo web /* El metodo main es el punto de comienzo del programa */
public static void main(String[] args) {
! Potencialmente menos eciente que C/C++ System.out.println("Hola mundo");
}
! SoNware libre y abierto
}

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es) Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

4
18/01/12

Java Evolucin de Java


! Componentes
! Enero de 1996: aparece java con JDK 1.0
! javac, el compilador de
Java ! Enero de 1997: JDK 1.1 con:
! Una JVM especca para ! Restructuracin de AWT (GUI)

cada plataforma ! Clases internas

! Los archivos .java
! JavaBeans
con\enen el cdigo fuente ! JDBC (Java Database Connec\vity)
! RMI (Remote Method Invoca\on)
! Los archivos .class
con\enen el lenguaje de
JVM (bytecode)

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es) Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

Evolucin de Java Evolucin de Java


! Diciembre de 1998: J2SE 1.2 Java 2 ! Mayo de 2000: J2SE 1.3
! Mecanismos de reexin. Dinamismo del cdigo ! Nuevo RMI, basado en CORBA
! Incorporacin de Swing ! JavaSound
! Se incorpora un compilador JiT (Just in Time) ! JNDI (Java Naming and Directory Interface)
! Aparicin de Java Plug-ins: Giro hacia el mundo de las ! JPDA (Java Plaworm Debugger Architecture)
aplicaciones web
! Java IDL (Interface Descrip\on Languaje) para interoperar con ! Febrero 2002: J2SE 1.4
CORBA ! Expresiones regulares
! XML parser
! Extensiones criptogrcas
! Java Web Start

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es) Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

Evolucin de Java
! Sep\embre de 2004: J2SE 1.5
! Plan\llas
! Metaprogamacin
! Varargs (argumentos variables)
Temario del curso
! Diciembre de 2006: J2SE 1.6 Java 6
! Combinacin con otros lenguajes dinmicos (PHP, Python)
! Cliente de Servicios Web
! Mejorar en GUI y rendimiento de la JVM

! Julio de 2011: Java 7

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

5
18/01/12

Temario Temario
! Mdulo 1: Introduccin a Java (5 horas) ! Mdulo 3: Programacin orientada a objetos en Java (35 horas)
! Nociones bsicas
! Mdulo 2: Programacin Java (35 horas)
! Declaracin de clases y concepto de herencia. Clases e interfaces
! Introduccin a la programacin. Secuencia de ejecucin de un
! Elementos del lenguaje orientadas a la ges\n de clases e
programa
interfaces
! Declaracin de variables y su uso en sentencias aritm\cas y
lgicas ! Empaquetado de clases y organizacin de un proyecto completo

! Programacin de mtodos, denicin y llamada de los mismos ! Mdulo Extra: Repaso de los fundamentos de java (15 horas)
! Estructuras de control, bucles y evaluacin de condiciones ! Programacin bsica
! Tipos de datos bsicos, uso de la clase String y otras clases ! Programacin orientada a objetos
sencillas
! Otros aspectos de la sintaxis de Java

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es) Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

Temario Temario
! Mdulo 4: Interfaces Grcas de Usuario (75 horas) ! Mdulo 5: Paquete de U\lidades Java (27.5 horas)
! Programacin basada en eventos ! Visin general del paquete java.u\l. Reu\lizacin de cdigo y uso
! Componentes bsicos de los interfaces de usuario, ventanas, de \pos abstractos
campos de texto y cuadros de dilogo. Java AWT ! Tipos de datos para almacenamiento de otros elementos. Clase
! Manejadores de eventos y acciones Object
! Despliegue de componentes, organizadores de elementos grcos ! Clases de u\lidad para la ges\n del \empo
! Componentes grcos extendidos, clases Java Swing ! Clases de u\lidad para la organizacin de aplicaciones complejas
! Modelo Vista-Controlador
! Entornos grcos de desarrollo. Desarrollo de aplicaciones
profesionales

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es) Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

Temario Temario
! Mdulo 6: Ges\n de Ficheros (32.5 horas) ! Mdulo 8: Aspectos Avanzados de Java (30 horas)
! Entrada/Salida en Java. Concepto de stream o ujo de entrada/ ! Comunicacin de aplicaciones Java va RMI
salida ! Extensiones mul\media de Java. Manipulacin de imagen vdeo y
! Clases Java asociadas a la manipulacin de directorios y cheros audio
! Ges\n de errores por medio de excepciones ! Presentacin de las tecnologas Java avanzadas: Jini, JNI, EJB,
JDBC
! Mdulo 7: Desarrollo de Aplicaciones Web en Java (15 horas)
! Conceptos generales del desarrollo de aplicaciones sobre Internet ! Mdulo 9: Sensibilizacin medioambiental (10 horas)
! Programacin de applets. Caracters\cas y restricciones de
seguridad

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es) Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

6
18/01/12

Cmo se debe programar?


! El desarrollo artesano de soNware deriv el la crisis del
so@ware
! Baja produc\vidad
! Muy di^cil mantenimiento
Paradigmas de programacin ! Redundancia de cdigo

! Para conseguir soNware de calidad se desarrollan los


paradigmas de programacin
! Tcnicas de programacin
! Estructuras de programacin
! Reglas de es\lo de codicacin

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

SoNware de calidad SoNware de calidad


! Correcto ! Correcto
! Eciente ! Hace exactamente lo que dice

! Reu\liza y es reu\lizable ! Eciente


! Lo hace de la forma menos costosa
! Portable

! Estndar ! Reu\lizacin
! No reinventa la rueda
! Robusto ! U\liza las bibliotecas
! Legible ! Permite reaprovechar el cdigo

! Matenible

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es) Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

SoNware de calidad SoNware de calidad


! Portable ! Legible
! Evita dependencias ! El cdigo debe facilitar su comprensin a otros programadores
(arquitectura, sistema,...)
! Mantenible
! Estndar ! Des\nado a evolucionar, a ser corregido y mejorado
! El comportamiento esperado ! Diseo y estructura deben facilitar el mantenimiento
! Evita originalidades innecesarias

! Robusto
! Tolerar los errores de otros y no errar l

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es) Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

7
18/01/12

Paradigma de programacin Programacin estructurada


! Algoritmo
! Conjunto de reglas que nos ayudan a desarrollar soNware de ! Mtodo para resolver un
calidad problema sin ambigedades en
! Programacin estructurada un nmero nito de pasos
! Ha de ser la solucin general a
! Programacin orientada a objetos todos los problemas del mismo
\po
! Deben considerarse todas las
Algoritmo Datos Programa
posibles situaciones

! Datos
! Informacin que el programa
recibe, maneja y devuelve
! Las estructuras de datos
facilitan su manejo

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es) Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

Programacin estructurada Programacin estructurada


! Situaciones co\dianas vistas como programas ! Programa
! Cmo ordeno las cartas de una baraja espaola? ! Expresin de un algoritmo en un lenguaje
! Qu secuencia de pasos tengo que seguir para programar el ! Incluye la descripcin de los datos
despertador? ! Su ejecucin producir el resultado deseado
! cmo preparo una tor\lla?

! En estos ejemplos, iden\car:


! Datos de entrada
! Datos de salida
! Algoritmo

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es) Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

Estructuracin de un programa Estructuracin de un programa

! Razonamiento descendente ! Divisin en mdulos funcionales


! Si la magnitud del problema no permite visualizarlo en toda su ! Perlar ms y ms hasta delimitar cada mdulo de nuestro
extensin programa
! Iden\car etapas o fases ! Es sucientemente genrico?
! Dividir el problema sub-problemas ! Est sucientemente delimitado?
! De lo general a lo especco ! Merece ser una pieza independiente?
! Razonando en trminos abstractos ! Puede ser reu6lizable?
! Ir renando una solucin

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es) Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

8
18/01/12

Estructuracin de un programa Programacin orientada a objetos


! Objetos: Elementos que
Vender un interactan entre s para
libro conseguir un n
! Autnomos Objeto
Objeto 1
! Con una funcionalidad 2
concreta denida
Buscar en el Cobrar al Enviar el Objeto
! Instancias de una clase 3
almacn cliente pedido
! Clases
! Especicacin de un
conjunto de elementos
Programa
Conectar Solicitar el
con el banco pago ! Todo objeto pertenece a
una clase

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es) Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

Objetos y clases Objetos y clases


! Los objetos \ene propiedades que los dis\nguen
Fruta
! Comunes a todos los de su clase
! Propias de cada uno

! Los objetos interactan entre s por medio de mensajes

! Los objetos representan los conceptos fundamentales del


programa, y de su interaccin surge la funcionalidad

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es) Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

Como funciona un programa


orientado a objetos?
Lenguajes y paradigmas
Buscar
No hay
el
caf ! En teora, el paradigma de programacin escogido es
independiente del lenguaje que se u\lice

Cocina ! No obstante, la mayora de lenguajes de programacin estn


pensados para un paradigma concreto:
! C: Estructurado
Comprar ! C++: Estructurado y/o orientado a objetos
caf
! Java: Orientado a objetos
! Python: Orientado a objetos
Tienda
!

Caf

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es) Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

9
18/01/12

Entorno de trabajo
! Conjunto de herramientas que usamos para desarrollar
soNware
! Herramientas de diseo asis\do
! Editores
Entorno de trabajo ! Compiladores
! Depuradores
!

! Facilitan nuestra labor y proporcionan funcionalidades


aadidas

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

Java SE (Standard Edi9on) Variables PATH y CLASSPATH


! JRE (Java Run9me Environment) ! PATH
! Incluye los elementos necesarios para ejecutar aplicaciones Java ! Variable de entorno que indica donde se ubican los programas
(JVM, Java Web Start) ! Podemos ejecutar programas mediante la lnea de mandatos

! JDK (Java Development Kit)


! Incluye JRE ! CLASSPATH
! Incorpora adems herramientas de desarrollo (compiladores) ! Variable de entorno que usa Java
! Indica donde se almacenan las biblitecas y cheros .class de Java

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es) Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

Entorno bsico Programa de ejemplo


// Esto es un comentario de una linea
! Instalar JDK
/*
! www.oracle.com/technetwork/java/javase/downloads/index.html Esto es un comentario de
multiples lineas
*/
! Incluir en el PATH los ejecutables del JDK
// Clase holaMundo
! Propiedades de Mi PC > Opciones Avanzadas > Variables de
public class holaMundo {
Entorno
/* El metodo main es el punto de comienzo del programa */
! Copiar el programa de ejemplo public static void main(String[] args) {
System.out.println("Hola mundo");
! Usando la terminal de Windows (smbolo de sistema), compilar
}
y ejecutar el programa
}

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es) Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

10
18/01/12

NetBeans Uso de NetBeans


! Es un IDE (Integrated Development Environment) ! Crear un nuevo proyecto

! Plataforma para el desarrollo de aplicaciones ! Ges\n de las ventanas del entorno


! rea de proyectos, vista del sistema de cheros
! Soporta ml\ples lenguajes (Java, C++, PHP)
! rea de edicin
! Dispone de mul\tud de plug-ins \les (OpenSwing) ! Consola de mensajes
! Propiedades del proyecto (CLASSPATH)
! Libre y gratuito (Licencia GPL)
! Codicacin, compilacin y ejecucin de un proyecto de prueba
! netbeans.org (holaMundo)

Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es) Introduccin a Java - Jess Montes Snchez (jmontes@.upm.es)

11

S-ar putea să vă placă și