buscador

Visita

Mostrando las entradas con la etiqueta Tipos primitivos enteros. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Tipos primitivos enteros. Mostrar todas las entradas

martes, 5 de julio de 2016

馃搷 Actividad 4: 馃殌Declaraci贸n, inicializaci贸n y uso de variables en ☕ Java

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.

 Sobre el contenido …

  • El contenido de este blog tiene como fuente el curso Fundamentos de programaci贸n de Oracle.
  • Con algunos agregados del autor "EL INFORMATICO IBERO"

 Identificaci贸n de la sintaxis y el uso de las variables

  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.

 Uso de las Variables

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:

oSi convierte un valor con decimales de tipo float o double en un tipo entero como int, se perder谩n todos los decimales. No  obstante, este m茅todo de conversi贸n de tipos puede resultar 煤til a veces si se quiere redondear el n煤mero por defecto, por ejemplo 51.9 se convierte en 51.

  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.

Raul Tamani A. ©. Im谩genes del tema de fpm. Con tecnolog铆a de Blogger.

Adblock Detectado

Apoya este sitio desactivando el Adblock para seguir navegando. ¡Gracias!

¡Ya Desactive el Adblock!