黑马程序员技术交流社区
标题:
java中方法内不能再定义方法吗?(有代码,在线等 谢谢)
[打印本页]
作者:
pancl
时间:
2014-7-10 12:48
标题:
java中方法内不能再定义方法吗?(有代码,在线等 谢谢)
本帖最后由 pancl 于 2014-7-10 12:55 编辑
class test
{
public static void main(String[] args)
{
method1();
}
public static void method1()
{
int x=1;
int y=2;
method2();
public static void method2()
{
System.out.println(x+y);
}
}
}
复制代码
编译会出错,“非法的表达式的开始”是因为在方法内不能在定义方法吗?如果在实际应用中,需要method1和method2并且method1中定义的很多变量都会在mehod2被使用。该如何修改代码结构呢?谢谢了
作者:
王松朝
时间:
2014-8-4 23:07
java是不允许方法内部嵌套方法的,但是有办法绕过去,方法内部可以嵌套内部类,类里面又可以嵌套方法,这样就达到了你的要求:
// 伪代码,旨在理解
class A{
void a(){
new interface {
void b(){
//
}
}
}
}
按照变量的作用范围来说,内部类是不能访问方法内的变量的, 除非将方法内的变量声明为final的,才能访问
作者:
王松朝
时间:
2014-8-4 23:09
本帖最后由 王松朝 于 2014-8-4 23:11 编辑
按照你说的意思来看,并不需要内部类这样的东西,只需要把变量定义成 全局变量即可
like this;
class A{
int aa,bb,cc;
void a(){
}
void b(){
}
///// 或者也可以这样
void c(){
int a1,a2;
d(a1,a2);
}
void d(int a1,int a2){
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2