SlideShare una empresa de Scribd logo
1 de 3
Conversiones de tipo.
Java es un lenguaje fuertemente tipificado, lo que significa que es bastante estricto al
momento de asignar valores a una variable. El compilador sólo permite asignar un valor
del tipo declarado en la variable; no obstante, en ciertas circunstancias es posible
realizar conversiones que permiten almacenar en una variable un tipo diferente al
declarado.En Java es posible realizar conversiones en todos los tipos básicos, con
excepción de boolean, que es incompatible con el resto de los tipos.
Las conversiones de tipo pueden realizarse de dos maneras: implícitamente y
explícitamente.
Conversión implícita.
Las conversiones implícitas se realizan de manera automática, es decir, el valor o
expresión que se va a asignar a una variable es convertido automáticamente por el
compilador, antes de almacenarlo en la variable.
Ejemplo:
int i;
byte b = 30;
i = b;
En este ejemplo, el dato de tipo byte almacenado en la variable "b" es convertido en
"int" antes de asignarlo a la variable "i".
Para que una conversión pueda realizarse de manera automática (implícitamente), el
tipo de la variable destino debe ser de tamaño igual o superior al tipo de origen, si bien
esta regla tiene dos excepciones:
a) Cuando la variable destino es entera y el origen es decimal (float o double), la
conversión no podrá
ser automática.
b) Cuando la variable destino es "char" y el origen es numérico; independientemente del
tipo
específico, la conversión no podrá ser automática.
El siguiente listado contiene ejemplos de conversiones implícitas:
// Declaraciones.
int k = 5, p;
short s = 10;
char c = 'ñ';
float h;
// Conversiones implícitas.
p = c; // Conversión implícita de char a int.
h = k; // Conversión implícita de int a float.
k = s; // Conversión implícita de short a intPor otro lado, los siguientes ejemplos de
conversión implícita provocarían un error.
// Declaraciones.
int n;
long c = 20;
float ft = 2.4f;
char k;
byte s = 4;
// Conversiones implícitas.
n = c; // Error, el tipo destino es menor al tipo origen.
k = s; // Cuando la variable destino es "char" y el origen es numérico;
independientemente del tipo específico, la conversión no podrá ser automática.
n = ft; // Cuando la variable destino es entera y el origen es decimal (float o double), la
conversión no podrá ser automática.Conversiones explícitas.
Cuando no se cumplan las condiciones para una conversión implícita, ésta podrá
realizarse de manera explícita utilizando la siguiente expresión:
variable_destino = (tipo_destino) dato_origen;
Con esta expresión obligamos al compilador que convierta "dato_origen" a
"tipo_destino" para que pueda ser almacenado en "variable_destino".
A esta operación se le conoce como "casting" o "estrechamiento" ya que al convertir un
dato de un tipo definido a otro más pequeño se realiza un estrechamiento que, en
algunos casos, puede provocar una pérdida de datos o precisión, aunque ésto no
provocará errores de compilación.
Los siguientes son ejemplos de conversiones explícitas:
// Declaraciones.
char c;
byte k;
int p = 400;
double d = 34.6;
// Conversiones explícitas.
c = (char)d; // Se elimina la parte decimal (trunca), no se redondea.
k = (byte)p; // Se provoca una pérdida de datos, pero la conversión es posible.
Saber usar bien el “casting” hará que nuestros programas sean mas eficientes en cuanto
al uso de la memoria ademas de ser mas rapidos en la ejecucion, por ejemplo, añado
una porcion del codigo de un sistema que realize hace ya un buen tiempo.
public Object createValue() throws BasicException {
Object[] cat = new Object[4];
cat[0] = m_id == null ? UUID.randomUUID().toString() : m_id;
cat[1] = m_jName.getText();
cat[2] = m_CategoryModel.getSelectedKey();
cat[3] = m_jImage.getImage();
return cat;
{
Quiero que observen que el metodo retorna un Object y no un arreglo de Object pero
gracias a la herencia es posible asignarle a un Object una referencia a un arreglo de
Object ya que los arreglos heredan de Object, esto lo abordaremos con mas detalles en
temas donde tratemos la POO (Programación Orientada a Objetos)
Ahora quiero que observen otra porcion de codigo public void writeValueEdit(Object
value) {
//aqui aplico un casting
Object[] cat = (Object[]) value;
m_id = cat[0];
m_jName.setText(Formats.STRING.formatValue(cat[1]));
m_CategoryModel.setSelectedKey(cat[2]);
m_jImage.setImage((BufferedImage) cat[3]);
{
en la linea Object [] cat = (Objec[])value;
estoy aplicando un casting es decir estoy convirtiendo un Object a un Object[], es esto
posible ya que el Object value en algun lugar se le asigno un Object[], el metodo
writeValueEdit bien pudo haber quedado como:
public void writeValueEdit(Object [ ]value)
pero esto haría que nuestra aplicacion consuma mas memoria

Más contenido relacionado

La actualidad más candente

La estructura basica_para_c_
La estructura basica_para_c_La estructura basica_para_c_
La estructura basica_para_c_
GamePlayer35
 
Lenguaje c (expresiones logicas)
Lenguaje c (expresiones logicas)Lenguaje c (expresiones logicas)
Lenguaje c (expresiones logicas)
Eloy Rodriguez
 
Lenguaje javascript
Lenguaje javascriptLenguaje javascript
Lenguaje javascript
Xoch Flores
 
Conversion Entre Tipos Leccion 4
Conversion Entre Tipos   Leccion 4Conversion Entre Tipos   Leccion 4
Conversion Entre Tipos Leccion 4
kayrambal
 

La actualidad más candente (20)

Eficiencia en uso tiempo
Eficiencia en uso  tiempoEficiencia en uso  tiempo
Eficiencia en uso tiempo
 
Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)Instrucciones(raptor, java, c#)
Instrucciones(raptor, java, c#)
 
La estructura basica_para_c_
La estructura basica_para_c_La estructura basica_para_c_
La estructura basica_para_c_
 
Clase v
Clase vClase v
Clase v
 
Mult deber
Mult  deberMult  deber
Mult deber
 
A2 u1-16230227
A2 u1-16230227A2 u1-16230227
A2 u1-16230227
 
Lenguaje c (expresiones logicas)
Lenguaje c (expresiones logicas)Lenguaje c (expresiones logicas)
Lenguaje c (expresiones logicas)
 
Sesion Nº 04 Introducción A Php Operadores E Instrucciones
Sesion Nº 04   Introducción A Php   Operadores E InstruccionesSesion Nº 04   Introducción A Php   Operadores E Instrucciones
Sesion Nº 04 Introducción A Php Operadores E Instrucciones
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Funciones en C
Funciones en CFunciones en C
Funciones en C
 
Lenguaje javascript
Lenguaje javascriptLenguaje javascript
Lenguaje javascript
 
Comandos de raptor c# y java
Comandos de raptor c# y javaComandos de raptor c# y java
Comandos de raptor c# y java
 
comandos
comandoscomandos
comandos
 
Comandos de Raptor, Java y C# Sharp
Comandos de Raptor, Java y C# SharpComandos de Raptor, Java y C# Sharp
Comandos de Raptor, Java y C# Sharp
 
Conversion Entre Tipos Leccion 4
Conversion Entre Tipos   Leccion 4Conversion Entre Tipos   Leccion 4
Conversion Entre Tipos Leccion 4
 
Lista de raptor sus comandos y su función
Lista de raptor sus comandos y su funciónLista de raptor sus comandos y su función
Lista de raptor sus comandos y su función
 
TypeScript
TypeScriptTypeScript
TypeScript
 
Introduccion a C++
Introduccion a C++Introduccion a C++
Introduccion a C++
 
Pseudocodigo
PseudocodigoPseudocodigo
Pseudocodigo
 
Las estructuras de control
Las estructuras de controlLas estructuras de control
Las estructuras de control
 

Destacado (11)

Neustar Inc. presentation at .NYC Public Workshop 12-09-13
Neustar Inc. presentation at .NYC Public Workshop 12-09-13Neustar Inc. presentation at .NYC Public Workshop 12-09-13
Neustar Inc. presentation at .NYC Public Workshop 12-09-13
 
trbajo final grupo y diseño de proyecto 12058_116
trbajo final grupo y diseño de proyecto 12058_116trbajo final grupo y diseño de proyecto 12058_116
trbajo final grupo y diseño de proyecto 12058_116
 
Free UK UFO National Archives Documents
Free UK UFO National Archives DocumentsFree UK UFO National Archives Documents
Free UK UFO National Archives Documents
 
Mahkum fiihi
Mahkum fiihiMahkum fiihi
Mahkum fiihi
 
Diapo de hoteles marriot
Diapo de hoteles marriotDiapo de hoteles marriot
Diapo de hoteles marriot
 
SEO en 2015 en #OMEXPO2015
SEO en 2015 en #OMEXPO2015SEO en 2015 en #OMEXPO2015
SEO en 2015 en #OMEXPO2015
 
Makalah tafsir
Makalah tafsirMakalah tafsir
Makalah tafsir
 
Makalah tasawuf
Makalah tasawufMakalah tasawuf
Makalah tasawuf
 
Makalah psikologi perkembangan
Makalah psikologi perkembanganMakalah psikologi perkembangan
Makalah psikologi perkembangan
 
Makalah tauhid
Makalah tauhidMakalah tauhid
Makalah tauhid
 
.Nyc neustar presentation 12 109-13
.Nyc neustar presentation 12 109-13.Nyc neustar presentation 12 109-13
.Nyc neustar presentation 12 109-13
 

Similar a R68235

Similar a R68235 (20)

Cap I
Cap ICap I
Cap I
 
Conversión entre tipos de datos
Conversión entre tipos de datosConversión entre tipos de datos
Conversión entre tipos de datos
 
Tpos de datos c#
Tpos de datos c#Tpos de datos c#
Tpos de datos c#
 
Java básico
Java  básicoJava  básico
Java básico
 
tposdedatosc-200924033657.pptx
tposdedatosc-200924033657.pptxtposdedatosc-200924033657.pptx
tposdedatosc-200924033657.pptx
 
Seccion Fundamentos SCJP
Seccion Fundamentos SCJPSeccion Fundamentos SCJP
Seccion Fundamentos SCJP
 
Funciones C++ modificado
Funciones C++ modificadoFunciones C++ modificado
Funciones C++ modificado
 
Tipos de datos_para_c_(2)
Tipos de datos_para_c_(2)Tipos de datos_para_c_(2)
Tipos de datos_para_c_(2)
 
C++
C++C++
C++
 
Presentación de c #
Presentación de c #Presentación de c #
Presentación de c #
 
Java
JavaJava
Java
 
Compu1 (1)
Compu1 (1)Compu1 (1)
Compu1 (1)
 
Las variables y constantes
Las variables y constantesLas variables y constantes
Las variables y constantes
 
Programacion en java_inicio apeuntes para ems
Programacion en java_inicio apeuntes para emsProgramacion en java_inicio apeuntes para ems
Programacion en java_inicio apeuntes para ems
 
Conversion de Strings
Conversion de StringsConversion de Strings
Conversion de Strings
 
TutorialKotlin.docx
TutorialKotlin.docxTutorialKotlin.docx
TutorialKotlin.docx
 
Certificación java 6 cap 3
Certificación java 6 cap 3Certificación java 6 cap 3
Certificación java 6 cap 3
 
Semana9b Vbr
Semana9b VbrSemana9b Vbr
Semana9b Vbr
 
Tema 7 www.fresymetal.com
Tema 7 www.fresymetal.comTema 7 www.fresymetal.com
Tema 7 www.fresymetal.com
 
Fund Java
Fund JavaFund Java
Fund Java
 

R68235

  • 1. Conversiones de tipo. Java es un lenguaje fuertemente tipificado, lo que significa que es bastante estricto al momento de asignar valores a una variable. El compilador sólo permite asignar un valor del tipo declarado en la variable; no obstante, en ciertas circunstancias es posible realizar conversiones que permiten almacenar en una variable un tipo diferente al declarado.En Java es posible realizar conversiones en todos los tipos básicos, con excepción de boolean, que es incompatible con el resto de los tipos. Las conversiones de tipo pueden realizarse de dos maneras: implícitamente y explícitamente. Conversión implícita. Las conversiones implícitas se realizan de manera automática, es decir, el valor o expresión que se va a asignar a una variable es convertido automáticamente por el compilador, antes de almacenarlo en la variable. Ejemplo: int i; byte b = 30; i = b; En este ejemplo, el dato de tipo byte almacenado en la variable "b" es convertido en "int" antes de asignarlo a la variable "i". Para que una conversión pueda realizarse de manera automática (implícitamente), el tipo de la variable destino debe ser de tamaño igual o superior al tipo de origen, si bien esta regla tiene dos excepciones: a) Cuando la variable destino es entera y el origen es decimal (float o double), la conversión no podrá ser automática. b) Cuando la variable destino es "char" y el origen es numérico; independientemente del tipo específico, la conversión no podrá ser automática. El siguiente listado contiene ejemplos de conversiones implícitas: // Declaraciones. int k = 5, p; short s = 10; char c = 'ñ'; float h; // Conversiones implícitas. p = c; // Conversión implícita de char a int. h = k; // Conversión implícita de int a float. k = s; // Conversión implícita de short a intPor otro lado, los siguientes ejemplos de conversión implícita provocarían un error. // Declaraciones. int n; long c = 20; float ft = 2.4f;
  • 2. char k; byte s = 4; // Conversiones implícitas. n = c; // Error, el tipo destino es menor al tipo origen. k = s; // Cuando la variable destino es "char" y el origen es numérico; independientemente del tipo específico, la conversión no podrá ser automática. n = ft; // Cuando la variable destino es entera y el origen es decimal (float o double), la conversión no podrá ser automática.Conversiones explícitas. Cuando no se cumplan las condiciones para una conversión implícita, ésta podrá realizarse de manera explícita utilizando la siguiente expresión: variable_destino = (tipo_destino) dato_origen; Con esta expresión obligamos al compilador que convierta "dato_origen" a "tipo_destino" para que pueda ser almacenado en "variable_destino". A esta operación se le conoce como "casting" o "estrechamiento" ya que al convertir un dato de un tipo definido a otro más pequeño se realiza un estrechamiento que, en algunos casos, puede provocar una pérdida de datos o precisión, aunque ésto no provocará errores de compilación. Los siguientes son ejemplos de conversiones explícitas: // Declaraciones. char c; byte k; int p = 400; double d = 34.6; // Conversiones explícitas. c = (char)d; // Se elimina la parte decimal (trunca), no se redondea. k = (byte)p; // Se provoca una pérdida de datos, pero la conversión es posible. Saber usar bien el “casting” hará que nuestros programas sean mas eficientes en cuanto al uso de la memoria ademas de ser mas rapidos en la ejecucion, por ejemplo, añado una porcion del codigo de un sistema que realize hace ya un buen tiempo. public Object createValue() throws BasicException { Object[] cat = new Object[4]; cat[0] = m_id == null ? UUID.randomUUID().toString() : m_id; cat[1] = m_jName.getText(); cat[2] = m_CategoryModel.getSelectedKey(); cat[3] = m_jImage.getImage(); return cat; { Quiero que observen que el metodo retorna un Object y no un arreglo de Object pero gracias a la herencia es posible asignarle a un Object una referencia a un arreglo de Object ya que los arreglos heredan de Object, esto lo abordaremos con mas detalles en temas donde tratemos la POO (Programación Orientada a Objetos)
  • 3. Ahora quiero que observen otra porcion de codigo public void writeValueEdit(Object value) { //aqui aplico un casting Object[] cat = (Object[]) value; m_id = cat[0]; m_jName.setText(Formats.STRING.formatValue(cat[1])); m_CategoryModel.setSelectedKey(cat[2]); m_jImage.setImage((BufferedImage) cat[3]); { en la linea Object [] cat = (Objec[])value; estoy aplicando un casting es decir estoy convirtiendo un Object a un Object[], es esto posible ya que el Object value en algun lugar se le asigno un Object[], el metodo writeValueEdit bien pudo haber quedado como: public void writeValueEdit(Object [ ]value) pero esto haría que nuestra aplicacion consuma mas memoria