[问题] static与non static

楼主: e002311 (鸿)   2014-07-04 21:15:50
有没有大神可以解释
System.out.println()
为什么一个static的参用 可以 呼叫 non-static的方法
public final class System{
public final static printStream out = null;
}
public class printStream{
public void println()
}
public static void main(String[] args){
System.out.println();
}
可以过关
但我自写
public final class A{
public static B b = new B();
}}
public class B {
public static void m(){
System.out.print(1223456);
}
public void m1(){
System.out.print(1223456);
}
public static void main(String[] args) {
A.b.m1();
}
}
却无法过关
感恩
我一直以为 static 不能直接对未实例化 的non-static作使用
作者: LPH66 (-6.2598534e+18f)   2014-07-04 21:41:00
static 的只是 out, out 本身参照到了一个物件, println 是对那个物件作用的至于你的例子应该是你多贴了一层 A 的关系
作者: ssccg (23)   2014-07-05 05:00:00
用参照呼叫non-static方法是哪边有问题?是在static context中直接呼叫同一class的non-static member(隐含用this呼叫目前物件的member)才不行重点在目前物件(this)不能用,不是non-static不能用不用特地以System.out解释,想想A.b.toString()能不能用?

Links booklink

Contact Us: admin [ a t ] ucptt.com