AjLearning
AjLearning 0.1    





Introducción a Java - Constructores de String y encapsulamiento

Curso Introducción a Java

    Anterior     Siguiente

Si examinamos la documentación de String, encontramos varios constructores de esos objetos (algunos son obsoletos). Recordemos los vigentes:

String()
Inicializa un nuevo String, como vacío.

String(byte[] bytes)
Construye un nuevo String, basado en el arreglo de bytes recibido, codificándolo según el conjunto de caracteres de la plataforma.

String(byte[] bytes, int offset, int length)
Igual que el anterior, pero tomando un subarreglo de bytes, desde tal posición (offset), tantos elementos (length).

String(byte[] bytes, int offset, int length, String charsetName)
Como antes, pero usando el conjunto de caracteres especificado como último parámetro.

String(byte[] bytes, String charsetName)
Como el segundo, aplicando un conjunto de caracteres.

String(char[] value)
Podemos crear un String basándonos en un arreglo de caracteres, en lugar de bytes.

String(char[] value, int offset, int count)
Usamos un sub arreglo de caracteres.

String(String original)
Copiamos un String, para crear otro.

String(StringBuffer buffer)
Utilizamos un StringBuffer como fuente del contenido.

Vemos que un String es un conjunto ordenado de caracteres. Puede obtenerse de interpretar como caracteres a un conjunto de bytes, pero siempre un String contiene caracteres. Internamente, lo maneja como un
arreglo de bytes. Si examinamos el código fuente de la clase String.java, que se encuentra en la librería, encontramos alguna línea como:

public final class String implements java.io.Serializable, Comparable, CharSequence { /** The value is used for character storage. */ private char value[]; /** The offset is the first index of the storage that is used. */ private int offset; /** The count is the number of characters in the String. */ private int count; /** Cache the hash code for the string */ private int hash = 0; Pero ese arreglo, es totalmente privado para nosotros. Siguiendo el principio de encapsulamiento, los desarrolladores de la librería nos ocultan el estado implementado, y para el resto del sistema, los objetos String son opacos, no dejan ver sus variables internas directamente.


Programado por Angel J. Lopez www.ajlopez.com