Java中的变量类型转换和变量的作用域

Java中变量类型转换

把一种数据类型的值赋值给另一种数据类型的变量时,此时需要进行数据类型转换。根据转换方式不同可以分为自动类型转换和强制类型转换

自动类型转换

自动类型转换:自动类型转换也叫隐式类型转换,指的是两种数据类型在转换的过程中不需要显示的进行声明
自动类型转换需要满足两个条件:一两种数据类型彼此兼容,二目标类型的取值大源类型的取值范围

例如:

byte b = 6;
//byte类型的变量赋值给int类型,无需特殊声明,因为int取值大于byte
int i = b;
  • 整数类型之间可以实现转换,byte类型的数据可以赋值给short,int,long类型的变量,short,char类型的数据可以赋值给int,long类型的变量,int类型的数据可以赋值给long类型的变量
  • 整数类型转换为float类型,byte,short,int,long,char类型的数据可以赋值给float类型的变量
  • 其他类型转换为double类型,byte,short,int,long,char,float类型的数据可以赋值给double类型的变量

强制类型转换

强制类型转换:强制类型转换也叫显示类型转换,指的是两种类型彼此不兼容。或者目标类型的取值范围小于源类型时,自动类型转换无法进行,需要进行强制类型转换
转换格式:目标类型  变量 = (目标类型)值

int i = 10;
//如果不进行强制类型转换,编译不通过
byte b = (byte)i;

值得注意的是,在进行强制类型转换时,会发生取值较大的数据类型向取值范围较小的数据类型时,会发生数据精度的丢失

表达式类型的自动提升

变量在表达式中进行运算时,也可能发生自动类型转换,这就是表达式类型的自动提升

public class Demo {
    public static void main(String[] args) {
        byte b1 = 10;
        byte b2 = 20;
        //编译不通过,因为b1+b2运算时表达式自动提升到int类型
        byte b3 = b1 + b2;
        //需要做下面修改
        byte b4 = (byte)(b1 + b2);
        System.out.println(b4);
    }
}

变量的作用域

变量是预先定义后才能被使用,但并不是变量定义之后的语句中一定可以使用该变量。变量需要在它的作用范围内才能够使用,这个作用范围就是变量的作用域
按照作用范围可以分为:成员变量和局部变量

成员变量

在类中定义的变量称为成员变量,成员变量在整个类中有效,类成员变量有可以分为两种,实例变量和静态变量

public class Test {
	//成员变量
    int x = 10;
    //静态变量(也称类变量),需要使用static关键字进行修饰
    static int y = 20;
}

局部变量

在方法体内创建的变量就是局部变量,该变量只在该方法体内使用

public class Test {
    public static void main(String[] args) {
    	//局部变量
        int num = 10;
        System.out.println("num的值为:"+num);
    }
}

局部变量可以与成员变量名称相同,这时成员变量将被隐藏

public class Test {
	//成员变量
    int i = 20;
    public static void main(String[] args) {
    	//局部变量
        int i = 10;
        System.out.println("num的值为:" + i);
    }
}

上面代码输出为10

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值