Introducción

Post on 12-Jun-2015

1.266 views 2 download

Transcript of Introducción

Lenguaje Java

Introducción

Objetivos de la asignatura

• Entender los conceptos básicos de la programación

orientada a objetos.

• Diseñar clases y jerarquías de clases.

• Escribir un programa java para un ambiente de

programación.

• Resolver diferentes problemas usando JAVA

Evaluación de la asignatura

• Una pregunta escrita (Miércoles 17)

• 2 trabajos extraclase por equipos. (22 y 30)

• 2 Pruebas Prácticas (23 y 29)

• Una prueba final (Jueves 1 de agosto)

Trabajo extraclase

• Seminario de IDEs y herramientas.

Temas de la clase

• Qué es Java ?

• Un poco de historia

• Herramientas disponibles

• Primer programa en Java

Objetivos de la clase

• Conocer las razones que dieron origen al lenguaje JAVA.

• Conocer herramientas para trabajar con JAVA.

• Comprender las diferencias y similitudes de JAVA con

otros lenguajes de programación

Popularidad de los lenguajes

Julio 2013

Herramientas

• JDK 7u25

• IDE NetBeans 7.3

Historia

• El lenguaje de programación Java fue originalmente

desarrollado por James Gosling de Sun Microsystems

• Formaba parte del proyecto GREEN, software para

controlar dispositivos electrodomésticos.

• A Gosling no le gustaba como C++ resolvía las tareas.

Historia

• Los objetivos eran implementar una máquina virtual y un

lenguaje con una estructura y sintaxis similar a C++.

• El primer nombre que tuvo este proyecto fue OAK.

• Una hipótesis arroja que Java debe su nombre a un tipo

de café disponible en la cafetería cercana.

James Gosling

• Nacido el 19/5/55 en Alberta, Canadá

• Licenciado en ciencias de la computación.

• En 1983 se hizo Doctor en Ciencias Técnicas.

• En 1984 se unió a la compañía Sun Microsystems

donde fue vicepresidente hasta 2010.

• http://nighthacks.com/roller/jag/resource/bio.html

Cronología

Versiones

• JDK 1.0 (23 de enero de 1996)

• JDK 1.1 (19 de febrero de 1997)

• J2SE 1.2 (8 de diciembre de 1998)

• J2SE 1.3 (8 de mayo de 2000)

• J2SE 1.4 (6 de febrero de 2002)

• J2SE 5.0 (30 de septiembre de 2004)

Versiones

• Java SE 6 (11 de diciembre de 2006)

• Java SE 7 (2006)

• El JRE (Java Runtime Environment

• JDK (Java Development Kit).

Características

• Orientado a objetos.

• Independiente de la plataforma (WORA).

• Seguro.

• Escalable.

• Fácil de usar.

Orientación a Objetos

• Nace en los años 60 aplicado a simulaciones de sistemas

físicos.

• Su objetivo principal era disminuir la complejidad del

desarrollo y mantenimiento de software.

• Existen actualmente un grupo importante de lenguajes

de programación que implementan este paradigma.

Ventajas de la OO

• Suministra modelos similares a los del mundo real.

• Facilita el desarrollo de sistemas complejos, la

reutilización.

• Permite un desarrollo iterativo de aplicaciones.

• Facilita la interoperabilidad entre aplicaciones.

Ventajas de la OO

• Abstracción

• Encapsulamiento.

• Modularidad

• Herencia.

• Polimorfismo

Orientación a Objetos

La Orientación a Servicios está basada en 3 distintas

actividades:

• OOA (Se determina la funcionalidad del sistema)

• OOD (Cómo la arquitectura soporta este funcionamiento)

• OOP (Implementación de la aplicación)

Orientación a Objetos

Producto del análisis y el diseño se generan artefactos:

Entre ellos uno de los más importante es el Diagrama de

Clases (UML).Nombre

Atributos

Métodos

Tipos de aplicaciones JAVA

• Aplicaciones de consola

• Aplicaciones de ventanas (Swing , AWT, SWT)

• Aplicaciones Web (JSP, Servlets, JSF , entre otros

estándares)

• Aplicaciones embebidas.

• Componentes para aplicaciones.

Aplicación simple

public class Application {

public static void main(String[] args) {

System.out.println(“Bienvenido al curso de JAVA");}

}

Java Bean

package umg.curso.clase1;

public class SimpleBean {

private String nombre ;

public String getNombre() {

return this. nombre ;

}

public void setNombre(String nombre ) {

this. nombre = nombre ;

}

}

Estructura de una clase

• En Java el código esta organizado alrededor de los

siguientes elementos.

• Paquetes

• Clases

• Métodosclass classname {

// define class level variables

// define methods

}

Estructura de una clase

• Constructores.

• Interfaces

• Métodospublic void setName(String name) throws Exception {

if(name == null) {

throw new Exception("Names must not be null");

} else {

this.name = name;

}

}

Cliente

Paquetes usados y estructura SDK

bin JAVA_HOME

db

demo

jre

sample

java.lang (Class, Object)

java.io (Files, Streams)

java.net (Sockets , Url)

java.util (Stack, Date)

java.awt (Windows)

Compilando aplicaciones Java

Datos primitivos, wrappers y variables (Convención)

boolean

byte

chart

short

int

long

float

double

• int numberWheels;

• int I,j,k;

• float mileage;

• boolean engineOn;

• int $newValue;

• String ownerName;

• String _byline;

Boolean

Byte

Character

Short

Integer

Long

Float

Double

Acceso y Scoping

public

protected

private

Enums

public enum Directions {NORTH, SOUTH, EAST, WEST}

Directions direction;

direction = Directions.EAST;

System.out.println(direction);

String

String s = “Para ";

s = s + " cadenas";

System.out.println(s);

equals

equalsIgnoreCase

startsWith

endsWith

compareTo

length

charAt

substring

indexOf

lastIndexOf

switch

switch (expression) {

case value: statements

case value: statements

default: statements

}

switch (zone) {

case 6: shippingCost = weight * 0.23f;

break;

case 15: shippingCost = weight * 0.35f;

break;

default: shippingCost = weight * 0.25f;

}

Arrays

• Son objetos en los que podemos guardar mas de una variable

que deben ser del mismo tipo.

• Pueden se unidimensionales o multidimensionales.

• Se declara: tipo_dedato [] nombre_variable;

• Para definir tamaño:String array[] = new String[10];

• int arreglo[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

Arrays

• Son objetos en los que podemos guardar mas de una variable

que deben ser del mismo tipo.

• Pueden se unidimensionales o multidimensionales.

• Se declara: tipo_dedato [] nombre_variable;

• Para definir tamaño:String array[] = new String[10];

• int arreglo[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

Arrays

• Son objetos en los que podemos guardar mas de una variable

que deben ser del mismo tipo.

• Pueden se unidimensionales o multidimensionales.

• Se declara: tipo_dedato [] nombre_variable;

• Para definir tamaño:String array[] = new String[10];

• int arreglo[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

IntroducciónEjercitación

Deportes con balón.

•Declaración de listado de deportes

•Por cada deporte se pregunta al especialista si es con

balón.

•De ser cierto se adiciona el deporte a otra lista de

deportes con balon (al inicio).

•Se imprime la lista.

Ejercicio

Colecciones

• Una colección es un objeto que permite agrupar otros objetos.

Generalmente, los elementos en una colección representan datos de una

agrupación específico de objetos, como una colección de personas, casas.

En un colección se pueden realizar operaciones sobre los objetos que están

almacenados en su interior, así podemos almacenar, manipular, obtener y

comunicar entre estos objetos.

• Java viene con un grupo de clases preconstruídas, para el uso de

colecciones las cuales conforman el Collection Framework. Este Framework,

está constituido por:

Colecciones

• Interfaces: Son representaciones abstractas para colecciones. Las

interfaces permiten mantener un manejo particular para las colecciones que

las implementan.

• Implementaciones: Estas son implementaciones concretas de interfaces,

es decir son estructuras utilizables.

• Algoritmos: Son métodos que realizan algún tipo de operación sobre una

colección (búsqueda, ordenamiento).

Colecciones

• La API (Colleections) de Java provee a los desarrolladores con un conjunto

de clases e interfaces que facilitan la tarea de manejar colecciones de

objetos. En cierto sentido, las colecciones trabajan como los arreglos, la

diferencia es que su tamaño puede cambiar dinámicamente y cuentan con un

comportamiento (métodos) más avanzado que los arreglos.

• La interfaz Collection es otra de las interfaces raíz de las clases de

colecciones de Java. Aunque no es posible instanciar de manera directa una

Colección, en lugar de eso se crea un subtipo de Colección .

• Las siguientes interfaces (tipos de colección) heredan de la interfaz

Collection: List , Set, SortedSet, NavigableSet, Queue, Deque

Iterando Colecciones

Existen varias formas de recorrer una colección.

• Mediante for-each , usando iteradores

for-each

for(Object o: collection){ System.out.println(o);}

Iteradores

Iterator<String> nombreIterator = nombreArrayList.iterator();

while(nombreIterator.hasNext()){

String elemento = nombreIterator.next();

System.out.print(elemento+" / "); }

Collection

ArrayList

• La clase ArrayList en Java, es una clase que permite almacenar datos en

memoria de forma similar a los Arrays, con la ventaja de que el numero de

elementos que almacena, lo hace de forma dinámica, es decir, que no es

necesario declarar su tamaño como pasa con los Arrays.

List<String> nombreArrayList = new ArrayList<String>();

nombreArrayList.add("Elemento"); // Añade el elemento al ArrayList

nombreArrayList.add(n, "Elemento 2"); // Añade el elemento en la posición 'n'

nombreArrayList.size(); // Devuelve el numero de elementos del ArrayList

nombreArrayList.get(2); // Devuelve el elemento que esta en la posición '2'

ArrayList

nombreArrayList.contains("Elemento"); // Comprueba se existe del elemento

nombreArrayList.indexOf("Elemento");

nombreArrayList.lastIndexOf("Elemento");

nombreArrayList.remove(5);

nombreArrayList.remove("Elemento"); // Borra la primera ocurrencia del

'Elemento' que se le pasa como parametro.

nombreArrayList.clear(); //Borra todos los elementos de ArrayList

nombreArrayList.isEmpty(); // Devuelve True si el ArrayList esta vacio. ArrayList

arrayListCopia = (ArrayList) nombreArrayList.clone(); // Copiar un ArrayList

Object[] array = nombreArrayList.toArray(); // Pasa el ArrayList a un Array

Ejercicio de la U

Excepciones

Excepciones