类和对象
6.1实验目的和要求
1.熟悉面向对象的基本概念。
2.进一步掌握类的各种成员的使用方法。
3.掌握对象之间通信的基本方法。
6.2实验内容与步骤
题目1点和直线类
(1)创建c#控制台应用程序l6_1。
(2)在程序中新建一个点类czpoint,为其定义两个double类型的私有字段成员x和y,分别表示点的横坐标和纵坐标。
(3)为czpoint定义两个公有属性x、y,分别用于封装对字段x和y的读写访问。
(4)定义czpoint的带参构造函数,在其中对字段x和y进行初始化。参考源代码如下:
publicczpoint(doublex,doubley)
{
this.x=x;this.y=y;
}
(5)为czpoint定义公有方法move,用于按指定的水平距离和垂直距离移动坐标点。参考源代码如下:
publicvoidmove(doubledx,doubledy)
{x+=dx;y+=dy;
}
(6)对czpoint类进行相等和不相等操作符重载。两个坐标点相等,是指它们的横坐标和纵坐标都相等。
(7)在程序主方法中创建坐标为(1,2)和(3,3)的两个坐标点对象,判断它们是否相等;而后将第一个坐标点移动到第二个坐标点上,再判断它们是否相等。
(8)在程序中再新建一个直线类czline,为其定义两个double类型的字段成员a和b,分别表示直线的斜率和截距;再定义字段的封装属性a和b,但它们都是只读的。
(9)为czline定义两个构造函数,一个根据斜率和截距来创建直线对象,另一个则根据两个czpoint对象来构造直线对象(直线穿过这两个点)。后一个的参考源代码如下:
publicczline(czpointp1,czpointp2)
{
if(p1==p2)
thrownewargumentexception(\两点不能相同\);
this.a=(p2.y-p1.y)/(p2.x-p1.x);this.b=p1.y-this.a*p1.x;}
(10)为czline定义公有方法move,但它只用于平移直线,而不改变直线的斜率。再为其定义公有方法contains,用于判断某点是否在该直线上。
(11)类似的,为czline重载相等和不等操作符。
(12)最后在程序主方法中采用不同的方式创建直线对象,并编译运行程序,
测试它们的使用效果。
程序的整体结构如下:
个人编程:源代码:
usingsystem;
usingsystem.collections.generic;usingsystem.linq;usingsystem.text;
namespacel6_1{
classprogram{
staticvoidmain(string[]args){
(未完,全文共3437字,当前显示1117字)
(请认真阅读下面的提示信息)