Tipos de Datos en Java
-
Upload
christian-alex-chancay -
Category
Documents
-
view
52 -
download
0
Transcript of 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;
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.
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.
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:
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
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
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");
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.
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>"];
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
INTEGRANTES:
MONTOYA OLIVO BORISBERECHEZ SAMANIEGO JHONCHANCAY NARANJO CHRISTIANBENETT RUTHPEÑAFIEL JORGE
CURSO: 3ER NIVEL
GRUPO: 3
MATERIA:
PROGRAMACION ORIENTADA A OBJETOS