Introducción a JAVA CI-2693 LABORATORIO DE ALGORITMOS Y ESTRUCTURAS III SECCIÓN 1 – 2 PROFESOR: GUILLERMO PALMA PREPARADOR: MANUEL GONZALEZ CORREO:

Slides:



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

Curso de java básico (scjp)
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
Definición de Clases y Variables de referencia.
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.
Arquitectura CLARO-TECNOTREE
Orientación a Objetos con Java SE
Introducción Abdelahad, Corina Natalia Abdelahad, Yanina Zoraida
Algoritmos y Estructura de Datos
1.2 Sintaxis del lenguaje Java.
UNIVERSIDAD LATINA (UNILA) ENCAPSULACION Y HERENCIA
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
Aplicación del paradigma orientado a objetos
Programación Orientada a Objetos en Java
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.
Herencia e Interfaces.
Modificadores.
POO Java Módulo 3 Elementos de programas Identificadores
Polimorfismo Lenguajes de Programación II Corporación Universitaria del Caribe CECAR.
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.
Tema 6: Clases Antonio J. Sierra.
Al término de la clase, el alumno reconoce las ventajas de usar JAVASCRIPT para un proyecto web.
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.
Clase Teórica No. 4 Programación IV
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA TRES ASIGNACION.
El lenguaje de programación Java
Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
Capitulo # 4 herencia PROGRAMACION III UNIVERSIDAD
Programación Orientada a Objetos usando CONSTRUCTORES DESTRUCTORES.
1 Objetos y Clases en Java ELO-329: Diseño y Programación Orientados a Objetos.
Lenguaje de programación Java UNIVERSIDAD REGIONAL DEL SURESTE.
FACULTAD DE ESTUDIOS SUPERIORES ARAGON
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
MBA. LIDA LOOR MACIAS2 Historia. El perfil de Java. Los padres de Java son James Gosling (emacs) y Bill Joy (Sun) Java desciende de un lenguaje llamado.
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,
Elementos básicos del lenguaje
Metodología de Programación Ayudantía 5 lelagos.ublog.cl 2009.
Java.
Ivette C. Martínez - Héctor Palacios Java – Modulo 1 Introducción y Fundamentos del lenguaje de programación Java.
MBA. LIDA LOOR MACIAS 1. 3 martes, 13 de octubre de 2014 OBJETIVO: El estudiante adquirirá los fundamentos básicos de la programación orientada a objeto.
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
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
Aspectos Básicos de Programación en JAVA
Fundamentos de Programación
UNIDAD 4: Introducción a la Lógica Computacional Objetivo : Interpretar y aplicar adecuadamente los fundamentos básicos de la estructura y funcionamiento.
INSTITUTO TECNOLOGICO DE TEHUACAN Ingeniería en sistemas computacionales Curso de apoyo a la titulación CLASES DE JAVA Diciembre de 2008.
Elementos básicos.  Fuertemente tipeado.  Sintaxis similar a C/C++.  Sin punteros: garbage collection.  Portable.  Integra librerías para objetos.
Clases “ Es una Abstracción de un elemento del mundo real ”
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) V. GESTIÓN DE TIPOS Y GENERACIÓN DE CÓDIGOS.
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.
1 Métodos. 2 Un método es un conjunto de instrucciones definidas dentro de una clase, que realizan una determinada tarea y a las que podemos invocar mediante.
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.
2 Historia. El perfil de Java. Los padres de Java son James Gosling (emacs) y Bill Joy (Sun) Java desciende de un lenguaje llamado Oak cuyo propósito era.
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.
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:

Introducción a JAVA CI-2693 LABORATORIO DE ALGORITMOS Y ESTRUCTURAS III SECCIÓN 1 – 2 PROFESOR: GUILLERMO PALMA PREPARADOR: MANUEL GONZALEZ CORREO:

¿De que se tratará la materia?  Grafos…

Evaluaciones  Proyecto 1 semana %  Proyecto 2 semana %  Examen 1 semana 7 20 %  Proyecto 3 semana %  Examen 2 semana %  Laboratorios todos los días de clase, se corregirá uno solo 10 %.

Normas del curso  Se utilizara Java 7 (versión 1.7)  Equipos de 2 personas  No copiar! O les traerá graves consecuencias!  Posiblemente se les hagan algunas preguntas de la implementación del proyecto. Si no responden correctamente se penalizará la nota.

¿Por qué JAVA?  Es un lenguaje orientado a objetos.  Es más seguro.  Tiene una vasta biblioteca de objetos y operaciones predefinidas.  Actualmente es ampliamente utilizado. Lo usa por ejemplo Android.  Independiente de la plataforma.

Maquina virtual  “Computadora ideal” de JAVA  Es la encargada de proveer la independencia de la plataforma  Hay varias versiones de la maquina virtual que hace difícil una completa independencia de la plataforma.

Fases de un programa en Java Editar con Gedit Disco Fase 1 Compilar usando: javac HolaMundo.java Disco Fase 2 HolaMundo.java HolaMundo.class

Fases de un programa en Java Disco HolaMundo.class Cargador de clases Fase 3 Ejecutar con: java HolaMundo.... Memoria principal Verificador de bytecodigo Fase 4 Interprete Fase 5 ¡Y LISTO! Rápido ¿No?

“Hola mundo!” en JAVA class HolaMundo { public static void main (String[ ] args){ System.out.println(“Hola mundo!"); } Pasos 1.Abrir editor 2.Escribir el programa 3.Ubicarse en el directorio 4.Compilar javac HolaMundo.java 5.Ejecutar java HolaMundo 6.Salida: “Hola mundo!”

Variables básicas(parecido a C)  Mismas reglas que otros  Enteros:  byte 8 bits  short 16 bits  int 32 bits  long 64 bits  Reales:  float 32 bits  double 64 bits  Booleanos: boolean (true o false)  Caracteres: char Ejemplo: int a,b,c; a = 1 b = 2 c = a+ b;

Expresiones(parecido a C)  Las asignaciones se parecen a las de C;  =, +=, *=, -=, /=, quizas otro que se me olvide.  Operadores aritméticos: +,-,*,/,%  Java ademas tiene ++ y --  Booleanos:  &&(and), ||(or), ! (negación)  Comparadores:  =, >  Java no tiene el tipo de dato “puntero” Ejemplo: int a,b,c; b = 2 a = b++;

Instrucciones de control I (parecido a C) if (x < y) menor = x; if (x < y){ menor = x;sum += x;} else { menor = y; sum += y; } while (x < y) { y = y - x; } do { y = y - x; } while (x < y) for (int i = 0; i < max; i++) sum += i; Las condiciones deben ser de tipo booleanas !

 Java tiene una estructura “try..catch” para capturer excepciones. switch (n + 1) { case 0: m = n - 1; break; case 1: m = n + 1; break; case 3: m = m * n; break; default: m = -n; } Instrucciones de control II (parecido a C)

Java no es C ! Sorpresa!  En C, casi todo esta como funciones  En Java, casi todo esta en clases  Hay frequentemente una clase por archivo.  Tiene que haber solo una clase publica por archivo  El nombre del archivo debe ser igual al de esa clase publica y terminar en “.java”

Como se ve un programa en Java  Un típico programa en java se vería mas o menos así import java.awt.*; import java.util.*; /*Soy un comentario de muchas lineas */ public class HaceAlgo { // Comentario de una linea... } Advertencia no esperada: Esto tiene que estar en un archivo llamado “ HaceAlgo.java ”

¿Qué es una clase?  Una clase consiste generalmente de  Una coleccion de variables  Todas las operaciones (llamados metodos) que utilizaran esas variables o/y nuevas para desempeñar una accion.  En Java se declaran comenzando por class

Convenciones de nombres  Java es case-sensitive  Nombres de clases comienzan con letra mayuscula  Los demas con letra minusculas  Subsequentes palabras son capitalizadas: HolaMundo  Olvidense de los underscores de python  Estas convenciones son seguidas rigidamentes!

Primer programa en JAVA Pasos de creación 1.Abrir editor 2.Escribir el programa 3.Ubicarse en el directorio 4.Compilar: javac HolaMundo.java 5.Ejecutar: java HolaMundo 6.Salida: “Hola mundo!” Descargar de aula virtual el archivo: AreaRectangulo.java Problema: Realizar un programa que dados tres números por el usuario diga cual es el mayor.

Un ejemplo de una clase: class Persona { String nombre; int edad; void cumpleanio( ) { edad++; System.out.println(nombre+ ' tiene ahora ' + edad + ' años' ); } } Debe estar en archivo: Persona.java

Otro ejemplo de una clase class Conductor extends Persona { long numeroDeLicencia; Date FechaDeExpiracion; } Hereda de

Crear y usar un objeto  Persona juan; juan = new Persona( ); juan.nombre = “Juan Gonzalez"; juan.edad = 37;  Persona iranid = new Persona ( ); iranid.nombre = “Iranid Perez"; iranid.edad = 33; iranid.cumpleanio( );

Un array es un objeto  Persona iranid= new Persona ( );  int miArray[ ] = new int[5];  o:  int miArray[ ] = {1, 4, 9, 16, 25};  String lenguajes[ ] = {“Python", "Java"};

Definición de métodos:  Son el equivalente a los procedimientos de los lenguajes no OO. Un método es un bloque de código definido dentro de una clase.  Proporciona un mecanismo para indicarle a un objeto que realice una acción.  Un método tiene acceso a todos los atributos de su clase.  Un método puede invocar otros métodos  La ejecución de todos las aplicaciones se inicia en el método main de alguna de las clases.

Definición de métodos:  Sintaxis:  ( ){ }  La declaración de un método tiene cuatro partes básicas:  El nombre del método (nombreMetodo)  El tipo del valor de regreso del método (tipo). Si no devuelve ningun valor debe ser void.  Una lista de parámetros (parametros). Cada parámetro tiene la forma. Se separan con comas.  El cuerpo del método (instrucciones).

 Si devuelve un valor debe finalizar con la sentencia return  return ;  Debe ser del mismo con que se ha declarado el metodo.  El código se ejecuta hasta alcanzar la instrucción return (si devuelve un valor) o hasta el final del método.  Se pueden declarar variables locales si son necesarias. Definición de métodos:

Ejemplos de métodos: public double obtRadio( ){ return radio ; } public void asigRadio(int nuevoRadio){ radio = nuevoRadio; } public double Area( ) { return radio*radio*Math.PI ; }

Parámetros de los métodos:  Se cumplen las mismas que en python, C,….  Deben coincidir en numero los parámetros declarados en el método y los pasados.  Deben coincidir en orden.  …  Todo parámetro distinto de un objeto es pasado por valor, sino por referencia.

Parámetro por referencia: Ejemplo class PruebaPasoPorReferencia { public static void main (String[] args){ Circulo miCirculo; String colorNuevo = “negro”; miCirculo = new Circulo(5.0, "blanco"); imprimeCirculo(miCirculo); colorCirculo(miCirculo, colorNuevo); imprimeCirculo(miCirculo); } public static void colorCirculo( Circulo c, String color) { c.color = color; } public static void imprimeCirculo(Circulo c) { System.out.println("El área del circulo de radio " + c.getRadio( ) + " es " +c.Area()); System.out.println("El color del Circulo es " + c.color); }

Alcance de las variables(I)  En java se dispone de tres tipos de variables:  Las variables miembro pertenecientes a una clase.  Argumentos de un método de la clase.  Variables locales de un método de la clase.  Los argumentos trabajan como variables locales. public class Ejemplo { private int x; // variable miembro public metodo (int y){ // argumento int z; // variable local x = y + z; }

Alcance de las variables (II)  Las variables miembros son visibles desde cualquier parte de la clase.  Los argumentos y variables locales solo son visibles dentro del metodo al que pertenece, dejan de existir al finalizar el metodo.  Dentro de un metodo, si coincide el identificador de un argumento o variable local con el de una variable miembro, solo se accede a la variable del metodo.

Ejemplo Alcance: public class A { int x; public void metodo(){ int x = 1; System.out.println("x vale:" + x); } public void setX(int a){ x = a; } public class PruebaAlcance{ public static void main(String[] args){ int arg = 4; A obj = new A(); obj.setX(256); obj.metodo(); } Archivo A.java Archivo PruebaAlcance.java Se compila: javac PruebaAlcance.java Se corre: java PruebaAlcance Salida: x vale 1 En la misma carpeta

La referencia this  Se emplea para referirse al objeto actual dentro de un método.  Con this se hace accesible una variable miembro de la clase cuyo identificador coincide con una variable local. System.out.println("x vale:" + x); --  System.out.println("x vale:" + this.x);

Constructores (I)  Un constructor es un tipo especial de método que permite construir un objeto de una clase. Usado para inicializaciones  Ejemplo: public class Circulo { public Circulo(){…} public Circulo(double r){…} public Circulo(double r, String c){…} }  Se utilizan junto con la palabra reservada new que hace la invocación Circulo c1 = new Circulo(27);

Constructores (II)  Los constructores se pueden sobrecargar y son opcionales  Si no se define ningún constructor,  Java proporciona uno por defecto (sin parámetros).  Si se define un constructor con argumentos se pierde el constructor por defecto  Normalmente en el constructor se inicializan las variables miembro.

Destructores  En Java no hay destructores  El garbage collector es el encargado de liberar la memoria.  Cuando se detecta objetos no referenciados  Al final de un bloque que haya utilizado objetos.

Más conceptos de OO  Encapsulamiento  Herencia  Polimorfismo

Modificadores para restringir el acceso (I)  La definición de los miembros de una clase se puede ampliar añadiendo modificadores al principio.:  [modificador] ; (Variables)  [modificador] ( ){...} (Métodos)  Los modificadores permiten acceder a los datos o métodos de manera restringida

Modificadores para restringir el acceso (II)  public : El miembro de la clase es accesible desde cualquier parte del código.  private : El miembro de la clase sólo es accesible desde código perteneciente a la propia clase. Note que las subclases tampoco tienen acceso.  protected : Sólo las subclases de la clase y nadie más pueden acceder a las variables y métodos.

Ejemplo encasulamiento public class Circulo { // Atributos private double radio; private String color; // Metodos public void asigRadio( ){ … } public double getRadio( ){…} } public static main(String args[] ) { Circulo c1; double r1; c1 = new Circulo(); r1 = c1.radio; // Incorrecto!!! r1= c1.getRadio(); // Correcto

Herencia (I)  Jerarquia de clases basada en agrupar atributos y/o métodos comunes  Las clases ascendientes se llaman superclases.  Las clases descendientes se llaman subclases.  Las subclases heredan características y métodos de las superclases incluso los privados (excepto los constructores)  Las partes comunes se pueden agrupar en una misma clase, manteniendo las otras dos con las partes no comunes y heredando de esta nueva clase con la palabra reservada extends.

Ejemplo de herencia: public class Empleado { protected int codigo; protected String nombre; protected Int numDep; } public class Jefe extends Empleado{ private int numSupervisados; } public class Secretaria extends Empleado { private Jefe trabajaPara; }

Herencia (III)  Para saber si la relación de herencia es correcta, se plantea la pregunta “La subclase es una superclase?”. La respuesta debe ser sí.  ¿Una secretaria es una persona?  Si una clase hereda de una única clase se considera herencia simple.  Si una clase hereda de varias clases se considera herencia múltiple.  Java sólo permite herencia simple.  La herencia simple hace que el código sea reutilizable  Para llamar al constructor del padre usar super(argumentos)

Ejemplo de polimorfismo: Persona v[]=new Persona[10]; // Se introducen alumnos, profesores y personas en v v[0] = new Persona(); v[1] = new Profesor(); v[2] = new Alumno(); v[3] = new ProfesorJubilado();.... v[9] = new ProfesorJubilado(); for (int i=0 ; i<10; i++){ System.out.println(v[i].toString()); }

Declarando una clase  Partes de la declaracion  [public abstract final] class Name extends SuperClase Implements Interfaces  { cuerpo... }  Por defecto: no public, no abstract, no final, extends Object  Si no, es pública. Sólo visible en el mismo paquete.

Declarando un atributo  Nivel de acceso private, protected, etc.  static si es una var de clase  final es constante

Sobrecarga de métodos(Ejemplo): public class DemoOverloading { void print(int a, int b) {... } void print(int a, char b) {... } void print(char a, int b) {... } void print(int a, int b, int c) {... } }

Directa aclaratoria de Java: public class Error{ int x ; public static int y ; public static void main (String args[]) { Y = 15 ; //OK x = 20 ; //ERROR } En main solo se pueden usar Variables y métodos estáticos O variables locales

Ejemplo de uso de referencias: public class Persona { String ci, nombre; Persona madre, padre; public Persona(String nombre, String ci) { this.ci = ci; this.nombre = nombre; } public Persona(String nombre, String ci Persona madre, Persona padre){ this(ci, nombre); this.madre = madre; this.padre = padre; } a = new Persona(“Josefina”,” ”) B= new Persona(“Romero”,” ”, new Persona(“hola”,”Hola”), null) Error muy común: tratar de acceder a referencias null.

Otro ejemplo con referencias: Public class Ficha{ public int id; Public Ficha(int i) { id = i; } public class RefDemo { public static void main(String[] args) { Ficha f1; Ficha f2; f1 = new Ficha(2); f2 = new Ficha(4); f2 = f1; f1.id++; f2.id;++; } Notar asignación

Ejercicio: Crear una lista simplemente enlazada  Valor 0 pts (sube tu exp)  Descargense los archivos: ClienteLista.java,ListaSimple.java,Nodo.java  Muevanlos para que estén en la misma carpeta  Compilen : javac ClienteLista.java  Corran : java ClienteLista Ejercicio: ¡HAGAN QUE FUNCIONE!