为了账号安全,请及时绑定邮箱和手机立即绑定

返回static类型变量是什么意思

封装中parseInt()方法与intValue()方法的返回值有何不同,static int返回值是什么意思

正在回答

3 回答

问的问题已经搅和在一起了,建议回看Java基础的入门第二季。


intValue() 是一个实例方法,也就是说实例化之后的对象才能调用。此方法唯一的作用就是用来手动解包。看此方法源代码如下:

public int intValue() {
        return value;
    }

作用就是把Integer对象里面的成员变量value的值返回。而即使不用调用这个方法Integer的实例也一样会把value返回。也就是说下面两种写法是完全等价的:

int a = new Integer(2).intValue();
int a = new Integer(2);


而跟parseInt()相对应的其实是Integer的含String参数的构造方法。两者的功能都是把一个字符串转换成一个int数值,结果是一样的,然而实现方法略有不同。看下例:

String s = "200";
int a = new Integer(s);
int b = Integer.parseInt(s);

Integer构造方法实现如下:

public Integer(String s) throws NumberFormatException {
        this.value = parseInt(s, 10);
    }

parseInt(String)的实现如下:

public static int parseInt(String s) throws NumberFormatException {
        return parseInt(s,10);
    }

可以看到,两种方法实际上最终都调用了parseInt(s, 10)这个static方法把字符串转换成int数值,不同的是前者是在初始化Integer对象的过程中做了一个初始化赋值的操作(赋值给实例变量value),然后自动把integer对象解包成int数值(完整的转换过程是这样:int a = new Integer(value).intValue(););而parseInt(s)是使用了Integer类的类方法,直接把得到的int数值赋值给b。


而两种方法都调用到的parseInt(s, 10);方法是什么?它也是Integer类的一个类方法,内部一系列转换动作最终返回一个int数值:

public static int parseInt(String s, int radix)
                throws NumberFormatException
    {
    ....
    }


这也就回到最后一个问题,static int返回值是什么,static int方法返回的就是一个int数值。 static限制的是标记的方法或者变量的作用域。

比如一家人一起去超市买东西,每个成员买完东西最后要把所有的东西统一记账一起结账。设计这种场景时就可以把购物车设置为static,每个实例(人)都可以修改购物车的内容。

5 回复 有任何疑惑可以回复我~
#1

say意 提问者

非常感谢你的细心讲解!
2017-04-07 回复 有任何疑惑可以回复我~

给楼上的楼上点赞

0 回复 有任何疑惑可以回复我~

楼上讲的很详细嘛

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

返回static类型变量是什么意思

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信