您的位置:首页 > 编程语言 > Java开发

Java 函数的参数引用,通过传入参数带回函数运行结果

2013-07-18 19:36 447 查看
Java没有指针,在需要由参数直接带回结果的情况下,较C语言相比有一些区别,C语言中任何类型可通过指针传递,在Java中,需要自定义一个类(标准类型不能带回参数),而这个自定义类可以通过函数的参数返回结果,达到类似C指针的效果。

public class testParameter
{

public testParameter()
{
}

public static void main(String[] args)
{
// 函数传入标准类型参数,测试引用
// -------------------------------------------
Integer a = 0;
Integer b = 0;
// 引用不能
getValue(a, b);
// 未得到期望结果
System.out.println(a);
System.out.println(b);

// 函数传入自定义类参数,测试引用
// -------------------------------------------
MyValue value = new MyValue();
value.a = 0;
value.b = 0;
// 引用有效
getValue(value);
// 得到期望结果
System.out.println(value.a);
System.out.println(value.b);
}

// 参数为自定义类
private static void getValue(MyValue v)
{
v.a = 24;
v.b = 57;
}

// 参数为标准类型
private static void getValue(Integer a, Integer b)
{
a = 17;
b = 37;
}
}

// 自定义类
class MyValue
{
// 变量初始化
public int a = 0;
public int b = 0;
}


getValue(MyValue) 的参数在函数内赋值后依然通过类将结果带出,类中的变量发生了变化。

getValue(Integer, Integer) 的参数在函数内虽然发生了改变,但函数返回后,传入的参数未发生变化,其次 String 类型也不能将结果通过参数带回,只有通过 new 创建的对象才行。

字符串的话,可以使用 String[] 作为参数传入,也可以带回函数内的运行结果

public static void main(String[] args)
{
try
{
String[] str = new String[1];
str[0] = "";
Test2(str);
// 将显示 Test2 的赋值出结果
System.out.print(str[0]);
}
catch (Exception e)
{
e.printStackTrace();
}
}

private static void Test2(String[] str) throws Exception
{
str[0] = "hello world.";
}


blog.csdn.net/joyous/article/details/9372279

Q群讨论:236201801
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐