java 内部类问题

来源:百度知道 编辑:UC知道 时间:2024/06/07 05:37:36
public class abc1
{
public void ja()
{
System.out.println("this is a class");
}
public class abcva
{
abc1 d = new abc1();
int j=d.i;
}
}

改成下面这个就会出错 为啥呢?
public class abc1
{
public void ja()
{
System.out.println("this is a class");
}
public class abcva
{
int j;
abc1 d = new abc1();;
j=d.i;
}
}
public class abc1
{
public void ja()
{
System.out.println("this is a class");
}
public class abcva
{
abc1 d = new abc1();
int j=d.i;
}
private int i=99;
}

我刚说错了
在类首次加载时,会加载静态语句块
我只能说这是JVM的机制,你要用他就要遵守它定下的语法规矩了

只要是类属性,无论内部外部,都是这规定了

初步判定abc1 d = new abc1();;这句话,你多打了个";"

j=d.i;
这句话放到方法里或者块里,直接写在类里是不行的
public class abc1
{
public void ja()
{
System.out.println("this is a class");
}
public class abcva
{
int j;
abc1 d = new abc1();;

j=d.i;

}
private int i=99;

}

别学内部类了,做项目的时候内部类会使程序很难读懂,或很难维护,而且容易使程序混乱!