面向对象的实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、实验目的
1. 理解面向对象编程的基本概念,如类、对象、继承、封装、多态等。
2. 掌握面向对象编程的基本语法和常用操作。
3. 通过实验加深对面向对象编程的理解和应用。
二、实验环境
1. 操作系统:Windows 10
2. 开发工具:Visual Studio 2019
3. 编程语言:C#
三、实验内容
1. 定义一个简单的类,并创建对象实例。
2. 在类中定义属性和方法,并演示其使用。
3. 使用继承实现类的扩展。
4. 使用封装保护类的内部数据。
5. 使用多态演示不同对象间的动态类型转换。
四、实验步骤
1. 定义一个名为“Person”的类,包含以下属性和方法:
- 属性:姓名(Name)、年龄(Age)、性别(Gender)
- 方法:打印个人信息(PrintInfo)
2. 创建“Person”类的对象实例,并演示属性和方法的使用。
3. 定义一个名为“Student”的类,继承自“Person”类,并添加以下属性和方法: - 属性:学号(StudentID)
- 方法:打印学生信息(PrintStudentInfo)
4. 创建“Student”类的对象实例,并演示属性和方法的使用。
5. 定义一个名为“Employee”的类,继承自“Person”类,并添加以下属性和方法:
- 属性:工号(EmployeeID)、职位(Position)
- 方法:打印员工信息(PrintEmployeeInfo)
6. 创建“Employee”类的对象实例,并演示属性和方法的使用。
7. 定义一个名为“Manager”的类,继承自“Employee”类,并添加以下属性和方法:
- 属性:部门(Department)
- 方法:打印经理信息(PrintManagerInfo)
8. 创建“Manager”类的对象实例,并演示属性和方法的使用。
9. 使用多态演示不同对象间的动态类型转换。
五、实验结果与分析
1. 创建“Person”类和对象实例,并演示属性和方法的使用。
```csharp
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string Gender { get; set; }
public void PrintInfo()
{
Console.WriteLine($"Name: {Name}, Age: {Age}, Gender: {Gender}");
}
}
class Program
{
static void Main(string[] args)
{
Person person = new Person
{
Name = "Alice",
Age = 25,
Gender = "Female"
};
person.PrintInfo();
}
}
```
2. 创建“Student”类,继承自“Person”类,并演示属性和方法的使用。
```csharp
class Student : Person
{
public string StudentID { get; set; }
public void PrintStudentInfo()
{
Console.WriteLine($"Name: {Name}, Age: {Age}, Gender: {Gender}, StudentID: {StudentID}");
}
}
class Program
{
static void Main(string[] args)
{
Student student = new Student
{
Name = "Bob",
Age = 20,
Gender = "Male",
StudentID = "S12345"
};
student.PrintStudentInfo();
}
}
```
3. 创建“Employee”类,继承自“Person”类,并演示属性和方法的使用。
```csharp
class Employee : Person
{
public string EmployeeID { get; set; }
public string Position { get; set; }
public void PrintEmployeeInfo()
{
Console.WriteLine($"Name: {Name}, Age: {Age}, Gender: {Gender}, EmployeeID: {EmployeeID}, Position: {Position}");
}
}
class Program
{
static void Main(string[] args)
{
Employee employee = new Employee
{
Name = "Charlie",
Age = 30,
Gender = "Male",
EmployeeID = "E54321",
Position = "Developer"
};
employee.PrintEmployeeInfo();
}
}
```
4. 创建“Manager”类,继承自“Employee”类,并演示属性和方法的使用。
```csharp
class Manager : Employee
public string Department { get; set; }
public void PrintManagerInfo()
{
Console.WriteLine($"Name: {Name}, Age: {Age}, Gender: {Gender}, EmployeeID: {EmployeeID}, Position: {Position}, Department: {Department}");
}
}
class Program
{
static void Main(string[] args)
{
Manager manager = new Manager
{
Name = "David",
Age = 40,
Gender = "Male",
EmployeeID = "M98765",
Position = "Manager",
Department = "IT"
};
manager.PrintManagerInfo();
}
```
5. 使用多态演示不同对象间的动态类型转换。
```csharp
class Program
{
static void Main(string[] args)
{
Person person1 = new Person { Name = "Alice", Age = 25, Gender = "Female" };
Person person2 = new Student { Name = "Bob", Age = 20, Gender = "Male", StudentID = "S12345" };
Person person3 = new Employee { Name = "Charlie", Age = 30, Gender = "Male", EmployeeID = "E54321", Position = "Developer" };
Person person4 = new Manager { Name = "David", Age = 40, Gender = "Male", EmployeeID = "M98765", Position = "Manager", Department = "IT" };
PrintInfo(person1);
PrintInfo(person2);
PrintInfo(person3);
PrintInfo(person4);
}
static void PrintInfo(Person person)
{
Console.WriteLine($"Name: {}, Age: {person.Age}, Gender: {person.Gender}");
}
}
```
通过本次实验,我们对面向对象编程有了更深入的理解,掌握了面向对象编程的基本概念和常用操作。
在实际开发中,面向对象编程可以帮助我们更好地组织代码,提高代码的可读性和可维护性。