Java Básico Universidad Nacional Autónoma de México Facultad de Estudios Superiores Aragón.

Post on 28-Jan-2016

221 views 0 download

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.