Repaso Java
Repaso Java
Repaso de Java
Estructuras de Datos
Iván Castellanos
Departamento de ingeniería de sistemas e industrial
Universidad Nacional de Colombia
15 de agosto de 2018
Introducción
Java
Java es un sistema creado a mitad de los 90's, hay 3 cosas que hay
que considerar sobre Java:
El lenguaje de programacion: Es un lenguaje similar a C++,
pero con algunas caracteristicas que lo hacen mas simple.
Las librerias: Java viene con un gran numero de librerias con
capacidad de uso a muchas aplicaciones.
La maquina virtual: los programas de compilan a bytecode java
el cual se ejecuta en un sistema intermedio independiente de la
arquitectura del computador.
Introducción
Compilacion Tradicional
Introducción
Compilacion en Java
Introducción
Tipos De Datos
Tipos De Datos
nota
En Java los argumentos de los métodos siempre se manejan por
valor
Introducción
Jerarquia de tipos
Conversion de tipos
Sobrecarga de métodos
Un metodo puede tener multiples declaraciones, dependiendo de los
argumentos que se pasen, esto se llama sobrecarga de métodos.
Ejemplo (Sobrecarga)
int max(int a, int b){...}
int max(int a, int b, int c){...}
int max(float a, float b){...}
nota
El tipo retornado no se considera en la sobrecarga, es decir, no se
permite que la unica diferencia entre 2 metodos sobrecargados sea
el tipo retornado
nota
Cuando el tipo de argumentos no coincide de forma exacta el
compilador utiliza la jerarquia de tipos
Introducción
Objetos y clases
Una clase en java consiste en campos que almacenan datos y
métodos que son aplicados a instancias de esa clase.
Un objeto es una instancia de una clase.
Ejemplo (Objetos)
public class Point {
int x, y;
Point(){this.x = 0; this.y = 0;}
Point(int x, int y){this.x = x; this.y = y;}
public String toString(){
return "(" + Integer.toString(x) + ", " +
Integer.toString(y) + ")";
}
}
nota
Todos los objetos se manejan por referencia
Introducción
Objetos y Clases
Ejemplo (Objetos)
static void initialize(Point a){
a.x = a.y = 0;
}
Point a = new Point(1, -1);
initialize(a);
System.out.println(a); //(0, 0)
Introducción
Herencia
Se implementarán diferentes
guras, a partir de la jerarquia mostrada,
depende de la clase derivada se podrán
tener hasta atributos de coordenadas, del
radio y de la altura y se podran tener hasta
metodos para obtener el área y el volumen.
Introducción
Abstracción
nota
Los constructores no pueden ser heredados, por ende no pueden ser
abstractos
Introducción
Interfaces
nota
Mientras unas clase puede extender solo una clase, puede
implementar mas de una interfaz
Introducción
@Override
public double getDensity() {
return aluminio * getVolume();
}
Polimorsmo
Resultado en consola:
Point: (7, 11)
Area: 0.0 Volume: 0.0
Recursión
En Java, al igual que en muchos lenguajes de programación se
pueden utilizar funciones recursivas, que consisten en
funciones que se expresan con llamadas a si mismas.
Es una técnica que sirve para resolver muchos problemas que
son complejos de solucionar de manera iterativa.
Una función recursiva consiste de dos partes: caso inicial o
caso base y llamada recursiva.
nota
La llamada recursiva solo se puede ser invocada un número limitado
de veces (Pila de la recusión), cuando se pasa de este límite se tiene
un error en tiempo de ejecución conocido como Stack Overow.
nota
La recursión es muy util para realizar soluciones de tipo divide y
vencerás o de programación dinámica.
Introducción
Ejemplos Recursión
Ejemplo (Factorial)
int factorial(int n){
if(n==0) return 1;
return n * factorial(n-1);
}
Ejemplos Recursión