Your SlideShare is downloading. ×
Api contents
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Api contents

78
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
78
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 1 Sun Educación México API Contents
  • 2. 2 Sun Educación México Paquete java.lang • Este paquete es indispensable cuando se programa en Java • Se importa automáticamente en cada archivo fuente • Este paquete contiene la clase Object que es la clase padre de todos los objectos, también contiene las clases “wrapper” (Boolean, Character, Number, Byte, Short, Integer, Long, Float, Double) usados para manejar datos primitivos. • Provee clases esenciales para el manejo de la seguridad (SecurityManager), para cargar clases (ClassLoader), para manejo de hilos (Thread y ThreadGroup) y excepciones (Exception). • También provee clases que implementan los flujos E/S estándar (System), el manejo de cadenas de texto (String, StringBuffer) y funciones matemáticas (Math)
  • 3. 3 Sun Educación México La Clase Object Todas las clases heredan directa o indirectamente de la clase Object. Una definición de clase sin la cláusula extends, implícitamente extiende de Object. La clase Object define la funcionalidad básica para todos los objetos, incluidos los arreglos ya que son objetos genuinos.
  • 4. 4 Sun Educación México Métodos de la Clase Object • int hashCode() > Cuando se almacenan objetos en tablas hash, este metodo puede ser usado para obtener el valor hash para un objeto. Este valor garantiza que sea consistente durante la ejecución del programa. • Class getClass() > Devuelve la clase en tiempo de ejecución del objeto, el cual es representado por un objeto de la clase Class. • boolean equals(Object obj) > Este método en la clase Object retorna verdadero solo si las referencias denotan el mismo objeto. Este método suele ser sobrescrito de manera de implementar la igualdad semántica.
  • 5. 5 Sun Educación México Método equals() • La relación implementada por el método equals debe ser: > Reflexiva: obj.equals(obj), es siempre verdadero. > Simétrica: obj1.equals(obj2) es verdadero si y solo si obj2.equals(obj1) > Transitiva: si obj1.equals(obj2) y obj2.equals(obj3), entonces obj1.equals(obj3) es verdadero. > Consistente: múltiples invocaciones a obj1.equals(obj2) siempre debe retornar el mismo valor. > La expresión obj1.equals(null), siempre debe retornar falso. • protected clone() trows CloneNotSupportException > Este es utilizado para crear objetos a partir de otro, de manera que sean exactamente iguales (mismo estado). Una clase puede implementar la interfaz Cloneable para indicar que la clonación de estos objetos es valida, además debe sobrescribir este método para implementar la clonación.
  • 6. 6 Sun Educación México Otros métodos de Object • String toString() > Si una subclase no sobrescribe este método, se obtendrá una representación “textual” de un objeto de la siguiente manera: “nombre de la clase@codigo hash” > El método println() de la clase PrintStream, convierte los argumentos a su representación textual utilizando este método. • protected void finalize() throws Throwable > Este método se discutio en conjunto con la recolección de basura.
  • 7. 7 Sun Educación México • void notify() • void notifyAll() > Estos métodos son utilizados para despertar a uno o a todos los hilos que están esperando el monitor de ese objeto. Solo un hilo que tenga el monitor del objeto puede invocar a este método, usualmente dentro de un código sincronizado. Si no se tiene el monitor y se invoca a alguno de estos métodos se lanza la excepción IlegalMonitorState.
  • 8. 8 Sun Educación México • void wait(long tiempo) throws InterruptedException • void wait(long tiempo, int nanos) throws InterruptedException • void wait() throws InterruptedException • Estos métodos pueden ser usados por un hilo para esperar a otro hilo dado una condición determinada. Se puede elegir esperar por un determinado periodo de tiempo o indefinidamente. Estos métodos lanza la excepción InterruptedException si el hilo actual no tiene el monitor del objeto.
  • 9. 9 Sun Educación México Clases Envoltorio (Wrapper) • Las clases envoltorio se discuten también en la sección de tipos de datos primitivos. • Los valores primitivos en Java no son Objetos y para poder manejarlos como tales el paquete java.lang provee clases envoltorio para cada tipo de dato primitivo. > Falso a partir de Java 5, esto se conoce como “AutoBoxing” • Todas las clases envoltorio pueden ser instanciadas pero son inmutables. > A excepción de la clase Void
  • 10. 10 Sun Educación México Constructores Comunes • Cada clase envoltorio tiene dos constructores (A excepción de Character) > Uno que toma el valor primitivo y retorna un objeto correspondiente a la clase envoltorio. – Character charObj = new Character(‘c’); – Boolean b = new Boolean(true); • Uno que toma un String que representa al valor primitivo y retorna un objeto correspondiente a la clase envoltorio. > Este constructor lanza la excepción NumberFormatException si el parámetro String no es valido. • Ejemplo: > Boolean b = new Boolean(“FaLse”); // es valido se ignora may/min. > Boolean b = new Boolean(“XX”); // es valido, es falso.
  • 11. 11 Sun Educación México Métodos de Utilidad • Cada clase envoltorio (excepto Character) define un método estático valueOf(String s) que retorna un objeto envoltorio correspondiente al valor representado por el String pasado como argumento. > Boolean b = Boolean.valueOf(“false”); > Integer i = Integer.valueOf(“2010”); • Cada clase envoltorio sobrescribe el método toString() desde la clase Object. La sobrescritura de este método retorna un String que representa el valor primitivo en el objeto envoltorio. • Cada clase envoltorio sobrescribe el método equals(Object o) que implementa una comparación semántica de objetos. También sobrescriben el método hashCode() • Cada clase envoltorios define un método tipoValue() el cual devuelve el valor primitivo correspondiente al objeto envoltorio.
  • 12. 12 Sun Educación México Variables, Constantes y Otros • Clase Boolean > Esta clase define los siguientes objetos que representan a verdadero y falso respectivamente: – Boolean.TRUE – Boolean.FALSE • Clase Void > Esta clase no envuelve a ningún tipo de dato primitivo. Solo denota a la clase que representa al tipo primitivo void.
  • 13. 13 Sun Educación México • Clase Character > Esta clase también define un conjunto de metodos estaticos para manejar varios atributos de un carácter: – static boolean isLowerCase(char c) – static boolean isUpperCase(char c) – static boolean isTitleCase(char c) – static boolean isDigit(char c) – static boolean isLetter(char c) – static boolean isLetterOrDigit(char c) – toUpperCase(char c) – toLowerCase(char c) – toTitleCase(char c)
  • 14. 14 Sun Educación México Clases Numéricas • Byte, Short, Integer, Long, Float, Double > Todas las sub-clases de la clase abstracta Number > Cada clase define un conjunto de constantes, las que incluyen el mínimo y el máximo correspondiente para cada tipo de dato primitivo. – <nombre de la clase envoltorio>.MIN_VALUE – <nombre de la clase envoltorio>.MAX_VALUE • Cada clase envoltorio define métodos estáticos parseType(String s), el cual retorna el valor numérico primitivo representado por el String. Este método lanza la expresión NumberFormatException si el parámetro String no es un argumento valido.
  • 15. 15 Sun Educación México • Cada clase envoltorio define los siguientes métodos tipoValue() para convertir al valor primitivo de un objeto envoltorio a cualquier valor primitivo numérico: > byte byteValue() > short shortValue() > int intValue() > long longValue() > float floatValue() > double doubleValue()
  • 16. 16 Sun Educación México La clase Math • La clase final Math define un conjunto de métodos estáticos que dan soporte a funciones matemáticas comunes, incluyendo funciones para redondear números, operaciones trigonometrícas, seudo números aleatorios, encontrar el máximo o mínimo entre dos números, calcular exp. y log. • La clase final Math prove constants que representan el valor de e, la base de los logaritmos naturals, el valor de pi, etc. • Funciones de redondeo > static int abs(int i) > static long abs(long l) > static float abs(float f) > static double abs(double d) • Para valores positivos retorna el valor absoluto del argumento. Para valores negativos retorna la negación del argumento.
  • 17. 17 Sun Educación México • static double ceil(double d) > Este método retorna el menor valor doble que no sea menor que el argumento d, y sea igual al entero matemático. • static double floor(double d) > Este método retorna el mayor valor doble que no sea mayor que el argumento d, y que sea igual al entero matemático. • static int round(float f) • static long round(double d) > Este método sobrecargado round() retorna el entero mas cercano al argumento.
  • 18. 18 Sun Educación México • static int max(int a, int b) • static long max(long a, long b) • static float max(float a, float b) • static double max(double a, double b) > El método sobrecargado max() retorna el mayor de los valores a y b para cualquier tipo de dato numérico. • static int max(int a, int b) • static long max(long a, long b) • static float max(float a, float b) • static double max(double a, double b) > El método sobrecargado min() retorna el menor de los valores a y b para cualquier tipo de dato numérico.
  • 19. 19 Sun Educación México Funciones Exponenciales • static double pow(double d1, double d2) > Este método pow() retorna el valor de d1 elevado a la potencia d2 • static double exp(double d) > Este método exp retorna la exponencial e elevado a la potencia d. • static double log(double d) > Este metido log retorna el logaritmo natural (base e) de d. • static double pow(double d) > El método sqrt retorna la raíz cuadrada de d. Para NaN o un argumento negativo, el resultado es NaN
  • 20. 20 Sun Educación México Funciones Trigonométricas • static double sin(double d) > Retorna el seno del ángulo d en radianes. • static double cos(double d) > Retorna el coseno del ángulo d en radianes. • static double tan(double d) > Retorna la tangente del ángulo d en radianes.
  • 21. 21 Sun Educación México Seudo números Aleatorios • static double random() > Este método retorna un numero aleatorio mayor o igual a 0.0 y menor que 1.0
  • 22. 22 Sun Educación México La clase String • La clase String maneja cadena de caracteres inmutables, la cual es de solo lectura una vez creada. • Las cadenas de caracteres implementadas por esta clase son objetos y los caracteres se representan con Unicote de 16 bits. • La clase String provee las siguientes funcionalidades para el manejo de cadenas. > Crear e inicializar cadenas > Leer caracteres individuales de la cadena > Comparar cadenas > Cambiar mayúsculas y minúsculas de una cadena. > Concatenar cadenas > Buscar caracteres y sub-cadenas > Extraer sub-cadenas > Conversión de objetos a cadenas
  • 23. 23 Sun Educación México Creando e Inicializando String • La clase final String tiene numerosos constructores públicos para crear e inicializar cadenas basados en varios tipos de argumentos. • La forma mas fácil de crear e inicializar un objeto String es utilizando una cadena literal. > Ejemplo: String str1 = “Hola mundo!”; • Una cadena literal es implementado como un objeto anónimo. Java optimiza el manejo de cadenas literales, compartiendo la referencia para todos los literales > Ejemplo: String str2 = “Hola mundo!”// str1 y str2 son iguales sus referencias. • También podemos utilizar al constructor: > String (String s);
  • 24. 24 Sun Educación México Leyendo Caracteres Individuales • int length() > Retorna el número de caracteres que hay en la cadena. • char charAt(int index) > Lee un carácter en un índice particular. El primer carácter esta en el índice 0 y el ultimo en el length() -1. si el índice no es valido lanza la excepción StringIndexOutOfBoundsException.
  • 25. 25 Sun Educación México Comparando Caracteres • boolean equals(Object obj) > Este método sobrescribe el método equals heredado desde Object para implementar una comparación de cadenas. • boolean equalsIgnoreCase(String str2) > Este método es igual a equals solo que ignora las mayúsculos o minúsculas. • int compareTo(String str2) • int compareTo(Object obj) > Estos métodos retornan un valor basado en la comparación: – El valor 0, si son iguales. – Un valor menor que 0, si el String (al cual se aplico el metido) es lexicográficamente menor que al argumento String. Un valor mayor que 0, si el String es lexicográficamente mayor que el argumento String.
  • 26. 26 Sun Educación México La clase StringBuffer • Esta clase implementa una cadena mutable de caracteres. Esta posee una capacidad que determina la cantidad de caracteres que puede acomodar, aunque esta capacidad puede cambiar dinámicamente. • Al igual que String es una clase final y soportan multi-hilo. • Esta clase provee facilidades para: > Construir StringBuffer > Cambiar, Borrar y leer caracteres del StringBuffer > Construir cadenas a partir del StringBuffer > Agregar, insertar y borrar desde StringBuffer > Controlar la capacidad del StringBuffer
  • 27. 27 Sun Educación México Construir un StringBuffer • Se proveen tres constructores: > StringBuffer(String s) – Crea un nuevo StringBuffer, cuyo contenido sera igual a la cadena recibida como argumento. Su capacidad inicial sera igual al largo de la cadena pasada como argumento mas 16 caracteres. > StringBuffer(int largo) – Crea un nuevo StringBuffer sin contenido. Su capacidad inicial esta dada por argumento largo, el cual no puede ser menor que cero. > StringBuffer() – Crea un nuevo StringBuffer sin contenido. Su capacidad inicial es de 16 caracteres.
  • 28. 28 Sun Educación México Cambiando y Leyendo Caracteres • int length() > Retorna el número de caracteres que hay en la cadena. • char charAt(int index) • char setCharAt(int index) > Estos métodos leen y cambian un carácter en un índice particular. El primer carácter esta en el índice 0 y el ultimo en el length() -1. si el índice no es valido lanza la excreción StringIndexOutOfBoundsException.
  • 29. 29 Sun Educación México Construyendo String / StringBuffer • Agregar, insertar o borrar caracteres realiza automáticamente un ajuste en la capacidad del StringBuffer si es necesario. Los índices que se pasen como argumentos deben ser igual o mayor a cero, en caso contrario se lanza la Excepción StringIndexOutOfBoundsException. > El método sobrecargado append() puede ser usado para agregar al final del StringBuffer – StringBuffer append(Object obj)... • Los siguientes métodos convierten valor primitivos a string a través del metodo String.valueOf(), antes de ser agregados al StringBuffer. > StringBuffer append(<primitivo> p) • El método sobre cargado insert() puede ser usado para insertar caracteres en una posición dada en el StringBuffer.
  • 30. 30 Sun Educación México Capacidad de StringBuffer • int capacity() > Este método retorna la capacidad actual del StringBuffer • void ensureCapactity(int tamaño) > Asegura la capacidad sea al menos el parámetro que se pasa como argumento, si no es suficiente lo agranda. • void setLength(int tamaño) > Este método asegura que el numero actual de caracteres sea exactamente igual al parámetro, truncando o agrandando (rellenado con ‘u0000’) si es necesario.
  • 31. 31 Sun Educación México StringBuilder • Tiene exactamente el mismo API • No es ThreadSafe • Es mas rápida que StringBuffer
  • 32. 32 Sun Educación México Formatting Notes on formatting dates, numbers, currencies, Strings & streams
  • 33. 33 Sun Educación México java.util.Locale • Every JVM has a default locale (eg: UK,US) • Non-text formatters use the locale • Some methods can use a specific locale • Many locales exist as predefined constants (eg: Locale.UK, Locale.US)
  • 34. 34 Sun Educación México java.text – abstract classes Format DateFormat getInstance() getXxxInstance() parse() format() NumberFormat getInstance() getXxxInstance() parse() format() SetXxximumXxxDigits() Xxx=Currency, Integer, etc
  • 35. 35 Sun Educación México Using DateFormat (i) import java.text.*; import java.util.*; public class UsingDateFormat { public static void main(String[] args) throws ParseException { DateFormat df = DateFormat.getInstance(); String ds = "08/04/56 15:15, GMT"; Date d = df.parse(ds); System.out.println("(toString) "+d); System.out.println("(UK-style) "+df.format(d)); df = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.LONG,Locale.US); System.out.println("(US-style) "+df.format(d)); } }
  • 36. 36 Sun Educación México Using DateFormat (ii) import java.text.*; import java.util.*; public class UsingDateFormat { public static void main(String[] args) throws ParseException { DateFormat df = DateFormat.getInstance(); String ds = "08/04/56 15:15, GMT"; Date d = df.parse(ds); System.out.println("(toString) "+d); System.out.println("(UK-style) "+df.format(d)); df = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.LONG,Locale.US); System.out.println("(US-style) "+df.format(d)); } } (toString) Sun Apr 08 15:15:00 GMT 1956
  • 37. 37 Sun Educación México Using DateFormat (iii) import java.text.*; import java.util.*; public class UsingDateFormat { public static void main(String[] args) throws ParseException { DateFormat df = DateFormat.getInstance(); String ds = "08/04/56 15:15, GMT"; Date d = df.parse(ds); System.out.println("(toString) "+d); System.out.println("(UK-style) "+df.format(d)); df = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.LONG,Locale.US); System.out.println("(US-style) "+df.format(d)); } } (UK-style) 08/04/56 15:15 (US-style) 4/8/56 3:15:00 PM GMT
  • 38. 38 Sun Educación México Using NumberFormat (i) import java.text.*; import java.util.*; public class UsingNumberFormat { public static void main(String[] args) throws ParseException { NumberFormat nf = NumberFormat.getInstance(); String myFloat = "3456.789"; Number n = nf.parse(myFloat); System.out.println("(UK-style) "+nf.format(n)); nf = NumberFormat.getNumberInstance(Locale.FRANCE); nf.setMaximumIntegerDigits(1); nf.setMinimumFractionDigits(4); System.out.println("(FR-style) "+nf.format(n)); nf = NumberFormat.getCurrencyInstance(Locale.US); nf.setMaximumFractionDigits(2); System.out.println("(US-style) "+nf.format(n)); } } (UK-style) 3,456.789
  • 39. 39 Sun Educación México Using NumberFormat (ii) import java.text.*; import java.util.*; public class UsingNumberFormat { public static void main(String[] args) throws ParseException { NumberFormat nf = NumberFormat.getInstance(); String myFloat = "3456.789"; Number n = nf.parse(myFloat); System.out.println("(UK-style) "+nf.format(n)); nf = NumberFormat.getNumberInstance(Locale.FRANCE); nf.setMaximumIntegerDigits(1); nf.setMinimumFractionDigits(4); System.out.println("(FR-style) "+nf.format(n)); nf = NumberFormat.getCurrencyInstance(Locale.US); nf.setMaximumFractionDigits(2); System.out.println("(US-style) "+nf.format(n)); } } (FR-style) 6,7890
  • 40. 40 Sun Educación México Using NumberFormat (iii) import java.text.*; import java.util.*; public class UsingNumberFormat { public static void main(String[] args) throws ParseException { NumberFormat nf = NumberFormat.getInstance(); String myFloat = "3456.789"; Number n = nf.parse(myFloat); System.out.println("(UK-style) "+nf.format(n)); nf = NumberFormat.getNumberInstance(Locale.FRANCE); nf.setMaximumIntegerDigits(1); nf.setMinimumFractionDigits(4); System.out.println("(FR-style) "+nf.format(n)); nf = NumberFormat.getCurrencyInstance(Locale.US); nf.setMaximumFractionDigits(2); System.out.println("(US-style) "+nf.format(n)); } } (US-style) $3,456.79
  • 41. 41 Sun Educación México java.util.regex classes Pattern compile() matcher() Matcher matches() lookingAt() find() start() end()
  • 42. 42 Sun Educación México Using regular expressions (i) import java.util.regex.*; public class UsingRegex { public static void main(String[] args) { String s = "2B or not 2B, that is the question"; String abc = "[ABC]", q = "q", anything = ".*", space = "s", anyDigit = "d"; String expression = anything+space+abc+space+anything; Pattern p = Pattern.compile(expression); Matcher m = p.matcher(s); System.out.println("Found ""+expression+""? "+m.matches()); expression = anything+anyDigit+abc+anything+q+anything; p = Pattern.compile(expression); m = p.matcher(s); System.out.println("Found ""+expression+""? "+m.matches()+ " (at offset "+m.start()+")"); } }
  • 43. 43 Sun Educación México Using regular expressions (ii) import java.util.regex.*; public class UsingRegex { public static void main(String[] args) { String s = "2B or not 2B, that is the question"; String abc = "[ABC]", q = "q", anything = ".*", space = "s", anyDigit = "d"; String expression = anything+space+abc+space+anything; Pattern p = Pattern.compile(expression); Matcher m = p.matcher(s); System.out.println("Found ""+expression+""? "+m.matches()); expression = anything+anyDigit+abc+anything+q+anything; p = Pattern.compile(expression); m = p.matcher(s); System.out.println("Found ""+expression+""? "+m.matches()+ " (at offset "+m.start()+")"); } } Found ".*s[ABC]s.*"? false Found ".*d[ABC].*q.*"? true (at offset 0)
  • 44. 44 Sun Educación México Using String.split() import java.util.regex.*; public class regex { public static void main(String[] args) { String s = "2B or not 2B, that is the question"; String[] sa = s.split("d"); for (String section : sa) { System.out.println(section); } } } B or not B, that is the question
  • 45. 45 Sun Educación México Using java.util.Scanner import java.util.*; public class SimpleAdder { public static void main(String[] args) { String sum = "1 + 1"; Scanner s = new Scanner(sum); int op1 = s.nextInt(); s.next(); int op2 = s.nextInt(); System.out.println(sum+" = "+(op1+op2)); } } 1 + 1 = 2
  • 46. 46 Sun Educación México Formatting using printf() import java.io.*; public class UsingPrintf { public static void main(String[] args) throws IOException { boolean b = true; char c = 'A'; int i = 77; double d = -12.34; DataOutputStream dos = new DataOutputStream(new FileOutputStream(new File("format.dat"))); dos.writeBoolean(b); dos.writeChar(c); dos.writeInt(i); dos.writeDouble(d); dos.close(); DataInputStream dis = new DataInputStream(new FileInputStream(new File("format.dat"))); b=dis.readBoolean(); c=dis.readChar(); i= dis.readInt(); d=dis.readDouble(); dis.close(); System.out.printf("File contained %b, %c, %0+10d and %(.0f",b,c,i,d); } File contained true, A, +000000077 and (12)