// Simple program to understand pass by reference
import java.util.*;
public class HelloDate {
public static void main(String args[])
{
class Number // Contains only an integer
{
int i;
}
static void f(Number k) // <<--- Illegal start of expression ???
{
k.i = 22;
}
Number n1 = new Number(); // New object of Number
n1.i = 9;
f(n1); //Passing an object
System.out.println(n1.i); // Print
}
}
代码在static void f(Number k)
上显示错误。我应该将方法void f()
放在课堂上吗?如果是的话,为什么还有必要?
答案 0 :(得分:5)
方法必须是类的成员,它们只能放在类的主体中。
答案 1 :(得分:0)
在其他方法中嵌套方法无效,但您可以使用方法定义inner class
并获得类似的效果。之前的thread有一些很好的例子。
答案 2 :(得分:0)
问题是,您在另一个方法f()
中直接使用方法main()
。
答案 3 :(得分:0)
当你在类中放入一个类时,它被称为本地类,其范围仅在方法中。
class Number // local class
{
int i;
}
但是,您不能将方法直接放在另一个方法中。你只能在一个类中放一个方法。以您的代码为例,您可以将f
放在HelloDate
或Number
中。
如果您将f
放入HelloDate
,则需要将Number
放入HelloDate
。否则,f
,Number k
的参数将引用java.lang.Number
而不是Number
中定义的main
。