这门课有多少种方法?

时间:2014-12-12 13:41:00

标签: java

我使用过:

System.out.println(Person.class.getDeclaredMethods().length);

在这里获取此类的方法数量:

    class Person {
private String name;
Person(String newName) {
name = newName;
}
public String getName() {
return name;
}
public void setName(String val) {
name = val;

}
}

我为这个类计算了三种方法,但getDeclaredMethods().length只计算两种方法。我错过了什么?

2 个答案:

答案 0 :(得分:5)

Person(String newName) {
name = newName;
}

这是类的构造函数,而不是方法。

要了解方法和构造函数之间的区别,请阅读以下文章:http://www.javaworld.com/article/2076204/core-java/understanding-constructors.html

答案 1 :(得分:5)

该类声明(按从上到下的顺序):

  • 一个字段:name。 (您可以使用getDeclaredFields获取有关已声明字段的信息,但我不认为您正在寻找这些信息。

  • 一个构造函数:Person(String)。构造函数不是方法,而是构造函数。如果您想知道有多少个声明的构造函数,请使用getDeclaredConstructors

  • 两种方法:getNamesetName。你已经知道如何获得它们了。

有更多方法,因为它继承了ObjecttoStringhashCodeequals等方法。 ,但那些是声明的