Bienvenido al Blog, en esta oportunidad desarrollaremos un tema de introducción al desarrollo de programación orientado a objetos, para entender sobre cómo desarrollar un sistema con el lenguaje java veremos acerca de declaración, inicialización y uso de variables en Java.
- El contenido de este blog tiene como fuente el curso Fundamentos de programación de Oracle.
- Con algunos agregados del autor "EL INFORMATICO IBERO"
Ø
Las variables se utilizan para almacenar y
recuperar datos utilizados por los programas.
Ø
Las variables de atributo (variables declaradas
fuera de un método y sin la palabra clave static) también se denominan variables
miembro o variables de instancia (por ejemplo, price, shirtID y colorCode
en la clase Shirt).
Ø
Cuando se instancia un objeto a partir de una
clase, estas variables contienen datos específicos de la instancia.
Ø
Cuando se instancia un objeto de una clase,
estas variables se denominan variables
de instancia porque pueden contener datos específicos de una determinada
instancia de la clase.
Ø
Por ejemplo, una instancia de la clase Shirt
puede tener el valor 7 asignado a la variable de atributo quantityInStock,
mientras que otra instancia de la clase Shirt puede tener el valor 100 asignado
a la variable de atributo quantityInStock.
Ø
También es posible definir variables dentro
de los métodos. Estas variables se denominan locales porque
sólo están disponibles en el interior del método en el que se han declarado.
Ø
No se han declarado variables locales en la
clase Shirt. No obstante, si se utilizasen variables locales, se declararían en
el método displayInformation.
El lenguaje
Java hace amplio uso de las variables para tareas tales como:
- Almacenar datos de atributo exclusivos de una
instancia de objeto (como hemos visto en el caso de las variables price e
ID).
- Asignar el valor de una variable a otra.
- Representar valores dentro de una expresión matemática.
- Imprimir los valores en la pantalla. Por ejemplo,
la clase Shirt utiliza las variables price e ID para mostrar en la
pantalla el precio y el ID de la camisa:
ü
System.out.println("Precio de la camisa:
" + price);
ü
System.out.println(“ID de camisa: " +
shirtID);
- Almacenar referencias a otros objetos.
- Declaración e Inicialización de variables
La declaración
e inicialización de variables de atributo se ajusta a las mismas reglas
generales. La declaración e inicialización de estas variables sigue esta
sintaxis:
Las variables locales pueden declararse e inicializarse por separado (en líneas de código distintas) o en una misma línea de código. La sintaxis para declarar una variable en el interior de un método es:
La sintaxis para inicializar una variable en el interior de un método es:
Identificación de la sintaxis y el
uso de las variables
Ø
Declaración e Inicialización de variables
La sintaxis para declarar e inicializar una variable en el interior de un método es:
- [modificadores] representa diferentes palabras clave de Java, como public y private, que determinan el modo en que otro código accede a una variable de atributo. Los modificadores son opcionales (como indican los corchetes). Por ahora, todas las variables que cree deberían tener el modificador public (público).
- tipo
representa la clase de información o datos que contiene la variable.
Algunas variables contienen caracteres, otras contienen números y algunas
son booleanas (boolean), con lo que sólo pueden admitir uno de dos valores
posibles. Es preciso asignar un tipo a cada variable para indicar la
clase de información que pueden almacenar.
o identificador
es el nombre asignado a la variable que contiene ese tipo.
o valor
es el valor que se quiere asignar a la variable. Es un elemento opcional porque
no es necesario asignar ningún valor a una variable en el momento de
declararla.
o A continuación figuran las declaraciones de las variables de atributo en la clase Shirt:
Descripción de los Tipos de Datos Primitivos
Ø Muchos
valores de los programas Java se almacenan como tipos de datos primitivos.
Ø Éstos
son los ocho tipos de datos primitivos incorporados al lenguaje de
programación Java:
o Tipos
enteros: byte, short, int y long
o Tipos
en coma flotante: float y double
o Tipo
textual: char
o Tipo
lógico: boolean
Ø Tipos
primitivos enteros
o Hay
cuatro tipos primitivos enteros en el lenguaje Java y se identifican
mediante las palabras clave byte, short, int y long. Las variables de este tipo
almacenan números que no tienen separador decimal.
o Por
ejemplo, si necesita guardar edades de personas, una variable de tipo byte
sería apropiada porque este tipo acepta valores dentro del rango adecuado.
o En la tabla siguiente figuran todos los tipos enteros, sus tamaños y el rango de valores que pueden admitir.
o Cuando
especifique un valor literal para un tipo long, escriba una L en mayúscula a
la derecha del valor para indicar explícitamente que se trata de un tipo
long. El compilador considera los enteros como valores de tipo int, a
menos que se especifique una L para indicar que se trata de un tipo long.
o La clase Shirt contiene dos atributos de tipo int para almacenar los valores del ID de camisa y la cantidad disponible en el almacén, y se utilizan valores literales para proporcionar un valor inicial de cero (0) a cada atributo.
o La
única razón para utilizar tipos byte y short en los programas es ahorrar
memoria. Dado que la mayoría de los equipos de sobremesa modernos contienen
gran cantidad de memoria, hay muchos programadores de aplicaciones de
escritorio que no utilizan ni tipos byte ni short. En los ejemplos de este
curso se utilizan fundamentalmente tipos int y long.
Ø Tipos
primitivos en coma flotante
o Hay
dos tipos para expresar números en coma flotante, float y double. Estos
tipos se utilizan para almacenar números que contienen valores a la derecha del
separador decimal (en este caso, el punto), como 12.24 o 3.14159.
o La tabla siguiente contiene información sobre los dos tipos en coma flotante.
- Cuando
especifique un valor literal para un tipo float, agregue una F mayúscula
(float) a la derecha del número para indicar que se trata de un tipo
float y no double. Los valores literales de los tipos en coma flotante se
consideran automáticamente de tipo double, a menos que se especifique
lo contrario mediante el uso de la F para indicar el tipo float.
- La clase Shirt incluye el uso de un valor literal de tipo double para representar el valor predeterminado de precio (price):
- Utilice
el tipo double cuando necesite un rango de valores mayor o un grado de
precisión más elevado.
Descripción de los Tipos de Datos Primitivos
Ø Tipo
primitivo Textual
o Otro
tipo de datos que se utiliza para almacenar y manipular la información es el
que se expresa a través de un solo carácter. El tipo primitivo utilizado
para almacenar caracteres aislados como, por ejemplo, ‘a’, se llama char y
tiene un tamaño de 16 bits.
o La clase Shirt incluye el uso de un valor literal de tipo textual para representar el valor predeterminado del color (colorCode):
- Cuando
se asigna un valor literal a una variable char, por ejemplo una t, es
preciso escribir el carácter entre apóstrofes: ’t’. Esto permite al
compilador reconocer esa t como un valor literal y no como una variable t
que representa otro valor.
o
El tipo char no almacena el carácter escrito
como tal, por ejemplo la t antes mencionada. La representación almacenada en
char se transforma en una serie de bits que corresponden a un carácter. Las
correspondencias entre cada carácter y el número que representa están
establecidas en el juego de caracteres que utilice el lenguaje de
programación.
o
Muchos lenguajes informáticos utilizan el código
ASCII (American Standard Code for Information Interchange), un juego de
caracteres de 8 bits que contiene un elemento por cada signo de puntuación,
número, letra del alfabeto o carácter utilizados en inglés.
o
El lenguaje Java utiliza un juego de
caracteres de 16 bits llamado Unicode que es capaz de almacenar todos los
caracteres que sea necesario reproducir en la gran mayoría de los idiomas
utilizados en el mundo moderno. Por tanto, puede escribir sus programas de
forma que funcionen y presenten sus datos correctamente en el idioma de la
mayoría de los países.
o
Unicode contiene un subconjunto del juego
ASCII (los primeros 128 caracteres).
Ø
Tipo primitivo Lógico
o
Los programas informáticos a menudo deben tomar
decisiones. El resultado de una decisión, por ejemplo, la evaluación de una
sentencia de un programa como verdadera o falsa, puede guardarse en variables
boolean (booleanas). Las variables de tipo boolean sólo pueden almacenar:
ü
Los literales true o false del lenguaje Java.
ü
El resultado de una expresión que sólo se evalúa
como true o false. Por ejemplo, si la variable respuesta es igual
a 42, la expresión “if respuesta < 42” dará como resultado el valor false.
Ø
Elección del tipo de dato
o
Una práctica habitual entre los programadores
con experiencia es usar los tipos int, long o double para variables
numéricas a menos que, por la clase de negocio, exista una razón para ahorrar
memoria (por ejemplo, al programar para dispositivos de consumo tales como los
teléfonos celulares) o para garantizar tiempos rápidos de ejecución.
Declaración de variables y
asignación de sus valores
Ø
Las variables deben declararse antes de
utilizarlas. En las secciones siguientes se explica cómo declarar las
variables y asignarles valor.
Ø
Asignación de nombre a las variables
o
Al igual que ocurre con las clases o los
métodos, es preciso asignar a cada variable de un programa un nombre o
identificador.
o
Recuerde que el propósito de las variables es
actuar como mecanismo para guardar y recuperar valores. Por tanto, es
conveniente que sus identificadores sean sencillos pero descriptivos. Por ejemplo, si almacena el valor de un ID de
artículo, puede asignar a la variable el nombre miID, idArticulo,
numeroArticulo, o alguna otra designación que deje claro el uso de la variable
tanto para usted como para otras personas que lean el programa.
Ø
Reglas y directrices de asignación de nombre a
los identificadores de las variables
Utilice las reglas siguientes
como ayuda a la hora de asignar identificadores a las variables:
- Los
identificadores de las variables deben empezar por una letra en
mayúscula o minúscula, un signo de subrayado (_) o un signo de dólar ($).
Después del primer carácter, puede usar dígitos.
- Los
identificadores de las variables no pueden contener signos de
puntuación, espacios ni guiones.
- Las
palabras clave de Java, que aparecen en la tabla siguiente, no pueden
utilizarse como identificadores.
Debería utilizar las directrices siguientes como
referencia a la hora de asignar identificadores a las variables:
- Empiece
cada variable con una letra en minúscula y el resto de las palabras con
la inicial en mayúscula, como, por ejemplo, miVariable.
- Elija
nombres nemotécnicos que indiquen a cualquier posible lector el propósito
de la variable.
El lenguaje Java considera que dos caracteres del código son
distintos si uno se escribe en mayúscula y el otro en minúscula. Por
ejemplo, una variable llamada pedido será distinta de otra llamada Pedido.
Ø Asignación
de valores a las variables
o A
una variable se le puede asignar su valor en el momento de declararla o más
adelante.
o Para asignarle el valor durante su declaración, agréguele el signo igual (=) después de declararla y escriba el valor que le quiera asignar. Por ejemplo, a la variable del atributo price en la clase Shirt podría asignarle el valor 12.99 como precio de un determinado objeto Shirt.
o Un ejemplo de declaración y asignación de valores de variables boolean podría ser:
o El
operador = asigna el valor del término derecho de la igualdad al elemento del
término izquierdo. El signo = debería leerse como “está asignado a”.
Por ejemplo, el ejemplo anterior podría entenderse como: el valor “12.99 está
asignado a price”. Los operadores, como el de asignación (=), se explican
más adelante en el curso.
o Las
variables de atributo se inicializan automáticamente: los tipos enteros
se definen como 0, los tipos en coma flotante se definen como 0.0, el tipo char
recibe el valor de \u0000 y el tipo boolean se establece como false. No obstante,
las variables de atributos deberían inicializarse de forma explícita para que
otras personas puedan leer el código.
o Las
variables locales (las que se declaran dentro de un método) deben
inicializarse explícitamente antes de su uso.
Ø Declaración
e inicialización de varias variables en una línea de Código
o Es posible declarar una o más variables en la misma línea de código, pero sólo si son del mismo tipo. Las sintaxis para declarar varias variables en una misma línea de código son:
- Por
lo tanto, si hubiese un precio de venta al público y otro de venta al por
mayor en la clase Shirt, se declararían de la forma siguiente:
Ø Otras
formas de declarar variables y asignarles valor
Los valores de las variables se
pueden asignar de diversas formas:
oAsignándoles directamente valores literales (como se ha explicado a lo largo del módulo):
oAsignando el valor de una variable a otra:
oSi el contenido de ID cambia más adelante, el
contenido de saleID no cambia automáticamente. Aunque los dos
enteros tienen el mismo valor en ese momento, pueden cambiarse de forma
independiente en otra parte posterior del programa.
Ø Otras
formas de declarar variables y asignarles valor
oAsignando el resultado de una expresión a
las variables de tipo entero, en coma flotante o booleanas.
En las líneas de código siguientes, el resultado de todos los términos situados a la derecha del operador = se asignan a la variable situada a la izquierda del operador.
oAsignando a una variable el valor de
retorno de una llamada a un método. Esta forma de asignación se trata más
adelante en el curso.
Ø Constantes
oEn este módulo hemos hablado de variables
cuyos valores puede cambiar el programador. En esta sección, aprenderá a usar
constantes para representar valores que no pueden cambiar.
oImagine que está escribiendo parte del programa del catálogo de prendas de la empresa y necesita hacer referencia a la tasa del impuesto sobre la venta. Podría crear la siguiente variable en su clase:
oPotencialmente, este valor podría cambiar
dentro del programa, aunque el impuesto debería definirse una vez y
permanecer constante a lo largo de la aplicación. Por tanto, es preferible
almacenar el valor en un lugar donde no pueda cambiar.
oUtilice la palabra clave final para
convertir el valor en una constante, es decir, decirle al compilador que no
quiere que el valor de la variable cambie una vez que haya sido inicializada.
oAsimismo, por convención, denomine los identificadores de las constantes con palabras en mayúsculas separadas por signos de subrayado. De esta forma, es más fácil saber que se trata de una constante.
oCualquier otra persona que necesite acceder al
impuesto sobre la venta utilizará la constante SALES_TAX y no necesitará
conocer la tasa del impuesto ni preocuparse ante la posibilidad de cambiarlo
por error.
oSi alguien intenta cambiar el valor de una
constante una vez que se le ha asignado un valor, el compilador presentará un
error. Si se modifica el código a fin de proporcionar otro valor para la
constante, será preciso recompilar el programa.
oEn caso de que se incrementase el impuesto
sobre la venta, debería cambiar la constante en la ubicación del programa donde
se haya definido. Todos los usos de la constante adoptarían el cambio
automáticamente.
oLas constantes también resultan prácticas para
valores que son extremadamente largos, como es el caso de la pi (3.14159...).
oDirectrices de asignación de nombres a las
constantes
Ø
El nombre que se asigne a las constantes debería
ser fácil de identificar. En general, deberían escribirse enteramente en
mayúsculas y separar las distintas palabras mediante un signo de subrayado (_).
Ø Almacenamiento
de tipos primitivos y constantes en la memoria
oCuando se utiliza un valor literal o se crea
una constante o una variable y se le asigna un valor, éste se almacena en la
memoria del equipo.
oEn la figura siguiente puede observarse cómo, al almacenarse, las variables locales se separan (en la pila) de las variables de atributo situadas en el espacio de memoria dinámica (heap).
Ø Almacenamiento
de tipos primitivos y constantes en la memoria
oLos objetos, sus variables de atributo y
sus métodos normalmente se almacenan en el espacio de memoria dinámica. A
este espacio se le asignan de forma dinámica fragmentos de memoria que
contienen la información utilizada para contener los objetos (incluidas sus
variables de atributo y métodos) mientras el programa los necesita.
oOtras variables suelen almacenarse en la
pila de memoria. Esta memoria guarda elementos que sólo se utilizan durante
un breve periodo de tiempo (más breve que la vida de un objeto), como es el
caso de las variables declaradas en el interior de un método.
Uso de operadores aritméticos para
modificar valores
Ø Los
programas realizan gran cantidad de cálculos matemáticos, desde los más simples
hasta algunos muy complejos. Los operadores aritméticos permiten especificar la
forma en que deben evaluarse o combinarse los valores numéricos contenidos en
las variables.
Ø Operadores
matemáticos estándar
oEn la tabla siguiente se muestran los
operadores matemáticos estándar (a menudo denominados operadores binarios)
utilizados en el lenguaje Java.
Uso de operadores aritméticos para modificar valores
Operadores de incremento y decremento (++ y --)
oUn requisito común en los programas es sumar o restar 1 al valor de una variable. Esto se hace utilizando el operador + de la manera siguiente:
oNo obstante, aumentar o reducir un valor en
incrementos o decrementos de 1 es una operación tan común que existen
operadores unarios para realizarla: los operadores de incremento (++) y
decremento (--). Estos operadores pueden aplicarse antes (preincremento y
predecremento) o después (posincremento y posdecremento) de la variable.
Uso de operadores aritméticos para
modificar valores
Operadores de incremento y decremento (++ y --)
oLa línea de código anterior, en la que la edad iba aumentando en incrementos de uno también puede escribirse de la forma siguiente:
oUtilice estos operadores con precaución en
las expresiones. Si se utilizan como prefijo, la operación (incremento o
decremento) se aplica antes de cualquier cálculo o asignación posterior. En
su forma de sufijo, la operación se aplica después de los sucesivos cálculos
u operaciones, de forma que en los cálculos o asignaciones posteriores se
utiliza el valor original, no el valor actualizado. En la tabla siguiente
se muestra el uso de los operadores de incremento y decremento.
Uso de operadores aritméticos para
modificar valores
Ø Operadores de incremento y decremento (++ y --)
Uso de operadores aritméticos para
modificar valores
Ø Operadores
de incremento y decremento (++ y --)
oEn el ejemplo siguiente se muestra un uso básico de los operadores de incremento y decremento:
oEl resultado de este fragmento de código sería:
Uso de operadores aritméticos para
modificar valores
Ø Orden
de precedencia de los operadores
oEn una sentencia matemática compleja que
contenga varios operadores en la misma línea, ¿cómo determina el procesador qué
operador debe utilizar primero?:
oReglas de precedencia
ü
Para que las operaciones matemáticas mantengan
un comportamiento homogéneo, el lenguaje Java sigue las reglas matemáticas
habituales para la precedencia de los operadores. Éstos se procesan en el orden
siguiente:
v
Operadores incluidos entre paréntesis de
apertura y cierre.
v
Operadores de incremento y decremento.
v
Operadores de multiplicación y división evaluados
de izquierda a derecha.
v
Operadores de suma y resta evaluados de
izquierda a derecha.
ü Si en una sentencia aparecen sucesivamente varios operadores matemáticos estándar con el mismo orden precedencia, los operadores se evalúan de izquierda a derecha.
Ø Orden
de precedencia de los operadores
oEjemplo de la necesidad de utilizar reglas de
precedencia
ü En el ejemplo siguiente se demuestra la necesidad de utilizar un orden de precedencia de los operadores:
ü
En este ejemplo, no está clara la intención del
autor. El resultado puede evaluarse de las formas siguientes:
v Expresión resultante al evaluar estrictamente de izquierda a derecha: 34
v Auténtica expresión resultante, evaluada según las reglas de precedencia que se indican mediante los paréntesis: 9
Ø Orden
de precedencia de los operadores
oUso de los paréntesis
ü Las expresiones se evalúan automáticamente según las reglas de precedencia, no obstante debería utilizar paréntesis para dejar clara la estructura que pretende utilizar:
Uso de la promoción y conversión de tipos
Ø Asignar
una variable o una expresión a otra variable puede provocar discrepancias entre
los tipos de datos de los cálculos y el lugar de almacenamiento utilizado para
guardar el resultado.
Ø En
concreto, el compilador detectará que se va a perder precisión y no permitirá
la compilación del programa o bien el resultado será incorrecto.
Ø Para
resolver este problema, es necesario:
oPromover los tipos de las variables a un tipo
de tamaño superior, o
oRealizar la conversión a un tipo de tamaño
inferior.
Ø Por ejemplo, considere la siguiente asignación:
Ø Este
código debería funcionar porque un tipo byte, aunque es menor que un tipo int,
es lo suficientemente grande como para almacenar un valor de 100.
Ø Sin
embargo, el compilador no realizará la asignación y, en su lugar, generará
un error de “posible pérdida de precisión” porque un valor byte es menor en
tamaño que un valor int.
Ø Para
corregir este problema, puede convertir los tipos de datos de la derecha en
tipos más pequeños para que coincidan con los tipos de la izquierda, o bien
declarar la variable de la izquierda (num3) de forma que contenga un tipo de
datos más grande, por ejemplo int.
Ø El problema se corrige cambiando num3 por el tipo int:
Ø Promoción
oEn algunas circunstancias, el compilador
cambia el tipo de una variable por otro tipo que admita un valor de mayor
tamaño. Esta acción se conoce como promoción. El compilador realiza
automáticamente algunas promociones si, al hacerlo, no se pierden datos.
Esto ocurre en las siguientes situaciones:
ü
Si asigna un tipo más pequeño (a la derecha del
signo =) a un tipo más grande (a la izquierda del signo =).
ü
Si asigna un tipo entero a un tipo en coma
flotante (aunque podría perderse algo de precisión en los bits menos
significativos del valor cuando asigne un valor int o long a un tipo float, o
bien un valor long a un tipo double).
oEl ejemplo siguiente contiene un literal (un valor int) que se promoverá automáticamente a otro tipo (long) antes de asignar el valor (6) a la variable (big de tipo long). En los ejemplos siguientes se muestra qué tipos promoverá automáticamente el compilador y cuáles no.
oDado que el 6 es un tipo int, la promoción
funciona porque el valor int se convierte en un valor long.
oAntes de asignarse a una variable, el
resultado de una ecuación se coloca en una ubicación temporal o contenedor de
la memoria. El tamaño de esta ubicación siempre es igual que el tamaño del
tipo de datos más grande utilizado en la expresión o la sentencia. Por ejemplo,
si la ecuación multiplica dos tipos int, el tamaño del contenedor
tendrá el tamaño de un tipo int, o 32 bits.
oSi los dos valores multiplicados dan como
resultado un valor que supera las dimensiones de un tipo int (por ejemplo,
55555*66666=3,703,629,630, que es demasiado grande para caber en un tipo
entero), el valor int debe truncarse para que el resultado quepa en la
ubicación temporal asignada en la memoria. Este cálculo al final produce
una respuesta incorrecta porque la variable correspondiente recibe un valor
truncado (con independencia del tipo usado para la respuesta).
oPara resolver este problema, defina al
menos una de las variables de la ecuación con el tipo long a fin de garantizar
el mayor tamaño posible para el espacio asignado en la memoria temporal.
Ø Conversión
de tipos
oLa conversión de tipos reduce el rango de
un valor literalmente “cortándolo” para adaptarlo a un tipo de tamaño más
pequeño. Se produce, por ejemplo, cuando se convierte un valor long en un
valor int. Esto se hace para poder usar métodos que aceptan sólo ciertos tipos
como argumentos, y poder asignar así valores a una variable de un tipo de menor
tamaño, o para ahorrar memoria.
oColoque el tipo_destino (el tipo en el que se va a convertir el valor) entre paréntesis antes del elemento que vaya a convertir. La sintaxis para convertir el tipo de un valor es:
oDonde:
ü
El identificador es el nombre que se asigna a
la variable.
ü
valor es el valor que se quiere asignar al
identificador.
ü
(tipo_destino) es el tipo en el que se va a
convertir el valor. Recuerde que tipo_destino debe escribirse entre
paréntesis.
oPor ejemplo, considere la siguiente asignación:
oEl error de compilación se corrige convirtiendo el tipo del resultado en un tipo byte.
oUtilice la conversión de tipos con
precaución. Por ejemplo, si se utilizasen números de mayor tamaño para num1
y num2, la conversión en un tipo byte truncaría parte de esos datos, con lo que
el resultado sería incorrecto.
oOtros posibles problemas se indican a continuación:
Ø Suposiciones
del compilador con respecto a los tipos enteros y en coma flotante
oEl compilador de Java parte de algunos
supuestos cuando evalúa expresiones. Debe comprender estos supuestos para
realizar las conversiones de tipos apropiadas u otro tipo de adaptaciones.
oTipos de datos enteros y operaciones
ü
Cuando se utilizan valores con tipos de datos
primitivos en una expresión con determinados operadores (*, /, -, +, %), los
valores se convierten automáticamente en un valor int (o superior si es
necesario) y luego se ejecuta la operación. Esta conversión puede provocar
desbordamiento de datos o falta de precisión.
oEn el ejemplo siguiente, se produce un error porque dos de los tres operandos (a y b) se promueven automáticamente del tipo short a un tipo int antes de sumarse:
oEn la última línea, los valores de a y b se
convierten en tipos int y se suman para proporcionar un resultado de tipo int.
A continuación, el operador de asignación (=) trata de asignar el resultado int
a la variable de tipo short (c). Pero esta asignación no es válida y provoca un
error de compilación.
oEl código funcionará si realiza una de estas
operaciones:
ü Declarar c como un tipo int en la declaración original:
ü Convertir el tipo del resultado de (a+b) en la línea de asignación:
oTipos de datos en coma flotante y forma de
asignarlos
ü
Al igual que los tipos enteros adoptan
automáticamente la forma int en algunas circunstancias, los valores asignados a
los tipos en coma flotante siempre adoptan la forma double, a menos que se
especifique expresamente que el valor es de tipo float.
ü Por ejemplo, la línea siguiente provocaría un error de compilación. Dado que 27.9 se considera automáticamente del tipo double, se produce un error de compilación porque un valor double no cabe en una variable de tipo float.
ü
Las dos alternativas siguientes funcionarían
correctamente:
v La F indica al compilador que 27.9 es un valor float:
v 27.9 se convierte en un tipo float:
ü
En el ejemplo del código siguiente se utilizan
los principios explicados en esta sección para calcular la edad de una persona
expresada en días y segundos.
No hay comentarios.:
Publicar un comentario