请问为什么A是非法的

若有定义如下,则下列用法中非法的是

class Object{

         int x,y;

         static float f(int a) {...}

         float g(int x1, int x2) {...}

}

Object obj = new Object();

A. Object.g(3,2)
B. Object.f(3)
C. obj.f(4)
D. obj.g(2,5)

首先了解一下类的加载机制,类中有属性x,y 静态方法,和普通方法,

静态方法 f 在加载类字节码信息时就被加载,所以可以直接用类名直接调用静态方法, Object.f()
而普通方法要在实例化后才能调用,所以A不对