[問題] 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