public static void change(Integer num)
{
在这里给传过来的形参的值加1,如果是基本类型 int,就能直接++,可是包装类不能。
}
public static void main(String[] args)
{
Integer num=new Integer(3);
change(num);
System.out.println(num);//在change方法加1后,打印出来的应该是4。
}我就是想让num指向的3加1,然后再打印出来。包装类好像不能这样做,不知道是不是真的。IntHolder类能这样做,可我想用包装类实现试试。请会的朋友,教教我,就用Integer类。谢谢啦!
{
// 在这里给传过来的形参的值加1,如果是基本类型 int,就能直接++,可是包装类不能。
return new Integer(num.intValue()+1);
}
public static void main(String[] args)
{
Integer num=new Integer(3);
num=change(num);
System.out.println(num);//在change方法加1后,打印出来的应该是4。
}
Java里面所有的基本类型包装类都是不可变类,也就是初始化之后值是不可更改的,你想要的功能只能用上面的方法达到,其实是需要新建一个不可变类的对象返回
public static void main(String[] args) throws Exception {
System.out.println(change(3));
} public static int change(Integer num)
{
return ++num;
}
public static void main(String[] args) {
Integer num = 3;
num = change(num);
System.out.println(num);
}
public static Integer change(Integer num)
{
return num = num + 1;
}
这样到是可以,不过就失去意义了。。
{
public static void change(Integer num)
{
num=num+1;
System.out.print(num);
}
public static void main(String[] args)
{
Integer num=new Integer(3);
change(num);
}
} 不知道是不是楼主的意思(我也是新手)。
class Change
{
public Integer num;public void setNum(Integer num){
this.num=num;
}public static void change(Integer num)
{
this.num=num+1;
System.out.print(num);
}
public static void main(String[] args)
{
Integer num=new Integer(3);
change(num);
}
}
应该是public static Integer num;
public static void change(Integer num)
{
num=num+1;
{
num++;
}
public static void main(String[] args)
{
Integer num=new Integer(3);
change(num);
System.out.println(num);//在change方法加1后,打印出来的应该是4。
}你的程序原来是这个样子的,但是并没有实现打印出4的结果。
并不是包装类不能实现++,java在传递参数的时候被大家误解成两种方式——值传递和引用传递,这个理解是错误的(来自java核心技术卷),其实在java中只有值传递,没有引用传递。在实参传给形参的时候都会先把实参的值(引用就是地址值)复制到形参中,然后进行操作,方法结束,形参被销毁。如果想把形参的值带回来,方法就要加返回类型。public static Integer change(Integer num)
{
num++;//自解包
return num;自打包
}
public static void main(String[] args)
{
Integer num=new Integer(3);
num = change(num);
System.out.println(num);//在change方法加1后,打印出来的应该是4。
}
这样就好了,希望对你有帮助。