黑马程序员_1数据类型转换

来源:互联网 发布:java 编译器api 编辑:程序博客网 时间:2024/05/17 10:07

------- android培训、java培训、期待与您交流! ----------

1、Java语言是一种强类型的语言,强类型的语言有以下 几个要求 :

(1)变量或常量必须有类型。“先声明,后使用”就是上说声明变量或常量时必须声明类型,而且仅在声明之后方可使用。

(2)赋值时类型必须一致。值的类型必须和变量或常量的类型完全一致,如声明long = 10L,我们需要在其值后加上L以表示其值为long型。


运算时类型必须一致。参与运算的数据类型必须一致才能运算。但是在实际的使用中经常需要在不同类型的值之间进行操作,这就需要类型转换。


在开发程序过程中经常需要把不现的基本数据进行转换,Java语言提供为7个数值型之间(boolean型数据不能与其他基本类型值转换)可以相互转换的方式,主要有两种类型,自动类型转换和强制类型转换。



2、自动类型转换

自动类型转换也称隐式类型转换,是指不需要书写代码,由系统根据一定条件自动完成的类型转换。

在程序中,常常遇到已定义好数据类型的变量需要用另一个数据类型来表示,Java会在以下 两个条件均满足时,实现自动类型转换。

①要转换的两种类型是兼容的。如,int 型可以与long型转换,但boolean型不能与int型转换。

②目的类型的取值范围要比源类型大。

注意:自动类型转换是扩大转换,不会因为自动转换而影响了数据的精度,这就是要满足“目的类型的取值范围要比源类型大”的原因了。

例如:


public class AutoCov{

public static void main(String[] args){

byte b = 8;

int i = b; //将byte型自动转换成int型

System.out.println("byte型自动转换int型:"+i);         //输出结果:8

char c = 'a';

i = c; //将char型自动转换int型

System.out.println("char型自动转换int型:"+i);  //输出结果:65

float f =i;//将int型自动转换float

System.out.println("int型自动转换float型:"+f);  //输出结果:65.0

}

}


注意:在整数之间进行类型转换时,数值不发生改变。而将整数类型,特别是Int型和long型转换成浮点数类型时,由于存储方式不同,int型和long型所包含的位数比float型所能表达的有效位数多,就有可能存在数据精度的损失。

如:整型转换浮点型,损失精度。

public class IntCovFloat{

public static void main(String[] args){

int i = 1234567890;

float f= i;//将int型转换为float型

System.out.println(f);//损失精度,,输出结果:1.23456794E9

}

}

在自动类型转换中还有一个很重要也很能 常用的转换---任何型的数据均可向String转换。

如:

class AutoCovString 
{
public static void main(String[] args) 
{
String name = "我的名字叫华";
int age =  5;

float grade = 98.5F;

//将int型和float型向String转换。

String str = name+ "今年"+age+"岁,期末数学得了"+grade+"分";
System.out.println(str);            //输出结果:我的名字叫华今年5岁,期末数学得了98.5分

}
}



0 0