接口部分源代码.docx
- 文档编号:4478630
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:9
- 大小:16.52KB
接口部分源代码.docx
《接口部分源代码.docx》由会员分享,可在线阅读,更多相关《接口部分源代码.docx(9页珍藏版)》请在冰豆网上搜索。
接口部分源代码
接口部分源代码
分析实现接口的程序文件
分析以下实现接口的程序文件并回答问题:
●本程序中的接口包含方法的构成是哪些;
●实现接口的类包含哪些元素?
●类实现接口方法的参数如何变换实现的?
●给出程序的输出结果。
代码如下:
usingSystem;
publicinterfaceIComparable
{
intCompareTo(IComparablecomp);
}
publicclassTimeSpan:
IComparable
{
privateuinttotalSeconds;
publicTimeSpan()
{
totalSeconds=0;
}
publicTimeSpan(uintinitialSeconds)
{
totalSeconds=initialSeconds;
}
publicuintSeconds55
{
get
{
returntotalSeconds;
}
set
{
totalSeconds=value;
}
}
publicintCompareTo(IComparablecomp)
{
TimeSpancompareTime=(TimeSpan)comp;
if(totalSeconds>compareTime.Seconds)
return1;
elseif(compareTime.Seconds==totalSeconds)
return0;
else
return-1;
}
}
classTester
{
publicstaticvoidMain()
{
TimeSpanmyTime=newTimeSpan(3450);
TimeSpanworldRecord=newTimeSpan(1239);
if(myTime.CompareTo(worldRecord)<0)
Console.WriteLine("Mytimeisbelowtheworldrecord");
elseif(myTime.CompareTo(worldRecord)==0)
Console.WriteLine("Mytimeisthesameastheworldrecord");
else
Console.WriteLine("Ispentmoretimethantheworldrecordholder");
}
}56
三、覆盖虚接口程序
以下程序组合了多种功能,请参考如下代码解释并回答问题。
●该程序包含的类的个数和关系?
●类对接口的实现有何区别?
●第一个类中无参数构造函数是否起作用,是否可以删除不用?
●类中的属性在哪里被应用到?
●第一个类中哪些成员被继承,列出所有?
●第二个类中构造方法成员如何实现,有何意义?
可以去掉么?
●第二个类覆盖第一个类中接口虚方法,程序体现了什么功能区别?
●Sorter类有何作用?
你能否根据Sorter类写一个十个数比较大小的冒泡法程序?
●Sorter类中for(inti=0;swapped;i++)和//for(inti=0;i ●你知道Console.WriteLine("runoutter");和Console.WriteLine("runinner");在程序运行过程中可以起到什么作用? ●将Main方法中的TimeSpan对象语句(注释掉的5行)和TimeSpanAdvanced对象语句选择轮流注释,体验排序结果的异同。 ●语句Sorter.BubbleSortAscending(raceTimes);前后的foreach语句功能区别。 usingSystem; publicinterfaceIComparable { intCompareTo(IComparablecomp); } publicclassTimeSpan: IComparable { privateuinttotalSeconds; publicTimeSpan() { totalSeconds=0; } publicTimeSpan(uintinitialSeconds) { totalSeconds=initialSeconds; } publicuintSeconds { get {57 returntotalSeconds; } set { totalSeconds=value; } } publicvirtualintCompareTo(IComparablecomp) { TimeSpancompareTime=(TimeSpan)comp; if(totalSeconds>compareTime.Seconds) return1; elseif(compareTime.Seconds==totalSeconds) return0; else return-1; } } publicclassTimeSpanAdvanced: TimeSpan { publicTimeSpanAdvanced(uintinitialSeconds): base(initialSeconds) { // } publicoverrideintCompareTo(IComparablecomp) { TimeSpancompareTime=(TimeSpan)comp; if(base.Seconds>compareTime.Seconds) { if(base.Seconds>(compareTime.Seconds+50)) return2; else return1; } elseif(base.Seconds { if(base.Seconds<(compareTime.Seconds-50)) return-2; else return-1;58 } else return0; } } classSorter { //Sortthecomparableelementsofanarrayinascendingorder publicstaticvoidBubbleSortAscending(IComparable[]bubbles) { boolswapped=true; for(inti=0;swapped;i++) //for(inti=0;i { Console.WriteLine("runoutter"); swapped=false; for(intj=0;j<(bubbles.Length-(i+1));j++) { if(bubbles[j].CompareTo(bubbles[j+1])>0) { Console.WriteLine("runinner"); Swap(j,j+1,bubbles); swapped=true; } } } } //Swaptwoelementsofanarray publicstaticvoidSwap(intfirst,intsecond,IComparable[]arr) { IComparabletemp; temp=arr[first]; arr[first]=arr[second]; arr[second]=temp; } } classTester {59 publicstaticvoidMain() { //TimeSpan[]raceTimes=newTimeSpan[4]; //raceTimes[0]=newTimeSpan(153); //raceTimes[1]=newTimeSpan(165); //raceTimes[2]=newTimeSpan(142); //raceTimes[3]=newTimeSpan(108); TimeSpanAdvanced[]raceTimes=newTimeSpanAdvanced[4]; raceTimes[0]=newTimeSpanAdvanced(153); raceTimes[1]=newTimeSpanAdvanced(165); raceTimes[2]=newTimeSpanAdvanced(142); raceTimes[3]=newTimeSpanAdvanced(108); foreach(TimeSpantimeinraceTimes) { Console.WriteLine(time.Seconds); } Sorter.BubbleSortAscending(raceTimes); Console.WriteLine("Listofsortedtimespans: "); foreach(TimeSpantimeinraceTimes) { Console.WriteLine(time.Seconds); } Console.ReadLine(); } } 四、结构体的使用 1.程序功能要求,创建三个结构体,MyCircle,MyCylinder,MyCone分别表示圆形、圆柱体和圆锥体,MyCircle包含一个int类型的成员r表示半径,MyCylinder和MyCone各自包含一个MyCircel类型的成员表示圆柱体和圆锥体的底面,成员h和volumn(都为整型)分别表示圆柱体和圆锥体的高和体积。 写出结构体和程序的主方法求圆柱体和圆锥体的体积。 structMyCircle { publicintr; } structMyCylinder { publicMyCirclec;60 publicinth; publicintvolumn; } structMyCone { publicMyCirclec; publicinth; publicintvolumn; } publicclassTester { publicstaticvoidMain() { Console.Write("请输入底面半径: "); MyCirclec=newMyCircle(); c.r=int.Parse(Console.ReadLine()); Console.Write("请输入圆柱体高度: "); MyCylindercy=newMyCylinder(); cy.h=int.Parse(Console.ReadLine()); cy.c=c; Console.Write("请输入圆锥体高度: "); MyConeco=newMyCone(); co.h=int.Parse(Console.ReadLine()); co.c=c; //计算圆柱体体积 doublex=Math.PI*cy.c.r*cy.c.r; doubley=x*cy.h; cy.volumn=(int)y; //计算圆锥体体积 doublex2=Math.PI*co.c.r*co.c.r; doubley2=x2*co.h/3; co.volumn=(int)y2; //输出结果 //Console.WriteLine("圆柱体的体积为: ",cy.volumn); Console.Write("圆柱体的体积为: "); Console.Write(cy.volumn); Console.Write("圆锥体的体积为: "); Console.Write(co.volumn); Console.ReadLine(); } } 问题: (1)若取消//Console.WriteLine("圆柱体的体积为: ",cy.volumn);前的注释替代分开输出的写法,看输出结果何变化,分析原因。 61 (2)若将结构体中的变量不加public编译能通过么? 为什么? (3)public的变量在Main中的使用方法。 (4)不用new创建结构体将MyCirclec=newMyCircle();MyCylindercy=newMyCylinder();MyConeco=newMyCone();改成什么样的语句起到同样的效果。 (5)结构体中内嵌结构体实例的应用总结。 (6)和类相比结构体适合什么样的情况。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 接口 部分 源代码
![提示](https://static.bdocx.com/images/bang_tan.gif)