关于static方法
static的方法调用是不是只有:
1.类的示例.静态方法
2.类名.静态方法
为什么我在书上还看到直接在另一类里调用静态方法
代码如下:
Java code
class A{int i;}
public class VarArgs{
static void f(Object[] x){
for(int i = 0; i < x.length; i++)
System.out.println(x[i]);
}
public static void main(String[] args){
f(new Object[] {
new Integer(47), new VarArgs(),
new Float(3.14), new Double(11.11) });
f(new Object[] {"one", "two", "three" });
f(new Object[] {new A(), new A(), new A()});
}
}
就那个f 前边为什么不要VarArgs呢???
------解决方案-------------------- main()方法和f()同在VarArgs类内 可以不加类名 直接引用静态方法f()
------解决方案-------------------- 探讨 main()方法和f()同在VarArgs类内 可以不加类名 直接引用静态方法f()
------解决方案-------------------- 你可以看看这个程序。class.forname()方法是将制定的路径的类的.class文件加载到虚拟机
package com.statics.test;
public class Test {
public static void main(String[] args) throws
ClassNotFoundException {
Class.forName("com.statics.test.StaticInit");
System.out.println("======================分割线===========================");
f();
//瞧私有方法
privateFunction();
}
public static void f(){
System.out.println("因为f()方法是在Test内部被调用的。因此可以直接用f()来调用该函数。使用Test.f()同样也可以\r\n" +
"注意:main函数是在Test的内部的。为了能让你能够更好的理解。我们再里面调用私有的方法试试就知道了");
}
private static void privateFunction(){
System.out.println("private method");
}
}
class StaticInit{
static{
System.out.println("我被初始化了");
}
}
------解决方案-------------------- 楼主没注意到main方法是在VarArgs中的吧,故可直接拿来用了。
------解决方案-------------------- 静态方法可以直接调用静态方法
------解决方案-------------------- 1L说的很对