首页 > 解决方案 > 为什么我们不能通过使用 Character 类的对象来使用 Character 类的方法?

问题描述

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

这是为什么?

标签: javaclass

解决方案


因为该方法的签名是:

public static boolean isDigit(char ch)

注意static关键字!

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

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

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

换句话说:编译器允许您在类的实例上调用静态方法,但不能省略强制参数!


推荐阅读