1 Universidad Nacional Autónoma de México Facultad de Estudios Superiores AragónJava Básico
2 Agenda Conceptos Básicos Entorno de programación con JavaQue es un lenguaje de programación Paradigmas de programación Entorno de programación con Java La maquina Virtual de Java (java.exe) El compilador Java (javac.exe) Variables de entorno relacionados Introducción a la programación con Java Estructuras de control básicas (if, if-else. Switch, while, do-while, for) Caracteristicas del Lenguiaje Java IDE (Integarted Development Environment)
3 Agenda (cont.) Programación Orientada a Objetos con Java AbstracciónConceptos Basicos Clase, Objeto, Atributo, Métodos, etc. Abstracción Encapsulamiento Paquetes en java Especificadores de acceso en java Public, private, protected y friendly. Composición Herencia Polimorfismo Manejo de errores Clases abstractas Interfaces Herencia múltiple
4 Arquitectura Von Newman
5 Lenguaje de Programación: DefiniciónUn lenguaje de programación es un sistema notacional para describir computaciones de una forma legible tanto para la máquina como para el ser humano(Programador).
6 Lenguaje de programaciónSintaxis + Semántica
7 Sintaxis (estructura léxica)Gramáticas libres de contexto, estructura léxica, tokens Semántica (significado) Lenguaje natural Semántica operacional Semántica denotacional
8 Analogía con el lenguaje natural (Esp.)Elementos Sintácticos (sintaxis) El, yo, tu, la, los, las, da, perro, casa, come, corre, brinca, señor,señora, corre, croquetas … Semántica Oración: sujeto + verbo +predicado El perro come croquetas que le da el señor. croquetas el come da perro que señor le el.
9 Ejemplo … int A=0; int B=8; int C=7; A= B + C; System.out.println(A);C=7 int; A B + C =; System.out.println(); A La primera parte esta sintacticamente y semanticamnete bien formada La segunda esta sintacticamente vien, pero semanticamente no lo esta
10 Más Conceptos Compilador:Es un programa que recibe de entrada un archivo con instrucciones escritas en un lenguaje de programación de alo nivel, lo analiza, lo traduce a un lenguaje ejecutable equivalente y finalmente almacena el resultado en DD. Intérprete: Es un programa que recibe de entrada un archivo con instrucciones escritas en un lenguaje de programación, lo traduce y ejecuta al vuelo (JIT).
11 Paradigmas de programaciónUniversidad Nacional Autónoma de México Diplomado de Tecnologías de la Información Paradigmas de programación
12 Definición Los paradigmas son un conjunto de conocimientos y creencias que forman una visión del mundo (cosmovisión). Paradigma de programación: Representa un enfoque particular o filosofía para la construcción de programas. No es mejor uno que otro sino que cada uno tiene ventajas y desventajas. También hay situaciones donde un paradigma resulta más apropiado que otro
13 Paradigma Imperativo Modela la arquitectura de la máquina de von Neumann. La computación consiste en la ejecución paso a paso de algoritmos (secuencias condicionales o repetitivas de instrucciones) que modifican los contenidos de variables (espacios de memoria)
14
15 Paradigma funcional Conjunto de valores, funciones y las operaciones de aplicación de función y composición de función, Las funciones pueden tomar como argumentos otras funciones y devolverlas como resultados Un programa es una colección de definiciones de funciones. Una computación es una evaluación (aplicación) de una expresión (función con sus argumentos). Tipos de datos • Expresiones condicionales • Recursión
16 LISP, Haskell, Gofer qsort [] = [] qsort (x:xs) = qsort elts_lt_x ++ [x] ++ qsort elts_greq_x where elts_lt_x = [y | y <- xs, y < x] elts_greq_x = [y | y <- xs, y >= x]
17 Paradigma Lógico Se basa en la manipulación de bases de conocimiento para decidir resolver problemas lógicos
18 ?- nieto(luis,X). X = leoncio No % Base padre(juan,alberto).padre(luis,alberto). padre(alberto,leoncio). padre(geronimo,leoncio). padre(luisa,geronimo). % condiciones , predicados % parentesco hermanos hermano(A,B) :- padre(A,P), padre(B,P), A \== B. % parentesco abuelo-nieto. nieto(A,B) :- padre(P,B). ?- nieto(luis,X). X = leoncio No
19 Paradigma orientado a objetosDefine la computación como la interacción entre objetos autónomos mediante la utilización de objetos, la programación se convierte en simulación. Los objetos son instancias de clases que se organizan en jerarquías de herencia Los objetos se comportan independientemente Utilizan la selección de las operaciones en tiempo de ejecución cuando interpretan los mensajes provenientes de otros objetos
20
21 Universidad Nacional Autónoma de MéxicoProgramación Orientada a Objetos
22 Introducción a la Programación con JavaAntes de entrar a los conceptos de programación estudiaremos el entorno de programación Java
23 ¿ Que es Java ? Java es un lenguaje de programación orientado a objetos. Desarrollado por Sun Microsystems, una empresa reconocida por sus estaciones de trabajo UNIX de alta calidad. Moldeado en base a C++, el lenguaje Java se diseñó para ser pequeño, sencillo y portátil a través de plataformas y sistemas operativos, tanto a nivel de código fuente como en binario.
24 Programación distribuida Bases de datos Programación gráfica Enterprise JavaBeans RMI Programación distribuida CORBA JDBC Bases de datos Java3D Java2D Programación gráfica JINI Sistemas embebidos JavaSpaces Applets WWW Java Web Start Servlets Java Server Pages Servidor Java Server Faces JavaBeans JNI Programación java.* J2ME AWT Programación UI Swing SWT
25
26 Palabras clave (sintaxis)abstract boolean break byte byvalue case cast catch char class const continue default do double else extends false final finally float for future generic goto if implements import inner instanceof int interface long native new null operator outer package private protected public rest return short static super switch synchronized this throw throws transient true try var void volatile while
27 Java es independiente de la plataformaEs una de las ventajas mas representativas que tiene Java sobre otros lenguajes de programación. En particular para los sistemas que necesitan funcionar en variar plataformas. Java mantiene esta independencia de la plataforma tanto a nivel del código fuente como del binario. Independencia de la plataforma es la capacidad del programa de trasladarse con facilidad de un sistema computacional a otro.
28 Arquitectura Java
29 La maquina virtual de javajvm jvm jvm
30 ¿Cómo sucede esto ? Los archivos binarios Java se encuentran, de hecho, en una forma llamada bytecode. Bytecodes son un conjunto de instrucciones muy parecidas al código de máquina, pero que no son específicas para algún procesador.
31
32 Creando una aplicación JavaLos archivos fuente se crean en un editor de texto sencillo, o en uno que puede guardar archivos en ASCII común, sin caracteres para dar formato.
33 Partes del programa en javaTodo el programa está encerrado en una definición de clase (aquí, una clase llamada HolaMundo). Toda clase en Java se debe guardar en un archivo con el mismo nombre (Case sensitive) El punto de entrada del programa es una rutina especial(método) llamada main. Todo bloque de programa esta encerrado entre picoparentesis “{” y “}”
34 Guardar el programa Por convención, los archivos fuente Java tienen el mismo nombre de la clase que definen-> HolaMundo.java. Compilar el archivo fuente con el compilador javac. En el JDK de Sun, el compilador Java se llama javac. Para compilar su programa Java, asegúrese de que el programa javac se encuentra en la misma ruta de su programa. O configure el PATH de las variables de ambiente del S.O.
35 Compilando el programaEl comando javac compila el código fuente Java y lo convierte en Bytecodes. Nota: Revisar las variables de entorno PATH y CLASSPATH
36 Teclee java seguido por el nombre del archivo sin la extención .class:Java HolaMundo Si su programa se escribió y compiló de manera correcta, deberá obtener la cadena “Hola Mundo!” impresa en su pantalla como respuesta. Nota: Recuerde, el compilador Java y el intérprete Java son diferentes. Utilice el compilador (javac para sus archivos fuente Java a fin de crear archivos.classy use el intérprete (java) para ejecutar sus archivos de clase.
37 Respuesta:
38 Estructura de una clase en java
39 Nombre del paquete al que perteneceInclusión de bibliotecas Nombre de la clase Atributos de la clase Constructor por defecto Constructor sobrecargado Método de acceso Método de uso general Método main
40 NetBeans 5.5 y 6.0 Es un IDE (Entorno de Desarrollo Integrado).Proyecto de código abierto y gratuito. una herramienta para programadores pensada para escribir, compilar, depurar y ejecutar programas en JAVA.
41 Interfaz
42 interfaz
43 Interfaz
44 Interfaz
45 Classpath (bibliotecas)
46 Matisse
47 Primer proyecto en NetBeans
48 Elegir tipo de proyecto
49 Propiedades del Proyecto
50 Proyecto Generado Ventana de edición de código Proyecto Paquete
51 Edición Código
52 Compilación y Ejecución
53 Introducción a la Programación Orientada a Objetos
54 Convenciones decodificación El 80 % del costo de tiempo de vida de una pieza de software, se la pasa en mantenimiento. Difícilmente el mantenimiento es hecho por su autor original. Convenciones de codificación le da a los programas claridad para el mantenimiento. Si se adquiere código fuente de terceros debemos asegurarnos que siga estas convenciones.
55 Convenciones de nombrado:Indentación Líneas 80 cars. Convenciones de nombrado: Clases.- Minúsculas con la primera mayúscula. Ejemplo: Usuario, FacturaAnual, Jugador, etc. Paquetes.- todo en minúsculas y se recomienda poner las siglas de la organización. Ejemplos: datos, java.util,com.mysql, edu.fes, etc. Interfaces.- Igual que las clases.
56 Métodos .- Igual que los atributos. ConstantesAtributos.- Todo en minúsculas, si es compuesta la inicial de las palabras subsecuentes en mayúscula. Ejemplos: int nombre, String numeroCuenta, etc. Métodos .- Igual que los atributos. Ejemplos: comparar(), actualizarDatos(), etc. Constantes Todo en mayúsculas separados por guión bajo “_”. Ejemplo: static final int MAX_VALUE=10
57 Introducción a la programación con Java
58 Ejemplo 1
59 Ejemplo2
60 Estructuras de controlSecuencia Selección If If-else Switch Repeticion For While Do-while
61 Secuencia Implícita en el lenguajeSe refiere a que después de cada sentencia (oración) ejecutada, se ejecuta la sentencia siguiente en el programa. Un programa sigue un flujo de ejecucion desde inicio a fin. Se permite ceder el control del programa, pero siempre es regresado para continuar en el punto en que se quedo.
62 Estructura de selección ifIf: Decisión Se evalúa una condición, sí se cumple (igual a true) se ejecuta el bloque, e lo contrario se brinca el bloque If, sintaxis: If( [condicion]){ [bloque de instrucciones] }
63 Operadores relacionales
64 Ejemplo3 Imprimir a si y solo si es mayor que b
65 Estructura de selección if -elseIf: Decisión con bifurcación Se evalúa una condición, sí se cumple (igual a true) se ejecuta el bloque if, de lo contrario ejecuta el bloque “else” If-else, sintaxis: If( [condicion]){ //[bloque de instrucciones] }else{ //[bloque de instrucciones del “else”] }
66 Ejemplo if-else
67 Ejercicio Tenemos 3 variables de tipo entero, hacer un programa que averigüe cual de las tres es el más grande. Nota: a, b y c son diferentes. Ejemplo: a=9 b=3 c=56 Resultado : c es el mayor de todos, es igual a 56
68 Estructura de selección switchswitch: Selección multiple Se censa una variable, sí se cumple con cualquiera de los casos se ejecuta el bloque correspondiente al mismo. switch, sintaxis: switch( variable ){ case 1: [bloque case 1] break; case 2: [bloque case n] … default: [bloque default] }
69 Ejercicio Bongiorno Mensaje HolaTenemos 1 variable de tipo entero, hacer un programa envié un mensaje a la pantalla dependiendo del valor de la variable, en relación a la sig. Tabla: 1 Mensaje Hola 2 Adios 3 Bye 4 Hello 5 Bongiorno
70
71 Estructura de repetición forfor: repetición desde, hasta Se ejecuta un bloque n veces, el numero de veces es controlada por una variable que es inicializada y mientras cumpla una condición. for, sintaxis: for( [inicialización] ; [condición] ; [incremento] ){ //[bloque de sentencias de la estructura for] } for( j=0 ; j<=5 ; j=j+1){ System.out.println(“Hola");
72 Ejercicio Hacer un programa que imprima en pantalla la tabla del 7Hacer un programa que imprima las tablas desde 3 al 8.
73 Solución
74 Estructura de repetición whilewhile: repetición mientras Se ejecuta un bloque mientras se cumpla una condición. while, sintaxis: while( [condición] ) { [bloque de sentencias de la estructura while] } int c=0; while( c != 1){ System.out.println(“Hola"); c=teclado.nextInt();
75 Ejemplo Imprimir los valores factoriales de n entre 1 y 5000
76 Estructura de repetición do-whilewhile: haz mientras Igual que while solo que primero ejecuta el bloque. Do-while, sintaxis: do{ [bloque de sentencias de la estructura while] } while( [condición] ) ; int c=0; System.out.println(“Hola"); c=Integer.parseInt(JOptionPane.showInputDialog(“Nuevo val.")); } while( c != 1);
77 Ejercicio Hacer un programa que imprima un menu hasta que se elija la opción salir. 0 para salir
78 Programación Orientada a Objetos
79 Que es la POO Define la computación como la interacción entre objetos autónomos mediante la utilización de objetos La programación se convierte en simulación. Los objetos son instancias de clases que se pueden organizar en jerarquías. Los objetos se comportan independientemente Utilizan la selección de las operaciones en tiempo de ejecución cuando interpretan los mensajes provenientes de otros objetos.
80 ¿Que es un objeto (Concepto)?En una cosa tangible, o que se puede comprender intelectualmente.
81 ¿Qué es un objeto en la P.O.O.?Es un ejemplar de una definición de clase. El objeto representa una un estado (el valor de sus atributos) desde el mismo momento en el que fue creado. El comportamiento es determinado por la definición de la clase.
82 ¿Que es una clase? Una clase esta formada por:Clase es la definición de tipo de dato. Es una “Plantilla” de un tipo de datos. Una clase esta formada por: Un nombre, Atributos Y métodos NOMBRE ATRIBUTOS MÉTODOS
83 Clase Foco La siguiente es la definición de una nueva clase de nombre Foco: Foco potencia color marca encender() fundir() setMarca(String) String getMarca() Atributos Métodos
84 Atributos Los atributos de una clase clase define sus características y tienen algún valor. Los atributos pueden ser de diferentes tipos de datos. Foco int potencia String color String marca encender() fundir() setMarca(String) String getMarca()
85 Métodos Establece las interfaces de comunicación con el código.Define el comportamiento de la clase Establece las interfaces de comunicación con el código. Los métodos pueden o no recibir parámetros de entrada. Retornan un tipo de datos.
86 Métodos de la clase Focoint potencia String color String marca void encender() void fundir() void setMarca(String) String getMarca()
87
88 Que es un objeto en la POOCrear un objeto de tipo Foco Foco unFoco = new Foco(); Encender unFoco int potencia=0 String Color=null String marca=null Fundir setMarca(String m)
89 Usando la definición de clase Foco
90 Abstracción Generalización conceptual de los atributos y comportamiento de los objetos Objetivo: Abstraer los métodos y atributos comunes a un objeto y almacenar su definición en una clase.
91 Encapsulación Empaquetar un conjunto de objetos en una definición de clase Separación del aspecto externo del interno del objeto Se maneja al objeto como una caja negra Asegura que la implementación de un objeto sin afectar a los clientes.
92 Especificadotes de accesopublic private protegido friendly
93 Public El elemento (atributo o método) es visible desde cualquier parte en donde se este usando la clase. Este tipo de modificador permite establecer el aspecto externo de la clase.
94
95 private: privado El elemento solo es visible desde la clase en que esta definido. Este especificador permite establecer el aspecto interno de la clase, es decir permite el encapsulamiento.
96 Ejemplo con la clase FocoObservar que en la clase useFoco se puede acceder al nombre directamente. Hacer privado el atributo nombre en la clase Foco. Recompilar la clase “useFoco”,observe que pasa cuando se trata de acceder al atributo nombre. Hacer lo mismo con un método.
97
98 protected: protegido Relacionado con el concepto de Herencia (se vera más adelante). Es una combinación de los accesos que proporcionan los modificadores public y private. Proporciona acceso público para las clases derivadas producto de la herencia. Para todas las demás clases se hacen privadas.
99 Friendly Implícito, default (No tiene palabra clave).Las clases del mismo paquete tienen acceso a este elemento.
100 Ejemplo Modificar la clase Foco, establecer el atributo raza friendly(sin tipo de acceso) Recompilar y probar la clase UseFoco Hacer una clase externa al paquete cosas y tratar de acceder al atributo potencia.