当我声明一个带参数的方法时,在我的方法中我为这些参数赋值,那些参数会变成变量吗?
我的问题是,我可以说:“当我在我的方法中使用它时,我的方法的参数也是一个变量”?
示例:
public int returnDays(int month)
{
month = getMonth();
//"Can I say : month is a variable?"
}
答案 0 :(得分:1)
是的,它被称为变量,你可以调用它变量,你可以使用它。变量是内存中的命名占位符,可以在程序中更改值
在计算机编程中,变量是存储位置和 关联的符号名称(标识符),包含一些已知或 未知数量或信息,价值。变量名是 通常的方式来引用储值;这种名称和分离 content允许名称独立使用 它代表的信息。计算机源代码中的标识符可以 在运行时绑定一个值,变量的值可以 因此在程序执行过程中发生变化reference。
答案 1 :(得分:1)
答案 2 :(得分:1)
你有两个问题
我声明了一个带参数的方法,并在我的方法中指定 对这些参数的值,那些参数变成变量
简短回答是的,它们是变量
我可以在使用变量时将变量调用到方法的参数中 在我的方法中
就您的上下文而言,是的,您可以使用它们,但从更广泛的角度来看,在进入开发细节之前,您应该在方法范围内访问哪些变量read
答案 3 :(得分:0)
我不完全明白你的问题。是的,“月”是一个变量。但是,我不确定你要通过分配它来实现什么。
int
类型派生自struct
,这意味着它不会通过引用传递。当您致电returnDays(x)
时,x
本身未通过,并且会复制该副本。
如果您想要更改其值并返回日期,则需要使用ref
或out
个关键字。前者基本上传递了一个指向x
的指针,可以用作你的功能。然而,后者更严格,需要函数初始化通过它传递的任何值。
所以,这是你最终的代码
public int ReturnDays(out int month)
{
month = GetCurrentMonth();
return GetDays(month);
}
但是,我仍然不确定这是否是你想要的答案。
答案 4 :(得分:0)
首先,这是C#还是Java?每种语言都有自己的怪癖。
如果C#使用KappaG3显示的out语句。
如果是Java,
只需在函数/方法中使用return语句:
return getMonth();
如果需要返回多个值,可以传递对象,然后分配给函数/方法中的那些对象。对象通过引用传递,其中基元通过值传递。整数是一个对象,但不能像你看到的那样:
//
public class Main {
public static void main(String[] args) {
int value1 = 0;
Integer value2 = new Integer(0);
MyObject value3 = (new Main()).new MyObject(0);
passByVal(value1);
passByRef(value2);
passByRef(value3);
System.out.println("value1 = " + value1);
System.out.println("value2 = " + value2);
System.out.println("value3 = " + value3);
}
class MyObject
{
public int value = 0;
public MyObject(int value) { this.value = value; }
@Override
public String toString() {
return value + "";
}
}
public static void passByVal(int i)
{
i = 7;
}
public static void passByRef(Integer i)
{
i = new Integer(7);
}
public static void passByRef(MyObject o)
{
o.value = 7;
}
}
返回输出:
0 0 7
因此,如果您需要返回一堆值,我建议传递对象或返回专门设计用于保存所有值的对象