class AA
{
public static int f()
{
return a++;
}
public static int a;
public static int b = f(); public static void main(String args[])
{
System.out.println(b); //我觉得应该输出:1
}}
还有一个问题: 为什么在main之外居然可以合法调用到f()方法
{
public static int f()
{
return a++;
}
public static int a;
public static int b = f(); public static void main(String args[])
{
System.out.println(b); //我觉得应该输出:1
}}
还有一个问题: 为什么在main之外居然可以合法调用到f()方法
方法f()是ststic静态的
2。因为f()前面的修饰符是public static ,而AA的访问权限是包访问权限。
public static int f()
{
a++;
return a;
}
结果为1
为什么在main之外居然可以合法调用到f()方法
f()是静态的
public static int f()
{
a++;
return a;
}
结果为1
为什么在main之外居然可以合法调用到f()方法
f()是静态的
如果是前缀++a就是先改变a表示的存储单元的值,然后再使用其值。
a++正好相反。
至于3楼那样的写法,也就是a++和++a也就没有区别了。这里a的值都已经改变了。这里静态变量和静态方法已经在内存中开辟了空间了在类还没有被实例化的时候就可以调用了
所以你可以在main外调用静态变量和方法了。
因为f是静态方法嘛,呵呵,静态方法是在类初始化的时候就初始化了,所以在main里面可以调用,楼主可以多看看编程思想,这个东西很多的,呵呵,加油加油啦~~~~~
public static int f()
{
a++ ;
return a;
}
public static int a;
public static int b = f(); public static void main(String args[])
{
System.out.println(b); //我觉得应该输出:1
}
}你哪里使用的是return a++ ;
这里由于下面没有对a的操作了所以返回的是0。
而如果你先做a++在返回a的话a就会等于1