Tipos de Datos en Java

13
TIPOS DE DATOS EN JAVA Un dato siempre lleva asociado un tipo de dato, que determina el conjunto de valores que puede tomar. En Java toda la información que maneja un programa está representada por dos tipos principales de datos: Tipo de dato Representación Tamaño (Bytes) Rango de Valores Valor por defecto Clase Asociada byte Numérico Entero con signo 1 -128 a 127 0 Byte short Numérico Entero con signo 2 -32.768 a 32.767 0 Short int Numérico Entero con signo 4 -2147483648 a 2147483647 0 Integer long Numérico Entero con signo 8 -9223372036854775808 a 9223372036854775807 0 Long float Numérico en Coma flotante de precisión simple Norma IEEE 754 4 3.4x10 -38 a 3.4x1 0 38 0.0 Float double Numérico en Coma flotante de precisión doble Norma IEEE 754 8 1.8x10 -308 a 1.8x 10 308 0.0 Double char Carácter Unicode 2 \u0000 a \uFFFF \u0000 Characte r boolean Dato lógico - true ó false false Boolean void - - - - Void

Transcript of Tipos de Datos en Java

Page 1: Tipos de Datos en Java

TIPOS DE DATOS EN JAVA

Un dato siempre lleva asociado un tipo de dato, que determina el conjunto de valores que puede tomar.

En Java toda la información que maneja un programa está representada por dos tipos principales de datos:

Tipo de

dato

Representació

n

Tamaño

(Bytes)

Rango de Valores Valor

por

defecto

Clase

Asociada

byte Numérico Entero

con signo

1 -128 a 127 0 Byte

short Numérico Entero

con signo

2 -32.768 a 32.767 0 Short

int Numérico Entero

con signo

4 -2147483648 a 2147483647

0 Integer

long Numérico Entero

con signo

8 -9223372036854775808 a

9223372036854775807

0 Long

float Numérico

en Coma flotante

de precisión

simple Norma

IEEE 754

4  3.4x10-38 a  3.4x1038 0.0 Float

double Numérico

en Coma flotante

de precisión

doble Norma

IEEE 754

8  1.8x10-308 a  1.8x10308 0.0 Double

char Carácter Unicode 2 \u0000 a \uFFFF \u0000 Character

boolean Dato lógico - true ó false false Boolean

void - - - - Void

DATOS NUMÉRICOS ENTEROS

En Java los representan los tipos: byte, short, int, long.

El tipo de dato numérico entero es un subconjunto finito de los números enteros del mundo real. Pueden ser positivos o negativos.

Ejemplo de declaración de variables enteras:

int a;byte n1, n2;short x;

Page 2: Tipos de Datos en Java

DATOS NUMÉRICOS REALES

En Java los representan los tipos: float, double.El tipo de dato numérico real es un subconjunto finito de los números reales. Siempre llevan un punto decimal y también pueden ser positivos o negativos. Los números reales tienen una parte entera y una parte decimal.

Por ejemplo: 0.08   -54.0001

Ejemplo de declaración de variables reales:

float peso;double longitud;float altura = 2.5F;double area = 1.7E4; // equivale a 1.7 * 104

double z = .123; //si la parte entera es 0 se puede omitirDATOS DE TIPO CARÁCTER

En Java se representa con el tipo char.Un dato de tipo carácter se utiliza para representar un carácter dentro del rango \u0000 a \uFFFF (números desde 0 hasta 65535) en Unicode.En realidad un dato de tipo char contiene un número entero dentro del rango anterior que representa un carácter.En Java se utiliza el código Unicode para la representación de caracteres. Este código actualmente representa los caracteres de la mayoría de idiomas escritos en todo el mundo.Los 127 primeros caracteres de Unicode corresponden al código ASCII.

El Código ASCII (American Standard Code for Information Interchange o Código Estándar Americano para el Intercambio de Información) asigna valores numéricos a las letras, números, signos de puntuación y algunos otros caracteres especiales.

ASCII incluye 256 códigos divididos en dos conjuntos, estándar y extendido, de 128 cada uno. El conjuntoASCII básico, o estándar, utiliza 7 bits para cada código, lo que da como resultado 128 códigos de caracteres desde 0 hasta 127.

El conjunto ASCII extendido utiliza 8 bits para cada código, dando como resultado 128 códigos adicionales, numerados desde el 128 hasta el 255.

En el conjunto de caracteres ASCII básico, los primeros 32 valores están asignados a los códigos de control de comunicaciones y de impresora (caracteres no imprimibles) empleados para controlar la forma en que la información es transferida desde una computadora a otra o desde una computadora a una impresora. En este grupo están los códigos correspondientes a la barra espaciadora (SP por space), la tecla ENTER de retorno de carro a un nuevo renglón (CR por carry return), etc. También existen caracteres de control usados en teleprocesamiento, como ser ACK (Acknowledge - aviso de mensaje recibido), BEL (bell - aviso por señal sonora), ETX (end of text – fin de texto), STX (start of text – comienzo de texto), etc.Los 96 códigos restantes del código básico corresponden a los caracteres imprimibles y se asignan a los signos de puntuación corrientes, a los dígitos del 0 al 9 y a las letras mayúsculas y minúsculas del alfabeto latino.

Los códigos correspondientes al ASCII extendido, del 128 al 255, se asignan a aquellos caracteres que no pertenecen al alfabeto anglosajón, por ejemplo, las vocales con tilde, la ñ, y en general todos los caracteres especiales que utilizan los distintos lenguajes.

Page 3: Tipos de Datos en Java

Debido a lo limitado de su tamaño, el código ASCII no es suficiente para representar caracteres de alfabetos como el Japonés, Chino o árabe. La solución a este problema ha sido crear un código más grande con el que poder representar cualquier carácter de cualquier idioma: el código Unicode.

El código UNICODE proporciona una única representación numérica para cada símbolo, independientemente del ordenador, el programa o el lenguaje de programación que se use.La codificación Unicode se ha transformado en un estándar adoptado por las principales empresas dehardware y software. Java utiliza la codificación Unicode.La descripción completa del estándar y las tablas de caracteres están disponibles en la página web oficial de Unicode http://www.unicode.org/. La referencia completa se publica, además, en forma de libro impreso cada vez que se libera una nueva versión principal. La versión digital de este libro está disponible de forma gratuita.Ejemplo de declaración de variables de tipo carácter:

char car;char letra1 = 'z';char letra = '\u0061'; //código unicode del carácter ‘a’DATOS DE TIPO LÓGICOSe representan con el tipo boolean.Los datos de este tipo sólo pueden contener dos valores: true (verdadero) ó false (falso).Ejemplo de declaración de variables lógicas:

boolean primero;boolean par = false;Los tipos de datos lógicos son también conocidos como booleanos en honor del matemático inglés George Bool, que desarrolló la teoría conocida como álgebra de bool que fue la base para la representación de los circuitos lógicos.

Tipos de datos simples

Es uno de los conceptos fundamentales de cualquier lenguaje de programación. Estos definen los métodos de almacenamiento disponibles para representar información, junto con la manera en que dicha información ha de ser interpretada.

Para crear una variable (de un tipo simple) en memoria debe declararse indicando su tipo de variable y su identificador que la identificará de forma única. La sintaxis de declaración de variables es la siguiente:

TipoSimple Identificador1, Identificador2;

Esta sentencia indica al compilador que reserve memoria para dos variables del tipo simple TipoSimple con nombres Identificador1 e Identificador2.

Page 4: Tipos de Datos en Java

Los tipos de datos en Java pueden dividirse en dos categorías: simples y compuestos. Los simples son tipos nucleares que no se derivan de otros tipos, como los enteros, de coma flotante, booleanos y de carácter. Los tipos compuestos se basan en los tipos simples, e incluyen las cadenas, las matrices y tanto las clases como las interfaces, en general.

Cada tipo de datos simple soporta un conjunto de literales que le pueden ser asignados, para darles valor. En este apartado se explican los tipos de datos simples (o primitivos) que presenta Java, así como los literales que soporta (sintaxis de los valores que se les puede asignar).

a.) Tipos de datos enteros

Se usan para representar números enteros con signo. Hay cuatro tipos: byte, short, int y long.

Tipo Tamaño

byte 1Byte (8 bits)

short 2 Bytes (16 bits)

int 4 Bytes (32 bits)

long 8 Bytes (64 bits)

Tipos de datos primitivos

El lenguaje de programación es un lenguaje fuertemente tipado, esto significa que todas las variables deben ser declaradas antes de ser utilizadas. Esto implica establecer el tipo y el nombre de la variable, como ya hemos visto:

int gear = 1;

Al hacer esto le indicamos al programa que existe una variable llamada «gear», que almacena datos numéricos y que tiene un valor inicial de «1». El tipo de dato de una variable determina los valores que puede contener además de las operaciones que se puede realizar sobre ella. El lenguaje de programación Java incluye siete otros tipos de datos primitivos además de int. Un tipo primitivo está predefinido por el lenguaje y se nombra con una palabra clave reservada. Los valores primitivos no comparten estado con otros valores primitivos. Los ocho tipos de datos primitivos incluidos en el lenguaje de programación Java son:

Page 5: Tipos de Datos en Java

Valores predeterminados

No siempre es necesario asignar un valor cuando se declara un campo. El compilador fija un valor predeterminado razonable para los campos que se declaran pero no son inicializados. En general, este valor será cero o null, dependiendo del tipo de dato. Sin embargo, fiarse de estos valores predeterminados se considera una mala costumbre en la programación.

La siguiente tabla resume los valores predeterminados para los tipos de dato que hemos mencionado anteriormente.

Tipo de dato Valor predeterminado (para campos)

byte 0

short 0

int 0

long 0L

float 0.0f

double 0.0d

char '\u0000'

String (o cualquier objeto) null

boolean false

Las variables locales son ligeramente distintas, el compilador nunca asigna un valor predeterminado a una variable local sin asignar. Si no puede inicializar su variable local donde se declara, asegúrese de asignarle un valor antes de intentar usarla. Acceder a una variable local sin inicializar resutlará en un error a la hora de compilar.

Clases EnvolventesJava es un lenguaje de programación orientado a objetos. Un programa Java debe contener objetos y las operaciones entre ellos. La única excepción a esto en un programa Java son los tipos de datos primitivos (int, double, char, etc.)

Los tipos de datos primitivos no son objetos pero en ocasiones es necesario tratarlos como tales. Por ejemplo, hay determinadas clases que manipulan objetos (ArrayList, HashMap, …). Para poder utilizar tipos primitivos con estas clases Java

Page 6: Tipos de Datos en Java

provee las llamadas clases envolventes también llamadas clases contenedoras o wrappers.

Cada tipo primitivo tiene su correspondiente clase envolvente:

Tipo primitivo Clase Envolvente

byte Byte

short Short

int Integer

long Long

float Float

double Double

char Character

boolean Boolean

Estas clases proporcionan métodos que permiten manipular el tipo de dato primitivo como si fuese un objeto.

Las conversiones entre los tipos primitivos y sus clases envolventes son automáticas. No es necesario hacer un casting. Para realizarlas se utiliza el Boxing/Unboxing.

Boxing: Convertir un tipo primitivo en su clase Wrapper.

Unboxing: Convertir un objeto de una clase  Wrapper en su tipo primitivo.

Ejemplo de Boxing:

double x = 29.95;

Double y;

y = x; // boxing

Ejemplo de Unboxing:

double x;

Double y = 29.95;

x = y; // unboxing

  

Page 7: Tipos de Datos en Java

Clase IntegerEn la siguiente tabla aparecen algunos métodos de la clase Integer. El resto de clases envolventes correspondientes a tipos primitivos numéricos tienen métodos similares.

Integer(int valor)

Integer(String valor)

Constructor a partir de un int

Integer n = new Integer(20);

Constructor a partir de un String

String s = "123456";

Integer a = new Integer(s);

int intValue()

float floatValue()

double doubleValue()

Devuelve el valor equivalente

Integer n = new Integer(30);

int x = n.intValue();

double y = n.doubleValue();

int parseInt(String s) Método estático que devuelve un int a partir de un String.

String s = "123456";

int z = Integer.parseInt(s);

String toBinaryString(int i)String toOctalString(int i)String toHexString(int i)

Métodos estáticos que devuelven un String con la representación binaria, octal o hexadecimal del número.

int numero = 12;

String binario = Integer.toBinaryString(numero);

Integer valueOf(String s) Método Estático. Devuelve un Integer a partir de un String.

Integer m = Integer.valueOf("123");

Page 8: Tipos de Datos en Java

API de la clase Integer: http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html

Clase Character

Provee una serie de métodos para manipular los datos de tipo char. En la siguiente tabla aparecen algunos de estos métodos. 

Character(char c) Constructor a partir de un char

char car = 'x';

Character a = new Character(car);

char charValue() Devuelve el char equivalente

Character n = new Character('q');

char c = n.charValue();

boolean isLowerCase(char ch)boolean isUpperCase(char ch)

boolean isDigit(char ch)

boolean isLetter(char ch)

Comprueba si es un carácter en minúsculas.

Comprueba si es un carácter en mayúsculas.

Comprueba si es un dígito (carácter del 0 al 9).

Comprueba si es una letra.

Todos son estáticos.

if(Character.isUpperCase(c)){

  .....

}

char toLowerCase(char ch)char toUpperCase(char ch)

Devuelve el char en mayúsculas.

Devuelve el char en minúsculas.

Métodos estáticos.

Page 9: Tipos de Datos en Java

char car = 'u';

System.out.println(Character.toUpperCase(car));

Character valueOf(char c) Método Estático. Devuelve un Character a partir de un char.

Character m = Character.valueOf('a');

API de la clase Character: http://docs.oracle.com/javase/7/docs/api/java/lang/Character.html

Ejemplo de uso de la clase Character: programa que lee un texto por teclado y muestra cuántos dígitos y letras contiene.

import java.util.Scanner;public class JavaApplication325 {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        String texto;        int cuentaCifras = 0, cuentaLetras = 0;        System.out.println("Introduce texto ");        texto = sc.nextLine();        for (int i = 0; i < texto.length(); i++) {            if (Character.isDigit(texto.charAt(i))) {                cuentaCifras++;            } else if (Character.isLetter(texto.charAt(i))) {                cuentaLetras++;            }        }        System.out.println("El texto contiene " + cuentaCifras + " dígitos");        System.out.println("El texto contiene " + cuentaLetras + " letras");    }} 

Ejemplos

String: tipo de datos cadena de caracteresString <nombre_variable> [= "<cadena de caracteres>"];

Page 10: Tipos de Datos en Java

String s1 = "hola";String s2 = "adios";

String s3 = s1 + " y " + s2 + " : " + 2004;

Existe una clase equivalente para cada tipo de dato simpleTipo Simple Clase Equivalentebyte, short, int, long Number, Byte, Short, Integer, Longfloat, double Number, Float, Doubleboolean Booleanchar Charactero Estas clases poseen constantes y métodos que pueden ser útiles• Ejemplos:int i = 4; // "i" es una variable entera (tipo simple)// "j" es un objeto de la clase Integer (envolvente)

Integer j = new Integer(5);

UNIVERSIDAD DE GUAYAQUIL

Page 11: Tipos de Datos en Java

INTEGRANTES:

MONTOYA OLIVO BORISBERECHEZ SAMANIEGO JHONCHANCAY NARANJO CHRISTIANBENETT RUTHPEÑAFIEL JORGE

CURSO: 3ER NIVEL

GRUPO: 3

MATERIA:

PROGRAMACION ORIENTADA A OBJETOS