实验项目名称:类与对象
一、实验目的和要求
1.C#程序编写的过程和基本要求;
2.面向对象的程序设计思维(基本思想);
3.类的组成、声明和定义;
4.对象的定义(类的实例化);
5.理解字段和属性,属性的定义以及相对应的访问修饰符;
6.方法以及方法的重载;
7.构造函数的使用;
8.类的继承(重点);
9.类的多态性(难点)
实例化类和实例化对象二、实验内容和过程
1.上机实验1:
问题描述:
编写一个学生类,其中包括3个数据成员:学号、姓名、年龄,以及若干成员函数。
同时编写主函数使用这个类,实现对的赋值和输出。要求:使用成员函数实现对数据的输出(显示学生的相关信息);使用构造函数实现对数据的输入(可以重载多个构造函数并使用)。
提示:三个成员变量使用什么访问控制符?提高要求:将三个成员变量定义为属性,并且学号和姓名只能读不能写,年龄可写,但是要符合18—26 之间。
解决方法说明:
①在学生类中,定义学号、姓名、年龄相关的字段以及属性;
②编写带三个参数的构造函数,实现对学生学号、姓名、年龄数据的输入;
③重载构造函数,带两个参数,实现对学生学号、姓名的输入;
④编写成员函数print(),实现对数据的输出;
⑤编写主函数,使用这个类,实现对的赋值和输出;
●实例化学生类;
●使用对象.print()方法。
关键代码及注释:
class student
{
protected string stuNum;
protected string stuName;
protectedintstuAge;
public string StuNum//定义属性:学号
{
get
{
returnstuNum;
}
}
public string StuName //定义属性:姓名
{
get
{
returnstuName;
}
}
public intStuAge//定义属性:年龄
{
get
{
returnstuAge;
}
set
{
if (value >= 18 || value <= 26) //限制年龄
{
stuAge = value;
}
}
}
public student(string number, string name, int age) //构造函数1,实现对数据的输入
{
stuNum = number;
stuName = name;
stuAge = age;
Console.W riteLine("请输入学号");
stuNum = Console.ReadLine();
Console.W riteLine("请输入姓名");
stuName = Console.ReadLine();
Console.W riteLine("请输入年龄");
stuAge = Convert.T oInt32(Console.ReadLine());
}
public student(string number, string name) //构造函数2,实现对数据的输入
{
stuNum = number;
stuName = name;
Console.W riteLine("请输入学号");
stuNum = Console.ReadLine();
Console.W riteLine("请输入姓名");
stuName = Console.ReadLine();
}
public void print() //print方法,输出学生信息
{
if (stuAge != 0)
{
Console.W riteLine(stuName + "的学号是:" + stuNum + ",年龄是:" + stuAge); Console.ReadLine();
}
else
{
Console.W riteLine(stuName + "的学号是:" + stuNum);
Console.ReadLine();
}
}
public static void Main() //主函数,使用学生类
{
student A = new student("209", "A", 18);
A.print();
student B = new student("11", "B");
B.print();
}
}
出错调试说明:排除错误的数据类型数据的输入,没有出错。
运行结果说明(附运行界面图)
图1 实验1运行结果图
2.上机实验2
问题描述:
①定义一个电话Telephone类,有两个公有字段numbers (号码)和attributi(归
属区),还有一个拔号dial()和响铃ring()方法;
②创建一个Telephone 类的子类Mobilephone,它继承父类的两个字段和方法,
新增一个私有字段brand(品牌)以及一个方法playmp3();
③创建以下两个类并实例化,调用相应的方法(方法内容用Messagebox显示提示
即可,比如点击电话的“来电”按钮,显示“你的电话响了”之类的提示)。解决方法说明:
①创建基类Telephone类,在类里定义两个字段numbers (号码)和attributi(归
属区);
②声明虚成员拔号dial()方法,声明响铃ring()方法,方法内都用引用
MessageBox.Show()方法;
③创建子类Mobilephone类继承于Telephone类,定义字段brand(品牌)以及一
个方法playmp3(),方法内引用MessageBox.Show()方法;
④子类Mobilephone类用override重写拔号dial()方法,使用关键字base访问基
类的dial()方法;
⑤界面设计;
⑥实例化Telephone类和Mobilephone类;
⑦编写事件代码,调用相应的方法以及在MessageBox.Show()方法里的“内容”
这一参数里调用相应的字段;
⑧调试;
⑨把步骤④里的override关键字改成new关键字;
⑩调试并与步骤⑧的结果比较。
程序界面设计:
图2 实验2接界面设计图
关键代码及注释:
public partial class Form1 : Form
{
Telephone telephone = new T elephone(); //实例化T elephone类Mobilephonemobilephone = new Mobilephone();//实例化Mobilephone类
public Form1()
{
InitializeComponent();
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论