从概念上讲,类是对状态和行为的描述。对象(实例)是包含该状态和行为的数据结构。
例如,给定一个类
class User {
String name;
void setName(String name) {
this.name = name
}
}
该类User具有行为和状态,即。它有一个Field被叫name和一个Method被叫setName。上面描述了这种行为。如果您创建一个实例
User user = new User();
user.setName("Jon");
你现在有了一个包含实际状态和表现行为的数据结构。
在 Java 中,你有所谓的反射,它基本上描述了一个类的元数据、它的状态和它的行为。这分别被解释为Class、Field和Method类的实例。
在上面的示例中,由于字段name本身具有状态和行为(它有一个名称(“名称”),我们可以对其进行读取或写入),因此必须有一个类来描述它。描述该状态和行为的类是包含该状态和行为的Field实例。Field
同样,Method该类描述了一个方法。一个方法有一个状态,它的名字 ex。setName,它接受的参数,例如。一个String。它也有行为,例如。它返回 void (不返回任何内容)。
最后,你有一个Class描述类的状态和行为的类。Class描述类的状态和行为的实例。例如,类的Class实例User将有一个Field对象和一个Method对象(它实际上不止这些,但请耐心等待)。字段和方法是类的状态。例如,行为是创建类的实例。