Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ingeniería de sistemas
CAPACIDAD y CLASIFICACION
A todo dato (constante, variable o expresión) le corresponde un tipo específico en Java. Como se
ha indicado anteriormente un tipo de dato determina los valores que pueden asignarse a un dato, el
formato de representación correspondiente y las operaciones que pueden realizarse con dicho
dato.
En Java casi todo es un objeto. Existen algunas excepciones como, por ejemplo, los tipos
primitivos, tales como int, char, etc., que no se consideran objetos y se tratan de forma
especial. Java tiene un conjunto de tipos primitivos para representar datos enteros (cuatro tipos
diferentes), para datos numéricos reales en coma flotante (dos tipos diferentes), para caracteres y
para datos lógicos o booleanos. Cada uno de ellos tiene idéntico tamaño y comportamiento en
todas las versiones de Java y para cualquier tipo de ordenador. Esto implica que no hay directivas
de compilación condicionales y asegura la portabilidad de los programas a diferencia de lo que
ocurre, por ejemplo, con el lenguaje de programación C.
Por otro lado, a partir de estos tipos primitivos de dato pueden construirse otros tipos de datos
compuestos, arrays, clases e interfaces. En la siguiente tabla se muestran los tipos de dato primitivos de Java
con el intervalo de representación de valores que puede tomar y el tamaño en memoria correspondiente.
Tipos de Datos en Java
1. Variable: Es un espacio de memoria reservado para almacenar un valor, dicho valor va cambiando durante el
flujo de un programa.
2. Constante: Es similar a una variable, sin embargo la constante no asignará un valor al inicio de un programa y
este no cambiará durante el flujo de un programa.
Nota: El espacio de memoria reservado dependerá del tipo de variable, estos tipos y su peso (espacio que
ocupan) depende del lenguaje en el que se declaren.
Datos Primitivos.
Son aquellos tipos de datos que pueden utilizarse directamente en un programa sin necesidad de utilizar POO.
pueden ser divididos en dos grupos:
1. Boléanos.
2. Numéricos.
Datos No Primitivos (Objetos).
Incluyen todos los tipos de datos que pueden ser instanciados a partir de las clases.
Los objetos, a diferencia de los tipos primitivos, representan un conjunto de datos como una única unidad
que además posee estados y comportamientos.
Ejemplos:
int contador = 1;
short:
Tiene una capacidad de 16 bits y permite almacenar un valor entero entre -32768 y +32767 (al igual que el
entero en C).
Ejemplo:
short a = 0, b=0;
Datos numéricos primitivos.
int:
El tipo de dato entero tiene una capacidad de 32 bits y permite almacenar un valor entero entre -2147483648
y +2147483647.
Ejemplo: int a = 0;
int b= 0;
long:
Tiene una capacidad de 64 bits y permite almacenar un valor entero entre -9.223.372.036.854.775.808 y
+9.223.372.036.854.775.809.
Ejemplo: long a = 100;
Datos numéricos primitivos.
float:
Tiene una capacidad de 32 bits y permite almacenar un valor real en coma flotante (decimales) entre -3,4*10 -
38
hasta 3,4*1038 . Los valores expresados en float deben ir acompañados de una letra f minúscula al final.
String:
Es en realidad una clase, que almacena como atributo un arreglo de caracteres. No es un tipo de dato
primitivo, su uso es muy habitual en los programas y adicionalmente se puede utilizar de la misma forma en
la que se declaran los tipos primitivos.
Ejemplo:
String palabra1 = “iceberg”;
Representación de sentencias de instrucciones.
• Operación de entrada.
• Operación de salida.
• Operación de asignación.
• Operadores aritméticos: son
aquellos que permiten
realizar operaciones
matemáticas y son:
Conversión entre tipos.
En Java existen dos tipos de conversiones, la implícita y explicita.
La implícita es aquella que no necesita de alguna intervención por parte del programador para que se lleve a
cabo, siendo Java el encargado de realizarla.
El ejemplo más común es la operación aritmética de dos tipos de datos distintos, ¿en una variable de qué tipo
debo almacenar el resultado entre la suma entre un float y un double?
Conversión entre tipos.
Java siempre dará como resultado el tipo más grande, con ello se asegura de que no exista perdida de
precisión en el resultado.
La conversión implícita es aplicada en la dirección de izquierda a derecha entre los datos presentados en el
siguiente diagrama, lo que significa que un byte, puede almacenarse en una variable de tipo short o char o
cualquiera de las 3 puede almacenarse en un int.
Conversión entre tipos.
La conversión explícita o también conocida como cast consiste en forzar la conversión entre un tipo de dato
a cualquier otro (excepto desde booleanos a enteros o reales), la sintaxis para realizar una conversión
explicita es la siguiente:
define las fronteras dentro de las cuales las variables pueden ser utilizadas.
objetos el ámbito de una variable dentro de una clase es algo más complejo.
Las variables siempre deben ir dentro de una estructura que los contenga, para cada
La clase Persona posee además un comportamiento llamado correr y descansar, los cuales también tienen
limitado su bloque. Podemos decir entonces que la clase Persona contiene dentro un comportamiento llamado
correr y descansar.
Ejemplo:
En el siguiente ejemplo la variable cansancio es ahora una variable declarada dentro del comportamiento
correr, esto se denomina variable local del método.
Para este caso la visibilidad de dicha variable son los límites donde fue declarada, vale decir el inicio y
bloque de correr, el siguiente ejemplo causa un error debido a que descansar no tiene una visibilidad sobre
la variable cansancio.
Vida y ámbito de una variable
Las variables de instancia son capaces de mantener el valor durante toda la vida de un objeto, sin embargo las
declaradas dentro de un comportamiento son creadas, utilizadas y eliminadas al finalizar la ejecución del
comportamiento que la contiene.
También es posible crear límites dentro de los comportamientos correr, si bien la técnica que se presenta en el
siguiente no es muy común, es reconocida por el lenguaje Java.
public class Persona{
public void correr(){
{
int a;
}
int a;
Vida y ámbito de una variable
En el segmento de código anterior se muestran dos casos a considerar. En el interior del método correr existe una
delimitación dentro que contiene la declaración de una variable entera cuyo identificador es “a”, sin embargo al
terminar el límite donde fue declarada la variable ha vuelto a ser declarada, a primera vista da la idea de que correr
tiene dos variables llamadas “a”, pero sabemos que eso es imposible. Recordemos que el identificador de una
variable debe ser único en un mismo ámbito, lo que en realidad sucede es que la variable que se declara primero
tiene una vida útil desde que se declara hasta el cierre de bloque en el que fue declarada, por ende al ser declarada
la segunda variable llamada “a”, la primera ya ha sido eliminada.
En descansar en cambio, se produce un error debido a que se declara primero una variable entera dentro de
los límites del comportamiento descansar, lo que provoca que también esté disponible para el ámbito que
existe en el interior del método, por lo tanto, en el ámbito interior, no es posible declarar la variable entera
con el identificador “a”, debido a que ya existe en él.
Los operadores aritméticos son aquellos que permiten realizar operaciones matemáticas y son:
Operadores Aritméticos.
El siguiente ejemplo muestra una operatoria
aritmética que incluye una conversión explicita
cuyo resultado es 4:
||
OR u O: es un operador binario, afecta a dos operadores. La expresión que forma es verdadera cuando al
menos uno de sus operandos es verdadero. Es un operador de disyunción (suma lógica). Ejemplo:
estudiamos o vamos al estadio
&&
AND o Y. También es un operador binario. La expresión formada es cierta cuando ambos operadores son
ciertos al mismo tiempo. Es el operador lógico de conjunción (producto lógico) Ejemplo: si es verano y hace
calor vamos a la playa.
!
NOT o NO. Es un operador unario, afecta a un solo operando. Cambia el estado lógico de la expresión
(negación); si es verdadera la transforma en falsa y al revés. Ejemplo: no es verano.
El orden de prioridad de estos operadores es: !, && y ||.
Ingeniería de
sistemas