为什么我们不能通过使用Character类的对象来使用Character类的方法?

时间:2019-04-28 14:13:12

标签: java class

我的问题是为什么我们不能使用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

那是为什么?

1 个答案:

答案 0 :(得分:5)

因为该方法的签名是:

public static boolean isDigit(char ch)

注意静态关键字!

这意味着您最好直接在类上而不是在单个实例上调用该方法。

当然,做c.isDigit('9')可能,但这根本没有多大意义。您仍在调用该静态方法,该方法没有与您似乎要调用的特定c无关。

c.isDigit() 无效无效,因为该方法需要一个参数。你不能没有它!

换句话说:编译器允许您在类的实例上调用 static 方法,但不能忽略 mandatory 参数!