Documentos de Académico
Documentos de Profesional
Documentos de Cultura
lang
Vamos a hacer un pequeño overview sobre los temas que hemos visto hasta el momento.
Hemos visto que, así como a nivel del sistema operativo organizamos nuestros archivos en
carpetas, en folders, y creamos una estructura jerárquica de cómo están organizados, en Java,
esto se llama paquetes, es una estructura de paquetes.
Esta es una convención que se creó para poder organizar nuestros paquetes y evitar tener
clases con el mismo nombre. ¿Por qué clases con el mismo nombre? Volvemos otra vez a uno
de los temas de la clase anterior, porque el nombre de la clase, el nombre real, está compuesto
por el paquete y el nombre del archivo.
que si yo deseo usar el administrador en algún otro paquete o bueno, el gerente, cualquier
clase de un paquete en otro paquete, tengo dos opciones: o copio el nombre completo de esa
clase, que en este caso es com.bytebank.modelo.Gerente, que es el qualified name, el nombre
calificado entero de esta clase, o tengo también el otro camino que es simplemente usar los
imports.
Ahora, si somos un poco más curiosos, tenemos aquí una clase system. Acá tenemos una clase
System también, y esta clase system, ¿qué es lo que nos dice? Vamos a ver que aquí el Java.doc
nos está diciendo, java.lang.System, ese es el nombre calificado de esta clase java.lang.System.
[03:00] Entonces, ¿debería importar esta clase java.lang.System.? No la veo aquí en la sección
de los imports. Recuerden que primero es la sección de paquetes, imports e implementación
de la clase. Pero aquí yo no veo en ninguna parte de dónde estamos importando system.
[03:20] Otro caso está acá string. Yo no veo de donde yo estoy importando la clase string, sin
embargo acá me dice java.lang.String. ¿De dónde es que yo estoy obteniendo estas clases si a
nivel de mi archivo yo no las estoy declarando explícitamente, ni a nivel de import ni a nivel
de su nombre cualificado?
Explorando String
Habíamos visto ya que si yo necesitaba usar una clase en un paquete externo,
a donde este está localizado, necesitaba ir por dos caminos: o escribir el
nombre completo de esa clase o importar esa clase. ¿Cuál fue el detalle que
acabamos de notar? Que para la clase string y para la clase system yo no
necesito ir por ninguno de esos dos caminos.
Entonces vamos a comenzar primero sobre la clase string, vamos a vamos a
explorar un poco esta clase string. Para esto yo voy a crear aquí un test, aquí
voy a new class y voy a darle TestString. Le voy a dar finish. Y tengo mi clase
común y corriente con un método main ahí adentro. Perfecto, nada que no
sepamos de memoria hasta el momento.
[03:34] Pero como Java sabe que no es muy práctico hacerlo de esta forma,
llamar al constructor de string, pasarle un parámetro, para que al final sea
referencia en una palabra, Java nos da esta sintaxis mucho más directa para
poder ver cuál es el valor del string, Esta forma de acá no es usada. Vamos a
comentarlo aquí. No utilizada en el mundo real. Pero existe.
El package, acá nos está diciendo, el paquete donde está la clase string
contenida es java.lang.
[06:50] ¿Entonces qué es lo que hace Java? Java disponibiliza todos los archivos de la clase
java.lang en cualquier paquete que tú lo quieras usar, sin necesidad de que tengas que
importarlo explícitamente o llamarlo a través del nombre completo, como podría ser, por
ejemplo java.lang.
Métodos:
No cambio
tamp
oco
[06:34] Pero aquí, en el indexOf, hay una cosa curiosa. ¿Y cuál es? Que yo
tengo uno, dos, tres, cuatro indexOf. Es curioso. ¿Entonces qué significa esto?
Este método indexOf está sobrecargado. Yo tengo muchas formas de usar este
indexOf. La más usada es esta de aquí, pero también pueden ir explorando las
demás opciones de indexOf.
La clase StringBuilder
En este pequeño ejemplo ya hemos creado varios objetos, solo porque estamos
concatenando algunos String. Esto no es bueno pensando en el rendimiento y
para resolver esto existe la clase StringBuilder que ayuda a concatenar Strings
de manera más eficiente.
StringBuilder es una clase común. Observe que usamos new para crear el
objeto. Además, como el objeto es mutable, usamos la misma referencia,
sin nuevas asignaciones.
Practique un poco más y pruebe otros métodos de la clase String como
isEmpty, trim, contains o split. Para hacer esto, verifique el javadoc:
https://docs.oracle.com/javase/10/docs/api/java/lang/String.html.