加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java之扩展运算符

发布时间:2020-12-15 06:43:59 所属栏目:Java 来源:网络整理
导读:java中的扩展运算符为+=、-=、/=、%=、*= 当使用扩展运算符时,变量在参与赋值运算时会把结果自动强制转换为当前变量的类型,比如: public class Test{ static void main(String[] args) { short a = 1 ; // 此时的a是short类型 a += 1 ; System.out.printl

java中的扩展运算符为+=、-=、/=、%=、*=

当使用扩展运算符时,变量在参与赋值运算时会把结果自动强制转换为当前变量的类型,比如:

public class Test{
    static void main(String[] args) {
        short a = 1;
        //此时的a是short类型
        a += 1;
        System.out.println(getType(a));
    }
    static String getType(Object obj) {
        return obj.getClass().getName();
    }
}

输出:java.lang.Short

如果是正常的进行赋值的话,则需要进行强制转换:

此时的a是short类型
        a = (short)(a + 1);
        System.out.println(getType(a));
    }
     obj.getClass().getName();
    }
}

输出:java.lang.Short

思考以下代码的输出是什么?

int a = 1;
        a *= 0.1;
        System.out.println(a);
        int b = a++;
        System.out.println(a);
    }
}

分析:由于扩展运算符会将运算后的结果进行强制转换成原来变量的类型,所以a*=0.1中a的类型还是int,正好与后面声明的int b相对应,所以此时a=0。而int b = a++;a++是先赋值后运算,所以b的值是0,a的值变为1。

所以最后输出为:

0

1

0

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读