Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Java: Clases String, StringBuilder, Character, Boolean, Integer, Double, Optional y Scanne, Apuntes de Ingeniería Infórmatica

En este documento se presentan los conceptos básicos de algunas clases y objetos de java, como string, stringbuilder, character, boolean, integer, double, optional y scanner. Se explican sus propiedades, métodos y uso, además de ejemplos de cómo crearlos y utilizarlos.

Tipo: Apuntes

2016/2017

Subido el 13/12/2017

ingformatica
ingformatica 🇪🇸

4.5

(2)

3 documentos

1 / 53

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Tema 4. Clases Básicas Predefinidas. Entrada/Salida
Dpto. Lenguajes y Ciencias de la Computación. E.T.S.I. Informática.
Universidad de Málaga
Programación Orientada a Objetos
Dpto. Lenguajes y Ciencias de la Computación. E.T.S.I. Informática. Universidad de MálagaTema 4. Clases Básicas Predefinidas. Entrada/Salida Programación Orientada a Objetos 1 / 53
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35

Vista previa parcial del texto

¡Descarga Java: Clases String, StringBuilder, Character, Boolean, Integer, Double, Optional y Scanne y más Apuntes en PDF de Ingeniería Infórmatica solo en Docsity!

Tema 4. Clases Básicas Predefinidas. Entrada/Salida

Dpto. Lenguajes y Ciencias de la Computación. E.T.S.I. Informática. Universidad de Málaga

Programación Orientada a Objetos

Programación Orientada a Objetos

Tema 4. Clases básicas predefinidas. Entrada/Salida

Organización en paquetes Clases básicas: java.lang Clases básicas del paquete java.util Entrada/Salida. java.io

Esta obra se encuentra bajo una licencia Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0) de Creative Commons.

Uso de paquetes

Desde fuera de un paquete sólo se puede acceder a clases e interfaces públicas. Para acceder a una clase o interfaz desde otro paquete se puede: Utilizar el nombre de la clase cualificado con el nombre del paquete. java.util.Random rnd = new java.util.Random(); Importar la clase al comienzo del fichero y usar su nombre simple. import java.util.Random; //... Random rnd = new Random(); Importar todas las clases del paquete completo al comienzo del fichero y usar los nombres simples de todas las clases e interfaces del paquete. import java.util.*; //... Random rnd = new Random(); El sistema de ejecución de Java importa automáticamente el paquete anónimo , el paquete java.lang y el paquete actual.

La Interfaz de Programación de Aplicaciones de Java

La API de Java (Java Application Programming Interface) es la especificación de la biblioteca de paquetes que se suministra con la plataforma de desarrollo de Java ( JDK ). Estos paquetes contienen interfaces y clases diseñadas para facilitar la tarea de programación. En este tema veremos parte de los paquetes: java.lang, java.util y java.io.

La clase java.lang.System

La clase System proporciona objetos para entrada/salida, y funcionalidades del sistema. Proporciona tres variables de clase (estáticas) públicas para realizar la entrada y salida de datos: PrintStream out, err: salida de datos. InputStream in: entrada de datos. Métodos de clase (estáticos) públicos: void arraycopy(...): permite copiar elementos de un array a otro array. long currentTimeMillis(): devuelve el valor del tiempo actual en milisegundos. void gc(): permite invocar al recolector de basura. void runFinalization(): provoca la ejecución inmediata de los metodos finalize() pendientes sobre los objetos a recolectar. Etc. (consultar la documentación para más información).

La clase java.lang.Math

La clase Math proporciona constantes numéricas y funciones matemáticas. Constantes (estáticas) públicas: double E = 2.718281828459045: el valor del número e. double PI = 3.141592653589793: el valor del número pi. Métodos de clase (estáticos) públicos: double sin(double), double cos(double), double tan(double), double asin(double), double acos(double), double atan(double): funciones trigonométricas. x abs(x), x max(x,x), x min(x,x): valor absoluto, máximo y mínimo. double exp(double), double pow(double, double), double sqrt(double), int round(float): exponenciación, potencia, raíz cuadrada, redondeo. double random(): generación de números aleatorios (0 ≤ r < 1). Etc. (consultar la documentación para más información).

La clase java.lang.Object

El método equals()

boolean equals(Object o): indica si otro objeto es igual al objeto actual. En caso de ser necesario, las clases deben redefinir este método para que relice la comparación adecuadamente (por defecto realiza una comparación por ==). Todas las clases del sistema tienen redefinido este método (también enum ). La anotación @Override indica al compilador que un método pretende redefinir a un método de la superclase (útil para detectar errores). class Persona { private String nombre; private int edad; public Persona(String n, int e) { nombre = n; edad = e; } @Override public boolean equals(Object o) { boolean res = false ; if (o instanceof Persona) { Persona p = (Persona) o; res = (edad == p.edad) && nombre.equals(p.nombre); } return res; } }

La clase java.lang.Object

El método equals()

boolean equals(Object o): indica si otro objeto es igual al objeto actual. En caso de ser necesario, las clases deben redefinir este método para que relice la comparación adecuadamente (por defecto realiza una comparación por ==). Todas las clases del sistema tienen redefinido este método (también enum ). La anotación @Override indica al compilador que un método pretende redefinir a un método de la superclase (útil para detectar errores). class Persona { private String nombre; private int edad; public Persona(String n, int e) { nombre = n; edad = e; } @Override public boolean equals(Object o) { boolean res = false ; if (o instanceof Persona) { Persona p = (Persona) o; res = (edad == p.edad) && nombre.equalsIgnoreCase(p.nombre); } return res; } }

La clase java.lang.Object

El método hashCode() y su relación con equals()

Si dos objetos son iguales (según el método equals()), entonces el método hashCode() debe devolver el mismo valor del código hash para ambos objetos. Si a.equals(b) entonces a.hashCode() == b.hashCode(). Si se redefine el método equals(), entonces también se debe redefinir el método hashCode(), considerando los mismos componentes. int hashCode(): devuelve el valor del código hash del objeto actual. La suma de los hashCode() de los componentes involucrados en equals(). class Persona { private String nombre; private int edad; public Persona(String n, int e) { nombre = n; edad = e; } @Override public boolean equals(Object o) { boolean res = false ; if (o instanceof Persona) { Persona p = (Persona) o; res = (edad == p.edad) && nombre.equalsIgnoreCase(p.nombre); } return res; } @Override public int hashCode() { return Integer.hashCode(edad) + nombre.toLowerCase().hashCode(); } }

Cadenas de caracteres

Las cadenas de caracteres se representan en Java como secuencias de caracteres Unicode encerradas entre comillas dobles. "Ejemplo de cadena de caracteres" Para manipular cadenas de caracteres, por razones de eficiencia, se utilizan dos clases incluidas en java.lang: String: para cadenas inmutables StringBuilder: para cadenas modificables.

La clase java.lang.String

Metodos de consulta

int length(): devuelve el número de caracteres de la cadena. char charAt(int p): devuelve el carácter que se encuentra en la posición p en la cadena (0 ≤ p < length ()). int indexOf(char/String c2): devuelve la primera posición de c (carácter o cadena). int lastIndexOf(char/String c2): devuelve la última posición de c (carácter o cadena). Si se intenta acceder a una posición no válida el sistema lanza una excepción: IndexOutOfBoundsException.

La clase java.lang.String

Metodos que producen nuevos objetos String

String substring(int desde, int hasta): devuelve un nuevo objeto String con los caracteres a partir de la posición desde y hasta la posición hasta (sin incluirla). String substring(int desde): devuelve un nuevo objeto String con los caracteres a partir de la posición desde y hasta el final. String replace(String c2, String c3): devuelve un nuevo objeto String con los caracteres del objeto actual, reemplazando todas las ocurrencias de c2 por c3. String replaceFirst(String regex, String c3): devuelve un nuevo objeto String con los caracteres del objeto actual, reemplazando la primera ocurrencia de regex por c3. String concat(String c2): devuelve un nuevo objeto String con los caracteres del objeto actual concatenados con los caracteres de c2 (equiv a + ). Si se intenta acceder a una posición no válida el sistema lanza una excepción: IndexOutOfBoundsException.

La clase java.lang.String

Metodos de comparación

boolean equals(String c2): devuelve true si el objeto actual y c2 son iguales y false en otro caso. boolean equalsIgnoreCase(String c2): igual que la anterior, pero sin tener en cuenta las diferencias por mayúsculas y minúsculas. int compareTo(String c2): devuelve un entero menor , igual o mayor que cero cuando el objeto actual es menor , igual o mayor que c2. int compareToIgnoreCase(String c2): igual que la anterior, pero sin tener en cuenta las diferencias por mayúsculas y minúsculas. ATENCIÓN c1 == c2 compara las referencias, es decir, si ambas variables referencian al mismo objeto. int hashCode(): devuelve el valor del código hash del objeto actual.

La clase java.lang.String

El metodo split()

String[] split(String regex): devuelve un array de String resultado de dividir la cadena de caracteres del objeto actual en substrings según los delimitadores especificados por regex. String[] split(String regex, int limit): igual que el anterior, pero con un límite en la aplicación de la división. Los delimitadores son expresiones regulares. Por ejemplo: ▸ "[,;:]" // Exactamente uno de entre ,;: ▸ "[,;:]+" // Uno o más de entre ,;: ▸ "[^a-zA-Z0-9]" // Cualquier carácter que no sea una letra o dígito ▸ "[,;:] ?" // Uno de entre ,;: seguido por un espacio opcional ▸ "\s[,;:]\s" // Uno de entre ,;: entre múltiples [ \t\n\r\f] opcionales Ejemplo: public static void main(String[] args) { String s1 = "33456765M Juan 6.5"; String[] t1 = s1.split("[ ]"); // [33456765M] [Juan] [6.5] String s2 = "El agua:es;buena"; String[] t2 = s2.split("[ :]"); // [El] [agua] [es;buena] }