靜態方法不能訪問非靜態成員(包括靜態方法和靜態變量),但非靜態方法可以靜態成員和非靜態成員。
方法或變量加上static聲明就被定義為靜態成員。
靜態成員屬于類所有,被類的所有對象共享,它在程序預編譯期間就能確定。非靜態成員屬于對象所有,而對象需要在程序運行期間分配空間。故在預編譯期間就能確定的靜態成員不能訪問需要在程序運行時才能確定的非靜態成員。
針對你的問題,main是靜態方法,它只能訪問靜態成員,所以它可以訪問static的b,不能訪問沒有static聲明的rand,解決方法就是在成員聲明前加static關鍵字,表明該成員是靜態成員。