Java Básico Universidad Nacional Autónoma de México Facultad de Estudios Superiores Aragón.
-
Upload
eugenia-olgin -
Category
Documents
-
view
221 -
download
0
Transcript of Java Básico Universidad Nacional Autónoma de México Facultad de Estudios Superiores Aragón.
Java Básico
Universidad Nacional Autónoma de MéxicoFacultad de Estudios Superiores Aragón
Agenda
Conceptos Básicos Que 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)
Agenda (cont.) Programación Orientada a Objetos con Java
Conceptos 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
Arquitectura Von Newman
Lenguaje de Programación: Definición
Un 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).
Lenguaje de programación
Sintaxis + Semántica
Sintaxis (estructura léxica) Gramáticas libres de contexto, estructura léxica,
tokens Semántica (significado)
Lenguaje natural Semántica operacional Semántica denotacional
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.
Ejemplo…int A=0;int B=8;int C=7;A= B + C;System.out.println(A);…
…int =0A;B int =8;C=7 int;A B + C =;System.out.println(); A…
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).
Paradigmas de programación
Universidad Nacional Autónoma de México
Diplomado de Tecnologías de la Información
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
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)
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
qsort [] = []qsort (x:xs) = qsort elts_lt_x ++ [x] ++ qsort elts_greq_xwhereelts_lt_x = [y | y <- xs, y < x]elts_greq_x = [y | y <- xs, y >= x]
LISP, Haskell, Gofer
Paradigma Lógico
Se basa en la manipulación de bases de conocimiento para decidir resolver problemas lógicos
% Basepadre(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(A,P), padre(P,B).
?- nieto(luis,X).
X = leoncio No
Paradigma orientado a objetos
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 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
Programación Orientada a Objetos
Universidad Nacional Autónoma de México
Introducción a la Programación con Java
Antes de entrar a los conceptos de programación estudiaremos el entorno de programación Java
¿ 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.
Enterprise JavaBeansEnterprise JavaBeans
RMIRMI
Programación distribuidaProgramación distribuida
CORBACORBA
JDBCJDBCBases de datosBases de datos
Java3DJava3D
Java2DJava2D
Programación gráficaProgramación gráfica
JINIJINI
Sistemas embebidosSistemas embebidos
JavaSpacesJavaSpaces
AppletsApplets
WWWWWW
Java Web StartJava Web Start
ServletsServlets
Java Server PagesJava Server Pages
ServidorServidor
Java Server FacesJava Server Faces
JavaBeansJavaBeans
JNIJNI
ProgramaciónProgramación
java.*java.*
J2MEJ2ME
AWT
AWT
Programación UIProgramación UI
SwingSwingSWTSWT
Palabras clave (sintaxis)
abstractbooleanbreakbytebyvaluecasecastcatchcharclassconstcontinue
defaultdodoubleelseextendsfalsefinalfinallyfloatforfuturegeneric
gotoifimplementsimportinnerinstanceofintinterfacelongnativenewnull
operatorouterpackageprivateprotectedpublicrestreturnshortstaticsuperswitch
synchronizedthisthrowthrowstransienttruetryvarvoidvolatilewhile
Java es independiente de la plataforma
Es 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.
Arquitectura Java
La maquina virtual de java
jvm jvm jvm
¿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.
Creando una aplicación Java
Los 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.
Todo 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 “}”
Partes del programa en java
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.
Guardar el programa
El comando javac compila el código fuente Java y lo convierte en Bytecodes.
Nota: Revisar las variables de entorno PATH y CLASSPATH
Compilando el programa
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.
Respuesta:
Estructura de una clase en java
Nombre del paquete al que pertenece
Inclusió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
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.
Interfaz
interfaz
Interfaz
Interfaz
Classpath (bibliotecas)
Matisse
Primer proyecto en NetBeans
Elegir tipo de proyecto
Propiedades del Proyecto
Proyecto Generado
Proyecto
Paquete
Ventana de edición de código
Edición Código
Compilación y Ejecución
Introducción a la Programación
Orientada a Objetos
Convenciones decodificación
http://java.sun.com/docs/codeconv/ 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.
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.
Atributos.- 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
Introducción a la programación con
Java
Ejemplo 1
Ejemplo2
Estructuras de control
Secuencia Selección
If If-else Switch
Repeticion For While Do-while
Secuencia
Implícita en el lenguaje Se 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.
Estructura de selección if
If: 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]}
Operadores relacionales
Ejemplo3
Imprimir a si y solo si es mayor que b
Estructura de selección if -else
If: 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”]}
Ejemplo if-else
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=9b=3c=56
Resultado : c es el mayor de todos, es igual a 56
Estructura de selección switch switch: 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] break;
…default:
[bloque default]break;}
Ejercicio
Tenemos 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
Estructura de repetición for for: 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");
}
Ejercicio
Hacer un programa que imprima en pantalla la tabla del 7
Hacer un programa que imprima las tablas desde 3 al 8.
Solución
Estructura de repetición while while: 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();}
Ejemplo
Imprimir los valores factoriales de n entre 1 y 5000
Estructura de repetición do-while while: 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; do{
System.out.println(“Hola"); c=Integer.parseInt(JOptionPane.showInputDialog(“Nuevo val."));} while( c != 1);
Ejercicio
Hacer un programa que imprima un menu hasta que se elija la opción salir. 0 para salir
Programación Orientada a Objetos
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.
¿Que es un objeto (Concepto)?
En una cosa tangible, o que se puede comprender intelectualmente.
¿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.
Clase es la definición de tipo de dato.
• Una clase esta formada por:Un nombre, AtributosY métodos
NOMBRE
ATRIBUTOS
MÉTODOS
Es una “Plantilla” de un tipo de datos.
¿Que es una clase?
Clase Foco
La siguiente es la definición de una nueva clase de nombre Foco:
Foco
potenciacolormarca
encender()fundir()setMarca(String)String getMarca()
Atributos
Métodos
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 potenciaString colorString marca
encender()fundir()setMarca(String)String getMarca()
Métodos
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.
Métodos de la clase Foco
Foco
int potenciaString colorString marca
void encender()void fundir()void setMarca(String)String getMarca()
Crear un objeto de tipo Foco
Foco unFoco = new Foco();
unFocoint potencia=0
String Color=null String marca=null
FundirEncender
setMarca(String m)
Que es un objeto en la POO
Usando la definición de clase Foco
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.
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.
Especificadotes de acceso
publicprivateprotegidofriendly
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.
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.
Ejemplo con la clase Foco
1. Observar que en la clase useFoco se puede acceder al nombre directamente.
2. Hacer privado el atributo nombre en la clase Foco.
3. Recompilar la clase “useFoco”,observe que pasa cuando se trata de acceder al atributo nombre.
4. Hacer lo mismo con un método.
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.
Friendly
Implícito, default (No tiene palabra clave). Las clases del mismo paquete tienen acceso
a este elemento.
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.