我的问题是为什么我们不能使用Character类的对象使用Character类的方法?
Character c=new Character('9');
c.isDigit(); // this is invalid in java
c.isDigit('9'); // this is invalid in java
Character.isDigit('9'); // this is valid
那是为什么?
答案 0 :(得分:5)
因为该方法的签名是:
public static boolean isDigit(char ch)
注意静态关键字!
这意味着您最好直接在类上而不是在单个实例上调用该方法。
当然,做c.isDigit('9')
是可能,但这根本没有多大意义。您仍在调用该静态方法,该方法没有与您似乎要调用的特定c
无关。
c.isDigit()
无效无效,因为该方法需要一个参数。你不能没有它!
换句话说:编译器允许您在类的实例上调用 static 方法,但不能忽略 mandatory 参数!