从概念上讲,类是对状态和行为的描述。对象(实例)是包含该状态和行为的数据结构。
例如,给定一个类
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
对象(它实际上不止这些,但请耐心等待)。字段和方法是类的状态。例如,行为是创建类的实例。