Algoritmos y Estructura de Datos

Slides:



Advertisements
Presentaciones similares
Curso de java básico (scjp)
Advertisements

Curso de java básico (scjp)
Curso de java básico (scjp)
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
Programación Interactiva Fundamentos de Java. 2 Ejecución de un programa Para Java una clase ejecutable es aquella que es pública y tiene un método main()
Lenguaje de programación Java
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
Orientación a Objetos con Java SE
El proceso de desarrollo de software
Introducción Abdelahad, Corina Natalia Abdelahad, Yanina Zoraida
Genéricos en Java Jaime Ramírez, Ángel Lucas González
1.2 Sintaxis del lenguaje Java.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
ESTRUCTURAS DE SECUENCIA
Programación Orientada a Objetos en Java
Ingeniero Anyelo Quintero
Conceptos Básicos de Java
Material Elaborado por: Lic. Saily González. CONTENIDO 2.1- Estructura de una Aplicación JAVA 2.2- Elementos básicos de la Programación JAVA Comentarios.
HERENCIA.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Modificadores.
POO Java Módulo 3 Elementos de programas Identificadores
Lic. Rosemary Torrico Bascopé
Java Orientado a Objetos CLASES,OBJETOS Y MÉTODOS
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Creación de Aplicaciones
Tema 6: Clases Antonio J. Sierra.
6. Herencia. Clases abstractas. Genericidad
Unidad I Java y C++ : Similitudes y diferencias
Public class MiClase { public static int tmp = 123; // miembro variable public static final double PI = ;// miembro constante public float.
SCJP Sun Certified Programmer for Java 6
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA TRES ASIGNACION.
El lenguaje de programación Java
JAVA J.A.C..
7. Interfaces Herencia múltiple Interfaces Comparable y Comparator
Tema 2: Los tipos de datos
Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
Capitulo # 4 herencia PROGRAMACION III UNIVERSIDAD
Sintaxis de C# (Declaraciones y Tipos)
Introducción a Java (2ª parte) - excepciones, colecciones, i/o, … -
Diplomado Desarrollo de Aplicaciones en Internet
Programación Orientada a Objetos
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Curso Programación en Java
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Lenguaje de programación Java UNIVERSIDAD REGIONAL DEL SURESTE.
Resumen Fundamentos de Programación/ Programación I
Programación orientada a objetos. El método main es el comportamiento por el cual comienzan todos los programas en Java, de la misma forma en la que C,
Metodología de Programación Ayudantía 5 lelagos.ublog.cl 2009.
ELO3291 Estructuras fundamentales de la programación en Java ELO-329: Diseño y programación orientados a objetos Agustín J. González.
ELO3291 Estructuras fundamentales de la programación en Java ELO-329: Diseño y programación orientados a objetos Agustín J. González.
Clases y Objetos en Java ELO329: Diseño y Programación Orientados a Objetos.
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
IDENTIFICADORES Un identificador es un "nombre" que nos permite dirigirnos específicamente a una de las entidades propias del lenguaje, es decir, son los.
Detalles Generales sobre Java
Fundamentos de Programación
Ing. Esp. Ricardo Cujar.  Lenguaje de programación orientado a objetos.  Desarrollado por Sun MicroSystems.  Independiente del Sistema Operativo gracias.
Clases “ Es una Abstracción de un elemento del mundo real ”
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones Fundamentos de Programación Departamento.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Concepto de Tipo y Subtipo Diseño e Implementación Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 10 Versión.
Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 3.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Taller de Java Universidad de los Andes
Transcripción de la presentación:

Algoritmos y Estructura de Datos Introducción a Java Algoritmos y Estructura de Datos

El lenguaje Java Orientado a Objetos Tipos estrictos Clases estrictas

Tipos Primitivos Tipos numéricos Tipos no numéricos Tipos enteros: byte, enteros 8-bits con signo complemento a 2, short, enteros 16-bits con signo complemento a 2 int, enteros 32-bits con signo complemento a 2 long, enteros 64-bits con signo complemento a 2 Tipos en coma flotante: float, real en coma flotante, 32-bits IEEE 754 double, real en coma flotante, 64-bits IEEE 754 Tipos no numéricos char, carácter 16-bits Unicode boolean, tipo lógico, cuyos valores son true (cierto) y false (falso)

Operadores Igualdad y desigualdad: == , != Comparación: <, <=, >, >= Suma y resta unarios: +, - Suma, multiplicación, división y módulo: +, -, *, /, % Incremento y decremento prefijos y posfijos: ++, -- Desplazamiento con signo y sin signo: <<, >>, >>> Negación lógica unaria de bits: ~ Lógica de bits: &, |, ^ Lógica booleana: &&, ||

Expresiones Grupos de Precedencia Funciones especiales: Grupo 0: ( ) Grupo 1: ++, --, + (unario), - (unario) Grupo 2: *, /, % Grupo 3: +, -, + (concatenación) Funciones especiales: Seno x => Math.sin(x) x2 => Math.pow(x,2) Math.round(6.6) => 7

Asignación Utilización de operadores: var1 = var2 + var3; // asignar a var1 el valor de var2 + var3 var1 = var2 - ver3; // asignar a var1 el valor de var2 - var3 var1 = var2 * ver3; // asignar a var1 el valor de var2 * var3 var1 = var2 / ver3; // asignar a var1 el valor de var2 / var3 var1 = var2 % ver3; // asignar a var1 el valor de var2 % var3 Asignaciones de incremento decremento: variable++; // añadir uno a variable variable--; // restar uno a varibale variable += exp; // añadir exp a variable variable -= exp; // restar exp a variable

Declaración de Variables tipo nombre; tipo nombre1, nombre2, nombre3; tipo nombre = valor; Declaración de Constantes: static final tipo nombre = valor;

Conversiones entre tipos Asignar una variable a otra cuyo tipo es mayor de tamaño: byte => short => int => long => float => double Para pasar de un tipo a otro menor en tamaño, tenemos que hacer una conversión explícita de tipos: (tipo)expresion

Paquetes Paquetes Java más importantes: lang – para funciones del lenguaje; util – para utilidades adicionales; io – para entrada y salida; text – para formateo especializado; awt – para gráficos e interfaz gráfica de usuario Para acceder a cualquiera de estos paquetes, excepto lang que está siempre disponible, usamos el siguiente modelo: import java.nombrepaquete.*;

Declaración de Clases modificador class nombreClase { < declaración de campos > < declaración de métodos > } modificador puede ser public o nada; si la clase no pertenece a un paquete, ambas definiciones son equivalentes; si la clase pertenece a un paquete, entonces, si se declara public, la clase podrá utilizarse fuera del paquete, pero si no se declara public, sólo podrá utilizarse dentro del paquete

Declaración de Objetos nombreClase nombreObjeto; nombreClase nombreObjeto1, nombreObjeto2, nombreObjeto3; nombreClase nombreObjeto = nombreOtroObjeto; nombreClase nombreObjeto = new nombreClase(); Ejemplo: clasePublica elObjeto; clasePublica elObjeto1, elObjeto2, elObjeto3; clasePublica elObjeto4 = elObjeto; clasePublica elObjeto5 = new clasePublica();

Declaraciones de Campos modificadores tipo nombreCampo; modificador puede ser: private, accesible solo desde dentro de la propia clase protected, accesible solo desde la propia clase, clases del mismo paquete o subclases public,accesible por todos package,si no se especifica nada, es el modo por defecto, accesible solo desde el propio paquete; si la clase no se encuentra dentro de un paquete, es equivalente a public. Otros modificadores que se pueden añadir son: static, indica que el campo pertenece a la clase, no a un objeto concreto final, indica que dicho campo no puede ser sobreescrito en una subclase tipo es el tipo del campo (tipo primitivo o clase del objeto) nombreCampo es el nombre del campo

Acceso a Campos objeto.campo; // si campo no es static nombreClase.campo; // si campo es static elObjeto.doblePublico = 5.0; double doble = elObjeto.doblePublico; Clase.doblePublicoEstatico = 7.0; Double doble = Clase.doblePublicoEstatico;

Declaración de Métodos modificador tipo nombreMetodo(<lista de parametros formales>) { < cuerpo del método; campos e instrucciones > return expresion; // solo métodos que devuelven resultado } <lista de parametros formales> = (tipo campo, tipo campo, ...) modificador significa lo mismo que para los campos. tipo es el tipo devuelto por el método, puede ser: void si el método no devuelve nada un tipo primitivo una clase nombreMetodo es el nombre del método

Ejemplo de Clase public class Clase { private int enteroPrivado; static private int enteroEstaticoPrivado; public void estableceEntero(int entero) { enteroPrivado = entero; } public int recuperaEntero() { return entero; static public void estableceEnteroEstatico(int entero) { enteroEstaticoPrivado = entero; static public int recuperaEnteroEstatico() { return enteroEstatico;

Llamadas a Métodos Ejemplo: metodo(<lista parametros reales>); // metodos de la propia clase objeto.metodo(<lista dparametros reales>); // metodos no estaticos nombreclase.metodo(<lista parametros reales>); //metodos estaticos Ejemplo: elObjeto.estableceEntero(7); int entero = elObjeto.recuperaEntero(); Clase.estableceEnteroEstatico(8); int entero = Clase.recuperaEnteroEstatico();

Declaración de Métodos Constructores modificadores nombreClase(<lista argumentos formales>) { < cuerpo del método constructor > } Ejemplo: public class Clase { private int enteroPrivado; public Clase() { enteroPrivado = 0; public Clase(int entero) { enteroPrivado = entero;

Llamadas a Métodos Constructores nombreClase objeto = new nombreClase(<lista parametros reales>); Ejemplo: Clase elObjeto; elObjeto = new Clase(); O en una sola línea: Clase elObjeto = new Clase(); Clase elObjeto = new Clase(5);

Modelo de un Programa public class nombrePrograma { public static void main(String[] args) { < cuerpo del programa > }

Herencia modificadores class nombreClase extends nombreClaseQueExtiende { } Ejemplo public class ClaseExtendida extends Clase { Una clase que extiende otra, se llama subclase o clase hija, mientras que la clase a la que extiende (la original) se llama superclase o clase paterna. La subclase hereda los miembros (propiedades y métodos) de la superclase.

Cambio de tipo Cualquier objeto de una subclase puede ser asignado a un objeto de su superclase. Cualquier objeto de una superclase puede ser asignado a una subclase con una conversión explícita (cambio de tipo). ClaseExtendida elObjetoExtendido = new ClaseExtendida(); Clase elObjeto = laClaseExtendida; ClaseExtendida elObjetoExtendido = (ClaseExtendida)elObjeto;

Superconstrucción modificadores class nombreclase extends nombreClaseQueEstiende { public nombreClase(<lista de parametros formales>) { super(<lista de parametros reales>); <instrucciones de inicializacion> } Importante: La llamada al superconstructor debe ser la primera instrucción de un constructor.

Ejemplo de Superconstrucción public class Clase { private int enteroPrivado; public Clase(int entero) { enteroPrivado = entero; } public class ClaseExtendida extends Clase { private double doblePrivado; public ClaseExtendida(int entero, double doble) { super(entero); doblePrivado = doble;

Variables Enmascaradas public class Clase { public int dato; } public class ClaseExtendida extends Clase { public double dato; public estableceDatos(int entero, double doble) { super.dato = entero; dato = doble; Clase elObjeto = new Clase(); ClaseExtendida elObjetoExtendido = new ClaseExtendida(); elObjeto.dato = 5; // es un valor entero elObjetoExtendido.dato = 6.4; // es un valor doble elObjetoExtendido.estableceDatos(3,7.8);

Sobreescritura de Métodos public class Clase { public int dato; public estableceDato(int entero) { dato = entero; } public class ClaseExtendida extends Clase { public int datoExtendido; super.estableceDato(entero); datoExtendido = entero*2;

Paquetes package nombrePaquete; modificador class nombreClase { < declaracion de la clase > } Importante: Si deseamos que una clase sea utilizada fuera de su paquete, deberemos declararla como public.

Abstracción mediante interfaces modificador interface nombreInterfaz { < especificaciones de los métodos > }   modificador class nombreClase implements nombreInterfaz { < implementación de los metodos de la interfaz > < implementación de metodos y datos propios de la clase >

Propiedades de los Objetos Objetos nulos: null El identificador this public class Clase { private int entero; public Clase(int entero) { this.entero = entero; }

Objetos vs Variables Una variable tiene memoria para un solo valor y dispone de un conjunto predefinido de operaciones según sea su tipo. Un objeto tiene memoria para un grupo de varios valores, junto con un conjunto coherente de métodos que operan sobre esos valores. Tanto métodos como valores están encapsulados en la clase de la que se ha obtenido el objeto.

La superclase Object En Java, todas las clases son subclases de una clase especial llamada Object. Java alcanza la generalidad utilizando objetos de diferentes clases en las mismas partes del programa, pero todos ellos pertenecen a la clase Object.

Igualdad de Objetos Ejemplo: modificador class nombreClase { public boolean equals() { < instrucciones para comparar con los campos de obj > return resultado de la comparacion; } Ejemplo: public class Clase { private int entero; public boolean equals(Clase c) { return (c.entero==entero);

Asignación de Objetos modificador class nombreClase implements Cloneable { public Object clone() { nombreClase obj = new nombreClase(parametros); < instrucciones para copiar los campos a obj > return obj; } public class Clase implements Cloneable { private int entero; Clase c = new Clase(); c.entero = entero; return c;

Conversiones de Clase El método clone invocado sobre clase2 devuelve un objeto de la clase Object. Esto debe ser así, porque lo exige la interfaz Cloneable. Para convertirlo de nuevo a Clase necesitamos la conversión explícita de tipo. Clase objeto1 = (Clase)objeto2.clone();

Arrays Declaración e instanciación de un array de n enteros: int miArray[]; miArray = new int[n]; Lo mismo en una sola línea: int miArray[] = new int[n]; Declaración e instanciación de un array de n objetos: MiClase miArray[] = new MiClase[n]; for(int i=0;i<n;i++) miArray[i] = new MiClase();

Selección con if-else if (condicion) instrucción; else instrucción; if (velocidad>limite) System.out.println("Multazo"); else System.out.println("Buen conductor");

Sucesivos else-if if (condicion) instrucción; else if (condicion) instrucción; .... else instrucción; if (nota>=9) calificacion=’SB’; else if (nota>=7) calificacion=’N’; else if (nota>=5) calificacion=’A’; else calificacion=’S’;

La instrucción switch switch (expresion) { case valor: instrucción; break; .... default: instrucción; break; } switch(nota) { case 10: case 9: calificacion = ‘SB’; break; case 8: case 7: calificacion = ‘N’; break; case 6: case 5: calificacion = ‘A’; break; default: calificacion = ‘S’; break;

Bucles for for(inicio; prueba; actualización) { < cuerpo del bucle for > } for(int i=0; i<5;i++) System.out.println("hola"); for(int i=0; i<5;i++) { cuenta += i;

Bucles for indeterminados < cuerpo del bucle for > if (condicion) break; } for(inicio; ; actualización) {

Bucles condicionales while <instrucciones para inicializar las condiciones> while (condiciones) { <instrucciones para llevar a cabo el bucle y cambiar condiciones > } int i=0; while(i<5) { System.out.println("hola"); i++;

Bucles condicionales do while <instrucciones para inicializar las condiciones> do { <instrucciones para llevar a cabo el bucle y cambiar condiciones > } while (condiciones); int i=0; System.out.println("hola"); i++; } while (i<5);

Cadenas de Caracteres La clase String Creación de una cadena: String miCadena = "Esta es la cadena"; Cadena Vacía vs Cadena Nula String s1; // Cadena Nula, igual al valor null String s2= ""; // Cadena Vacía

Cadenas (continuación) Comparación de cadenas: if (cadena1.equals(cadena2)) System.out.println("Las cadenas son iguales"); else System.out.println("Las cadenas no son iguales"); Concatenación de cadenas: String c3 = c1+c2;

Salida por pantalla import java.io.*; System.out.println(elementos); System.out.print(elementos); System.out.println("hola"); // escribe "hola" System.out.println(5); // escribe 5 int i = 5; System.out.println(i) ; // escribe 5; double d=6.4; System.out.println(d); // escribe 6.4; double d=6.4; System.out.println("d="+d); // escribe d=6.4;

El método toString Cuando sobreescribimos el método toString de Object, esto nos ofrece un acceso automático al método println como sigue: public class Clase { private int entero; public Clase (int e) { entero = e; } public String toString() { return(""+e); Clase miClase = new Clase(5); System.out.println(miClase); // escribe "5" System.out.println("clase="+miClase); // escribe "clase=5"

Entrada desde teclado String cadena = in.readLine(); import java.io.*; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String cadena = in.readLine();

Lectura de números int i=Integer.valueOf(in.readLine()).intValue(); double d=Double.valueOf(in.readLine()).doubleValue(); int i=Integer.valueOf(in.readLine().trim()).intValue(); double d=Double.valueOf(in.readLine().trim()).doubleValue();

Entrada/Salida desde Archivos BufferedReader fin = new BufferedReader(new FileReader(nombreArchivo)); PrintWriter fout = new PrintWriter(new FileWriter(nombreArchivo)); fout.close();

Excepciones Una excepción es un objeto que avisa que ha ocurrido alguna condición inusual. Java tiene muchos objetos de excepción predefinidos y también podemos crear los nuestros propios Para utilizar excepciones, tenemos que hacer cuatro cosas: Intentar: crear un bloquee alrededor de la instrucción donde puedan ocurrir excepciones y precederlas con la palabra clave try Capturar: colocar a continuación de la instrucción try otro bloque precedido por la palabra catch Lanzar: si no se trata la excepción, ésta pasará automáticamente al método llamador; si la capturamos y la tratamos parcialmente, podemos de todas formas pasarla con una instrucción throw. Declarar: mencionar en la declaración del método qué excepciones se devolverán al método llamador.

Ejemplo public void leeArchivo(String nombre) throws IOException { BufferedReader fin = new BufferedReader(new FileReader(nombre)); try { while(true) { cadena = fin.readLine(); System.out.println(cadena); } } catch (EOFException e) { System.out.println("Fin del archivo");

Excepciones definidas por el usuario public class nombre extends Exception { public nombre() {} public nombre(String s) { } } throw new nombre(“mensaje”);

Ejemplo public class DenominadorCeroException extends Exception { public DenominadorCeroException() { super(); }; public DenominadorCeroException(String s) { super(s); }; } public class Racional { private int num, den; public Racional(int n, int d) throws DenominadorCeroException { if (d==0) throw new DenominadorCeroException("Denominador cero"); num = n; den = d;