0% encontró este documento útil (0 votos)
6 vistas

Tipos de Datos

tipos de datos
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
6 vistas

Tipos de Datos

tipos de datos
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 24

31/7/2018 1.2. Tipos de datos.

1.2. Tipos de datos.

1.2. Tipos de datos.

Sitio: Carreras Virtuales


Curso: Programación III
Libro: 1.2. Tipos de datos.
Imprimido por: JOSUE DENI ORTIZ GUEVARA
Día: martes, 31 de julio de 2018, 10:58

https://utds.mrooms.net/mod/book/tool/print/index.php?id=222967 1/24
31/7/2018 1.2. Tipos de datos.

Tabla de contenidos
1. Identificadores.
2. Los ocho tipos de datos primitivos de Java.
3. Asignando variables.
4. Tipo de datos entero.
5. Tipo de datos de punto flotante.
6. Tipo de datos boolean.
7. Tipo de datos char.
8. Cadenas.
9. Tipo de datos primitivos versus referencias.
10. Constantes.
11. Breve ampliación sobre cadenas.
12. Breve explicación sobre la clase StringBuilder.
13. Breve explicación sobre la clase StringBuffer.
14. Tipos Enum.

https://utds.mrooms.net/mod/book/tool/print/index.php?id=222967 2/24
31/7/2018 1.2. Tipos de datos.

1. Identificadores.
Los identificadores son las palabras en el código Java que usted escoge y que no son parte del lenguaje. Por
ejemplo, en una clase de nombre ejemplo1, la palabra ejemplo1 no es una palabra reservada de Java ni tiene
ningún significado especial en Java. Se le tenía que colocar un nombre a la clase y ejemplo1 fue la palabra
seleccionada para identificar a la clase.

En Java necesitará identificar muchos elementos en su código, incluyendo nombres de clases, campos,
variables y nombres de paquete. Los nombres que seleccione son llamados identificadores y deben cumplir las
reglas siguientes:

1. Un identificador no puede ser una palabra reservada deJava, ni true, false o null.
2. Un identificador puede estar formado por letras, dígitos, guion bajoo signo de dólar.
3. Un identificador debe empezar con una letra, un guion bajo o un signo de dólar

Ejemplo de identificadores válidos:

Válido Observaciones ..... Válido Observaciones


x Java distingue entre x1 Cumple las tres reglas
mayúsculas y
X minúsculas edad Ideal porque describe su contenido
Java distingue entre Cumple las tres reglas
HolaMundo mayúsculas yminúsculas $color
No se recomienda su uso (*)

Cumple las tres reglas


holaMundo _altura No se recomienda su uso (*)

holamundo Public Cumple las tres reglas


No se recomienda su uso debido a
su semejanza con una palabra

https://utds.mrooms.net/mod/book/tool/print/index.php?id=222967 3/24
31/7/2018 1.2. Tipos de datos.

reservada

(*) Puede obtener información adicional sobre esta recomendación en la dirección


URL oficial del fabricante:

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html

Ejemplo de identificadores no válidos:

No válido Explicación ..... No válido Explicación


Empieza con un número Contiene el símbolo @
1x (incumple la tercera regla) a@b (incumple la segunda regla)

Es una palabra reservada Contiene el símbolo +


public (incumple la primera regla) x+y (incumple la segunda regla)

Contiene un espacio Es una palabra inválida


un caso (incumple la segunda regla) null (incumple la primera regla)

https://utds.mrooms.net/mod/book/tool/print/index.php?id=222967 4/24
31/7/2018 1.2. Tipos de datos.

2. Los ocho tipos de datos primitivos de Java.


Java cuenta con dos tipos de datos: primitivos y por referencia. Los datos primitivos son ocho y se llaman así
porque están construidos dentro del lenguaje. La tabla siguiente muestra los ocho tipos de datos, el número de
bits que consumen en almacenamiento y el rango de valores que pueden ser almacenados en cada uno de
ellos. Observe que el tamaño de los tipos de datos (excepto para boolean) están estrictamente definidos. La
razón de ello es que, independientemente de la plataforma donde el programa se ejecuta, los programas Java
corren en una JVM. La plataforma subyacente no afecta el tamaño o rango de los tipos de datos primitivos de
Java.

Tipo de
Tamaño Valor mínimo Valor máximo
datos
byte 8 bits -128 127
short 16 bits –32,768 32,767
int 32 bits –2,147,483,648 2,147,483,647
long 64 bits –9,223,372,036,854,775,808 9,223,372,036,854,775,807
float 32 bits ±1.40239846E-45 ±3.40282347E+8
±4.94065645841246544E-
double 64 bits ±1.79769313486231570E+308
324
char 16 bits \u0000 \uFFFF
boolean n/d true o false ----

https://utds.mrooms.net/mod/book/tool/print/index.php?id=222967 5/24
31/7/2018 1.2. Tipos de datos.

3. Asignando variables.
El término variable es usado porque los datos que almacena pueden variar (cambiar). En Java se usa el
operador de asignación igual (=) para asignar un valor particular a una variable. Por ejemplo, las siguientes
sentencias declaran una variable de tipo entero llamada x1 y le asignan el valor de 12.

int x1;
x1 = 12;
Observe que a una variable se le puede asignar un valor mientras es declarada. Las anteriores dos sentencias
pudieron haber sido reemplazadas con la siguiente línea de código única:

int x1 = 12;

Java es estricto para permitir asignar a las variables solamente los valores que coincidan con el tipo de datos
de la variable. Si x1 es un int no se le puede asignar otro tipo de dato a menos que se use el
operador cast. Por ejemplo, la siguiente sentencia declara x1 de tipo int y luego intenta asignarle un valor de
punto flotante.

int x1;
double d1 = 3.5;

// Esta línea no puede ser compilada porque se intenta asignar


// un tipo de datos diferente a int
x1 = d1;

// Esta línea compila porque se usó el operador cast para convertir


// a tipo de datos int
x1 = (int) d1;
El operador cast consiste en colocar entre paréntesis el tipo de datos del valor al que será convertido. Cast le
dice al compilador que está consciente de la asignación inválida, pero que desea hacerla de todas formas. El

https://utds.mrooms.net/mod/book/tool/print/index.php?id=222967 6/24
31/7/2018 1.2. Tipos de datos.

convertir un número de punto flotante a un tipo de datos entero causa que la parte decimal del número sea
truncada (no redondeada).

https://utds.mrooms.net/mod/book/tool/print/index.php?id=222967 7/24
31/7/2018 1.2. Tipos de datos.

4. Tipo de datos entero.

De los ocho tipos primitivos de datos, cuatro de ellos son tipos enteros que se diferencian solamente por su
tamaño: byte, short, int y long. . Los cuatro están signados, lo que significa que almacenan tanto números
positivos como negativos. Observe además que los literales enteros son tratados como int por defecto. Estudie
el siguiente programa y trate de determinar cuál será su salida.

public class DemoEnteros {


public static void main(String [] args) {
int x = 250;
System.out.println("x es " + x);

short a, b, c;
c = 21;
b = 9;

// ¿Por qué convertir a short si las tres variables ya son de ese tipo?
a = (short) (b + c);
System.out.println("a es " + a);

https://utds.mrooms.net/mod/book/tool/print/index.php?id=222967 8/24
31/7/2018 1.2. Tipos de datos.

//¿Qué sucede si no usa el sufijo "L"?


// ¿Qué sucede si usa "l" en lugar de "L"?
long nl = 12345678987654321L;
System.out.println("nl es " + nl);

nl = x;
byte ns;

// ¿Por qué convertir a tipo de datos byte?


ns = (byte) c;
System.out.println("nl es ahora " + nl + "\ny ns es " + ns);
}
}

https://utds.mrooms.net/mod/book/tool/print/index.php?id=222967 9/24
31/7/2018 1.2. Tipos de datos.

5. Tipo de datos de punto flotante.


Dos de los ocho tipos primitivos de datos son usados para almacenar números de punto
flotante: float y double. La única diferencia entre ellos es su tamaño. Observe además que los literales de
punto flotante son tratados como double por defecto. Estudie el siguiente programa y trate de determinar cuál
será su salida.

public class DecimalesDemo {


public static void main(String [] args) {
double pi = 3.14159;

// ¿Qué sucede si no usa el sufijo "F"?


// ¿Qué sucede si usa "f" en lugar de "F"?
float f = 2.7F;

System.out.println("pi = " + pi);


System.out.println("f = " + f);

int n = 15, d = 4;
f = n / d;

//¿Resultado 3.0? ¿Por qué? ¿Cómo se corrige?


System.out.println("15 / 4 = " + f);

int radio = 10;


double area = pi * radio * radio;

// ¿Por qué no se repitió el caso anterior?


System.out.println("área = " + area);

// ¿Por qué convertir a entero? ¿Qué sucede si no convierte?


int a2 = (int) pi * radio * radio;

// ¿Qué resultado genera el uso de paréntesis respecto de la línea anterior?

https://utds.mrooms.net/mod/book/tool/print/index.php?id=222967 10/24
31/7/2018 1.2. Tipos de datos.

// ¿Por qué?
int a3 = (int) (pi * radio * radio);

System.out.println("a2 = " + a2);


System.out.println("a3 = " + a3);
}
}

https://utds.mrooms.net/mod/book/tool/print/index.php?id=222967 11/24
31/7/2018 1.2. Tipos de datos.

6. Tipo de datos boolean.

Java tiene un tipo de datos primitivo llamado boolean, que representa a los valores booleanos. Una variable
de tipo boolean puede guardar ya sea true o false. Observe que true y false son literales especiales en Java.

public class BooleanosDemo {


public static void main(String [] args) {
boolean t = true;
System.out.println("t es " + t);

int x = 10;
boolean y = x > 15;
System.out.println("y es " + y);

y = x; // Esta línea genera un error, ¿por qué?


}
}
En Java, un tipo de datos booleano no es un valor entero y sólo puede contener los valores true o false, dos
tipos especiales de literales de Java. En otros lenguajes, los valores booleanos son tipos de datos enteros, con
0 siendo falso y una entrada diferente de cero considerada verdadera.

https://utds.mrooms.net/mod/book/tool/print/index.php?id=222967 12/24
31/7/2018 1.2. Tipos de datos.

7. Tipo de datos char.

El tipo de datos char representa caracteres en Java. El tamaño de un carácter es de 16 bits, lo cual permite
representarlos como enteros usando el mapeado de caracteres Unicode. Un char puede ser tratado como un
valor entero, permitiéndole realizar operaciones aritméticas y haciendo comparaciones utilizando los símbolos
mayor que (>) y menor que (<). Tenga en cuenta que un char es un entero sin signo. Las comillas simples son
usadas para referirse a un caracter literal. Por ejemplo, 'A' es un caracter, pero "A" no lo es (es una
cadena). Algunos caracteres no imprimibles son referidos con una secuencia de escape.

La tabla siguiente muestra algunas de estas secuencias:

Secuencia de escape Definición


\t Tabulación
\b Backspace
\n Nueva línea
\r Retorno de carro
\' Comilla sencilla
\" Comilla doble

https://utds.mrooms.net/mod/book/tool/print/index.php?id=222967 13/24
31/7/2018 1.2. Tipos de datos.

\\ Plica invertida
\u Caracter unicode
.

public class CharDemo {


public static void main(String [] args) {
char a = 'A';
char b = (char) (a + 1);

//¿Por qué da como resultado un número entero?


System.out.println(a + b);

// ¿Por qué da como resultado una concatenación?


System.out.println("a + b es " + a + b);

// Usando las variables a y b escriba la línea de código necesaria


// para imprimir: A = 65 y B = 66

int x = 75;
char y1 = (char) x;
char mitad = '\u00BD';

//observe el valor de la variable y1, así como el valor


// de la variable mitad. ¿Por qué se obtiene este resultado?
System.out.println("y1 es " + y1 + "\ny mitad es " + mitad);
}
}

https://utds.mrooms.net/mod/book/tool/print/index.php?id=222967 14/24
31/7/2018 1.2. Tipos de datos.

8. Cadenas.

Una cadena es una secuencia de caracteres. Tenga en cuenta que las cadenas no son tipos de datos
primitivos en Java y por tanto necesitan ser representadas por una clase. Java tiene una clase
llamada String que representa a objetos de cadena.

Una cadena es creada automáticamente para las cadenas literales en el código Java. Por ejemplo:

System.out.println("Hola, mundo");
Ejemplo sobre el uso de cadenas:

public class CadenasDemo {


public static void main(String [] args) {
String primero = "Carlos", ultimo = "Cuéllar";
String nombre = primero + " " + ultimo;
System.out.println("Nombre = " + nombre);

double pi = 3.14159;
String str = "Hola, " + nombre;

https://utds.mrooms.net/mod/book/tool/print/index.php?id=222967 15/24
31/7/2018 1.2. Tipos de datos.

// Observe que no se efectúa la suma. ¿Por qué?


System.out.println(str + pi + 7);

// ¿Por qué se efectúa la suma y luego concatena?


System.out.println(str + (pi + 7));

// ¿Por qué se efectúa la suma y luego concatena?


System.out.println(pi + 7 + str);

// ¿Qué imprime?
System.out.println("Jorge \"Mágico\" González");

// ¿Qué imprime?
System.out.println("A\tB\tC\nD\tE\tF");
}
}

https://utds.mrooms.net/mod/book/tool/print/index.php?id=222967 16/24
31/7/2018 1.2. Tipos de datos.

9. Tipo de datos primitivos versus referencias.


Hay otro tipo de variable en Java llamada referencia, la cual es usada cuando los datos involucrados no son un
tipo de datos primitivo.

Una referencia es diferente de un tipo de datos primitivo en que una referencia no contiene el valor real del
objeto al cual se refiere. En su lugar, una referencia apunta hacia la ubicación en memoria donde el objeto está
localizado.

Recuerde que el tipo de datos de una variable en Java corresponde a uno de los ocho tipos primitivos o a
una referencia a un objeto. Estas son las únicas dos opciones.

Si la variable es un tipo de datos primitivo, el valor de la variable es almacenado en la misma ubicación de


memoria que la variable.

Si la variable es una referencia, el valor de la variable es una dirección de memoria. Esta dirección de memoria
es la ubicación del objeto al cual se refiere la referencia. El objeto contiene el dato real.

Java no permite hacer conversión (cast) para obtener la dirección de memoria.

https://utds.mrooms.net/mod/book/tool/print/index.php?id=222967 17/24
31/7/2018 1.2. Tipos de datos.

10. Constantes.
La palabra reservada final es usada en Java para declarar una variable como una constante. Una
variable final en Java no puede ser cambiada después de que se le ha asignado un valor.

final double pi = 3.14159;


pi = -5.0; // Error: no compila.
Es importante mencionar que la palabra reservada final también tiene otros usos.

https://utds.mrooms.net/mod/book/tool/print/index.php?id=222967 18/24
31/7/2018 1.2. Tipos de datos.

11. Breve ampliación sobre cadenas.


Las cadenas son una secuencia de caracteres. En el lenguaje de programación Java, las cadenas son tratadas
como objetos, por lo que existe una clase para crear y manipular cadenas.

Como se ha visto, una variable de tipo de datos cadena se crea de la siguiente manera:

String variable1 = "primer valor";


Sin embargo, debido a que String es un tipo de datos por referencia (una clase), también puede crear una
variable de tipo cadena usando la sintaxis siguiente:

String variable2 = new String();


En Java 8, la clase String tiene varios constructores. Por ejemplo, las siguientes instrucciones son
perfectamente válidas:

String variable3 = new String("tercer valor");


char[] arreglo = {'c', 'u', 'a', 'r', 't', 'o', ' ', 'v', 'a', 'l', 'o', 'r'};
String variable4 = new String(arreglo);
La clase String incluye métodos para examinar caracteres individuales de la secuencia, para comparar,
buscar, extraer y crear una copia de una cadena con todos los caracteres convertidos a mayúsculas o a
minúsculas. Por ejemplo:

String cadena = "Ejemplo de Cadena";


System.out.println("Caracter en la posición 5 = " + cadena.charAt(5));
System.out.println("Longitud de la cadena = " + cadena.length());
System.out.println("Subcadena entre 4 y 14 = " + cadena.substring(4, 14));
System.out.println("Cadena en mayúsculas = " + cadena.toUpperCase());
System.out.println("Cadena en minúsculas = " + cadena.toLowerCase());

Puede obtener información adicional sobre los constructores y métodos de la


claseString para Java 8 en la dirección:

https://utds.mrooms.net/mod/book/tool/print/index.php?id=222967 19/24
31/7/2018 1.2. Tipos de datos.

https://docs.oracle.com/javase/8/docs/api/java/lang/String.html
Es importante tener en cuenta que una cadena es constante, por lo que su valor no puede ser cambiado
después de su creación. Esto significa que cuando modifica el contenido de un objeto de tipo String, en
realidad lo destruye y lo vuelve a construir con la nueva cadena, lo cual ocasiona un uso inapropiado de los
recursos del equipo al incrementar la cantidad de instrucciones a ejecutar, lo cual a su vez influye en el
desempeño del equipo.

Si desea construir un objeto de tipo cadena que sea mutable, debe usar la
clase StringBuilder o StringBuffer.

https://utds.mrooms.net/mod/book/tool/print/index.php?id=222967 20/24
31/7/2018 1.2. Tipos de datos.

12. Breve explicación sobre la clase StringBuilder.


La clase StringBuilder permite construir una cadena mutable, es decir, una cadena que puede cambiar sin
necesidad de destruir el objeto que ya se encuentra en memoria (a diferencia de la clase String).

StringBuilder var1 = new StringBuilder();


var1.append("valor 1");
System.out.println("variable StringBuilder = " + var1);
Al igual que la clase String, la clase StringBuilder también contiene constructores y métodos.

Puede obtener información adicional sobre los constructores y métodos de la


claseStringBuilder para Java 8 en la dirección:

https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html

https://utds.mrooms.net/mod/book/tool/print/index.php?id=222967 21/24
31/7/2018 1.2. Tipos de datos.

13. Breve explicación sobre la clase StringBuffer.


La clase StringBuffer permite construir una cadena mutable, es decir, una cadena que puede cambiar sin
necesidad de destruir el objeto que ya se encuentra en memoria (a diferencia de la clase String). La
clase StringBuffer se usa para la programación multihilos (multithreading), mientras que la
clase StringBuilder se usa para programar un solo hilo. Sin embargo, este tema se encuentra fuera del
alcance del curso.

StringBuffer var2 = new StringBuffer();


var2.append("valor 2");
System.out.println("variable StringBuffer = " + var2);
Al igual que la clase String, la clase StringBuffer también contiene constructores y métodos.

Puede obtener información adicional sobre los constructores y métodos de la


claseStringBuffer para Java 8 en la dirección:

https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuffer.html

Puede ampliar sobre el tema de la programación multihilos en los enlaces


siguientes:

http://www.javatpoint.com/multithreading-in-java

https://www.tutorialspoint.com/java/java_multithreading.htm

https://utds.mrooms.net/mod/book/tool/print/index.php?id=222967 22/24
31/7/2018 1.2. Tipos de datos.

14. Tipos Enum.


Un tipo enum es un tipo de datos especial que habilita que una variable sea un tipo predeterminado de
constantes. La variable debe ser igual a uno de los valores que han sido predefinidos por ella. Algunos
ejemplos comunes son los puntos cardinales, las estaciones del año, los días de la semana, los meses del año
o los planetas del sistema solar.

Por convención, los valores contenidos en el tipo de datos especial enumse escriben en mayúsculas, aunque
nada impide que lo escriba en minúsculas.

Ejemplo:

public enum Dia {


LUNES, MARTES, MIÉRCOLES, JUEVES, VIERNES, SÁBADO, DOMINGO
}
.

NOTA:

Puede ampliar sobre tipos enum en los enlaces siguientes:

https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html

https://www.mkyong.com/java/java-enum-example/
Respecto al código, resuelva las siguientes situaciones:

1. Escriba el programa que haga uso del tipo de datos especial enum Dia que
deberá definir en el mismo archivo y realice lo siguiente:
1. Imprima cualquier valor directamente del tipo de datos especial enum.
2. Asigne un valor contenido en el tipo de datos especial enum a una
variable de tipo cadena e imprímala.
3. Imprima todos los valores almacenados en el tipo de datos especial
enum.

https://utds.mrooms.net/mod/book/tool/print/index.php?id=222967 23/24
31/7/2018 1.2. Tipos de datos.

2. Reescriba el programa para almacenar el tipo de datos especial enum Dia en


un archivo separado.

https://utds.mrooms.net/mod/book/tool/print/index.php?id=222967 24/24

También podría gustarte