一、实体类的概念
实体类是指用于描述系统中各种对象的类别、属性和方法等的类。
在面向对象的编程中,它通常是指对现实世界中某个实体所进行的抽象,主要用于表示实体的属性和行为。
实体类可通过代码来表现,它可以包含属性(成员变量)、方法(成员函数)和事件等的定义,用于描述实体的特征和操作。
二、实体类的属性
实体类的属性是指用来描述实体状态和特征的成员变量。
每个属性都应该具有其自己的数据类型、名称和访问修饰符。
在面向对象的程序设计中,会常常使用私有成员变量与get/set方法进行封装。
class Entity {
private:
string name;
int age;
public:
void setName(string newName) {
this->name = newName;
}
string getName() {
return this->name;
}
void setAge(int newAge) {
if (newAge >= 0) {
this->age = newAge;
} else {
cout << "Age can't be negative!" <age;
}
};
三、实体类的方法
实体类的方法是指用来描述实体行为和操作的成员函数。
每个方法都应该具有其自己的返回类型、名称、参数和访问修饰符。
在实体类中,可以定义各种各样的方法,包括初始化方法、更改属性方法、计算方法、显示方法等等,以便于整个系统与实体对象进行交互。
class Entity {
private:
string name;
int age;
public:
Entity(string name, int age) {
setName(name);
setAge(age);
}
void setName(string newName) {
this->name = newName;
}
string getName() {
return this->name;
}
void setAge(int newAge) {
if (newAge >= 0) {
this->age = newAge;
} else {
cout << "Age can't be negative!" <age;
}
void display() {
cout << "Name: " << getName() << endl;
cout << "Age: " << getAge() << endl;
}
};
四、实体类的事件
实体类的事件是指在其生命周期内发生的各种状态变化的描述。
实体类可以通过构造函数、析构函数和各种各样的自定义事件来实现状态的变化和处理。
class Entity {
private:
string name;
int age;
bool alive;
public:
Entity(string name, int age) {
setName(name);
setAge(age);
alive = true; //新实例默认是存活状态
birth(); //触发出生事件
}
~Entity() {
alive = false; //实例被销毁,变成死亡状态
die(); //触发死亡事件
}
void setName(string newName) {
this->name = newName;
}
string getName() {
return this->name;
}
void setAge(int newAge) {
if (newAge >= 0) {
this->age = newAge;
} else {
cout << "Age can't be negative!" <age;
}
void birth() {
cout << "A new entity is born!" << endl;
}
void die() {
cout << "An entity is dead!" << endl;
}
};
五、实体类的继承
实体类的继承是指通过一定的访问控制,使得一个类可以扩展某个现有类的属性、方法和事件等。
在面向对象的编程中,继承是一种重要的代码复用方式,可以大大提高代码的可维护性和可扩展性。
class Human : public Entity {
public:
Human(string name, int age) : Entity(name, age) {
}
void sayHi() {
cout << "Hi, I am a human!" << endl;
}
};
