Clases System, String, StringBuffer, Math y Wrapper

Anuncio
Clases System, String,
StringBuffer, Math y
Wrapper
FJP – Unidad 6
Clase System
Ubicación: java.lang.System
Funcionalidad principal:
– acceder a los dispositivos del sistema operativo de bajo nivel
– entrada y salida de los programas
Posee 3 atributos de clase (static) - referencias a objetos de clases:
InputStream (in) y PrintStream (out y err)
Default input device Æ teclado
Default output device Æ pantalla
Todos sus métodos son de clase: gc(), runFinalization(), getProperties(), etc
Academia Local Cisco – UTN Facultad Regional Santa Fe – http://www.santafecna.org.ar
1
System
.in.read( )
System.in.read(
public class MasDeUnCaracter {
public static void main (String[ ] args) throws Exception
{ int selection = 0;
String userinput = " ";
System.out.print (“Ingrese un número de 3 cifras y presione Enter:”);
while (selection != 10 && selection != 13)
{
selection = System.in.read();
userinput += (char) selection;
}
if(selection == 13) // retorno de carro
{ System.in.read();
System.out.println (userinput);
}
}
}
Academia Local Cisco – UTN Facultad Regional Santa Fe – http://www.santafecna.org.ar
Clase String
Se pueden crear objetos de clase String
según 2 reglas de sintaxis:
String cadena = “hola”; Æ alojado en el Pool de Strings
O bien:
String cadena = new String(“hola”); Æ alojado en el Heap
Academia Local Cisco – UTN Facultad Regional Santa Fe – http://www.santafecna.org.ar
2
Ej. comparación de Strings
// s1 referencia a un objeto string creado en el heap
String s1 = new String(“Juan”);
// s2 referencia a un objeto string creado en el heap
String s2 = new String(“Jazmín”);
String s3 = s1; // s3 y s1 referencian al mismo objeto en el
heap
String s4 = s3; // s4 y s3 referencian al mismo objeto en el
heap
String s5 = “Tomás”; // s5 referencia a un objeto en el pool de
strings
String s6 = “Juan”; // s6 referencia a un objeto en el pool de
strings
// s7 referencia a un objeto string creado en el heap
String s7 = new String(“Jazmín”);
String s8 = “Tomás”;
String s9 = new String(“juan”);
Academia Local Cisco – UTN Facultad Regional Santa Fe – http://www.santafecna.org.ar
Ej. comparación de strings
((cont.)
cont.)
s1.equals(s2); // falso
Cada objeto string manipula un arreglo de caracteres diferente
s4.equals(s1); // verdadero
Ambas referencias son al mismo objeto
s2.equals(s7); // verdadero
El método equals de la clase string ejecuta una comparación profunda del
contenido (deep comparison)
s1.equals(s6); // verdadero
El método equals de la clase String ejecuta una comparación profunda del
contenido en caracteres, no de las direcciones de objeto
Academia Local Cisco – UTN Facultad Regional Santa Fe – http://www.santafecna.org.ar
3
Ej. comparación de strings
((cont.)
cont.)
s4 == s1; // verdadero
Ambas referencias apuntan al mismo objeto (comparación superficial o
shallow)
s2 == s7; // falso
Cada variable apunta a una dirección de objeto diferente (comparación
superficial)
s8 == s5; // verdadero
Ambas referencias apuntan al mismo objeto string en el pool de strings
s1.equalsIgnoreCase(s9); // verdadero
Comparación profunda ignorando mayúsculas y minúsculas
Academia Local Cisco – UTN Facultad Regional Santa Fe – http://www.santafecna.org.ar
Métodos de la clase String
s1.compareTo(s9); // 0 (cuando equals() = true)
s6.length(); // 6
s5.charAt(2);
// el caracter cuyo índice es 2 (tercer caracter) es ‘m’
s7.substring(3);
// porción del string ‘Jazmín’ comenzando desde el cuarto
caracter, resulta en ‘mín’
Academia Local Cisco – UTN Facultad Regional Santa Fe – http://www.santafecna.org.ar
4
Clase String
Todos los datos primitivos son convertidos de forma
implícita a String:
String c1 = “” + 3;
System.out.println(5);
Cualquier objeto puede convertirse a String a través del
método toString( )
Método toString( ) : heredado de la clase Object Æ cualquier objeto
posee dicho método. Es recomendable sobreescribirlo.
Estudiante e1 = new Estudiante( );
System.out.println(e1);
Æ println sobrecargado para recibir
cualquier objeto. (uso de toString())
Academia Local Cisco – UTN Facultad Regional Santa Fe – http://www.santafecna.org.ar
Clase StringBuffer
Las clases String y StringBuffer son independientes,
poseen sus propios métodos.
Única sintaxis de StringBuffer:
StringBuffer s1 = newStringBuffer(“hola”);
Métodos:
append(char c);
delete(int start, int end);
deleteAt(int index);
insert(int offset, String str);
reverse();
toString();
...
Academia Local Cisco – UTN Facultad Regional Santa Fe – http://www.santafecna.org.ar
5
Clases Wrapper
Ubicación: java.lang
Representan datos primitivos mediante objetos. Existe
una para cada tipo de dato primitivo.
Implementan objetos inmutables.
No pueden trabajar con operadores. Todas las
operaciones se realizan mediante métodos (de clase).
Útiles para convesión de datos
Ej.: convertir un valor numérico almacenado como
string a int
int numInt = Integer.parseInt(numString);
Academia Local Cisco – UTN Facultad Regional Santa Fe – http://www.santafecna.org.ar
Clases del paquete Math
Las clases BigDecimal y BigInteger sirven para manipular números
con una secuencia larga arbitraria de dígitos.
- Valores con representación mayor a 64 bits
Ubicación: java.math
Ej:
BigInteger a1 = new BigInteger(“12321547546513216544687321”);
Para almacenar valores comunes:
BigInteger a1 = BigInteger.valueOf(25412);
Sólo uso de métodos para realizar operaciones.
Ej.: BigInteger
granEntero = granEntero.add(BigInteger.valueOf(100));
Ej.: BigDecimal
granDec = granDec.multiply(BigDecimal.valueOf((long)500.234f));
Academia Local Cisco – UTN Facultad Regional Santa Fe – http://www.santafecna.org.ar
6
Manipulación de Fechas
Existen tres clases en la API Java para trabajar con fechas
clase Date (java.util) Æ crea un objeto del tipo Date
clase Calendar (java.util) Æ configura o cambia la fecha de un
objeto Date
clase DateFormat (java.text) Æ muestra la fecha en diferentes
formatos
Academia Local Cisco – UTN Facultad Regional Santa Fe – http://www.santafecna.org.ar
7
Descargar