Please enable JavaScript.
Coggle requires JavaScript to display documents.
Utilización Avanzada de Clases - Fase B (Packages/Paquetes (Usando…
Utilización Avanzada de Clases - Fase B
Enum
¿Qué es?
Tipo de datos que define el programador, que define una lista de constantes con nombre
¿Cómo se crea?
Sintaxis
enum Identificador {valores,separados,por,coma}
enum ColorSemaforo{ROJO, VERDE, AMBAR}
Los colores que se encuentran entre {} son constantes de enumeración, cada elemento que se declara es publico y estático del Identificador
El tipo de constante de enumeracion es del tipo en el que están declaradas. ColorSemaforo en este caso
Se recomienda escribirlo en mayusculas
Recuperar todos los valores de un Enum
ColorSemaforo [] = ColorSemaforo.values();
Declaracion y asignacion
Una vez definido podemos crear variables objeto sin necesidad de usar la partícula new
ColorSemaforo color;
color = ColorSemaforo.ROJO
Creacion
Paso 1
Paso 2
Paso 3
Le pondremos nombre y finalizaremos
Podemos crearlo de otras formas
Dentro del archivo de una clase pero fuera de su definicion
Dentro de la definicion de una clase. Cuyo acceso se realizará siempre desde la clase
Seleccionaremos Java Enum
Clic derecho en el package, new, y seleccionaremos other...
Overloading
¿Qué es?
Es utilizar dos o más métodos con el mismo nombre dentro de una clase, pero con distintos parámetros
¿Para qué sirve?
La finalidad es hacer uso del método independientemente de los datos o el tipo del que son los mismos
ejemplo
public int suma(int a, int b) { return a+b; }
public double suma(double a, double b) { return a+b; }
Al usar estos métodos en el main, Java se ocupará de llamar a la versión correspondiente al tipo de datos.
Packages/Paquetes
Evitan solapamiento de nombres de clases.
Equivalen a directorios
Usando paquetes
Para indicar que una clase pertenece a un determinado paquete
ej:
package net.fpmislata.graficos2d;
Importar una clase de otro paquete
ej:
import net.fpmislata.graficos2d.Circulo;
Interfaces
Es un clase abstracta pura, pueden tener atributos estáticos y finales. No se pueden instanciar
public interface nombre_interface{}
Una vez definida la interface una o más clases la pueden implementar sobreescribiendo sus métodos
(@Override
), deberá utilizar obligatoriamente todos sus métodos
public nombre_clase implements nombre_interface {}
Interfaz Comparable
Tiene un método "compareTo()" que sirve para marcar el criterio para ordenar los elementos de una misma clase
compareTo(Objeto) devuelve -1 si "this" se sitúa delante del objeto, devuelve 1 si se sitúa detrás y 0 si son iguales
compareTo() es invocada automáticamente por el método de ordenación "sort()"
Interfaz Comparator
Tiene un método "compare()" que sirve para marcar el criterio para ordenar los elementos de una misma clase
compare(Objeto1, Objeto2) devuelve -1 si Objeto1 se sitúa delante de Objeto2, si va detrás devuelve 1 y si son iguales devuelve 0
Para crear varios criterios de ordenación, definiremos varias clases que implementen esta interfaz
Trocear un texto
Clase StringTokenizer
Permite trocear un String en varias subcadenas
Declaración:
StringTokenizer s = new StringTokenizer(String);
Delimitador por defecto: Espacio en blanco
Usar un delimitador diferente
StringTokenizer s = new StringTokenizer(String, "delimitador")
Usar dos delimitadores
StringTokenizer s = new StringTokenizer (String, "delimitador1delimitador2")
Ejemplo:
String datos = "Ronaldo=Futbol;Federer=Tenis;Nadal=Tenis;";
StringTokenizer s = new StringTokenizer(datos, "=;");
while(s.hasMoreTokens()){
String jugador = s.nextToken();
String deporte = s.nextToken();
System.out.println(jugador + " " + deporte);
}
Metodos
.countTokens()
Número de trozos en los que se ha dividido el String
.hasMoreTokens()
Comprueba si hay más trozos
.nextToken()
Apunta al siguiente trozo
Se suelen utilizar dentro de un bucle para recorrer los trozos
while(s.hasMoreTokens() == true ){
System.out.println( s.nextToken() );
}
Método split()
También permite trocear un string en subcadenas. Método de la clase String
Se declara un String: String s y despues se usa el método almacenandolo en un array:
String[ ] trozos = s.split("\ \s");
\ \s : representa un espacio en blanco
Una forma util de poder recorrer los trozos de la cadena, en forma de array
Ejemplo
Declarar
Asignar