2023年实验二面向对象程序设计_第1页
2023年实验二面向对象程序设计_第2页
2023年实验二面向对象程序设计_第3页
2023年实验二面向对象程序设计_第4页
2023年实验二面向对象程序设计_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验二、面向对象程序设计2.1C#一、实验目的1.理解C#语言是如何体现面向对象编程基本思想。2.掌握类对象的定义。3.了解类的封装方法,以及如何创建类和对象。4.了解成员变量和成员方法的特性。5.掌握静态成员的用法。二、实验规定1.分析程序,上机验证结果。2.写出程序,并调试程序,要给出测试数据和实验结果。3.整理上机环节,总结经验和体会。4.完毕实验日记和上交程序。三、实验内容题目一:程序分析(1)分析下面两个程序,拟定那个程序好,说明理由。程序规定:定义一个圆类,计算圆的面积和周长。 程序1:publicclasscircle{publicstaticvoidMain(){doubleradium,delimeter,square;constdoublepai=3.1415926;radium=Convert.ToInt32(Console.ReadLine());delimeter=2*pai*radium;square=pai*pai*radium;Console.WriteLine("delimeter={0},square={1}",delimeter,square);Console.ReadLine();}}ﻩ程序2:publicclasscircle{doubledelimeter,square;constdoublepai=3.1415926;publicvoidcalculate(doublerad){delimeter=2*pai*rad;square=pai*pai*rad;Console.WriteLine("delimeter={0},square={1}",delimeter,square);}publicstaticvoidMain(){doubleradium;circlecir=newcircle();radium=Convert.ToInt32(Console.ReadLine());cir.calculate(radium);Console.ReadLine();}}(2)分析程序,写出程序的运营结果,并上机进行验证。UsingSystem;publicclassstudents{stringid,name;intage;publicstudents(stringid,stringname,intage){this.id=id;this.name=name;this.age=age;}publicvoidDisplay(){Console.WriteLine("id={0},name={1},age={2}",id,name,age);}publicstaticvoidMain(){//stringid,name;//intage;studentsstu=newstudents("0001","zhangsan",16);stu.Display();Console.ReadLine();}}(3)分析程序,写出程序的运营结果,并上机进行验证。publicclassDate{privateintYear,Month,Day;publicDate(intYear,intMonth,intDay){this.Year=Year;this.Month=Month;this.Day=Day;}publicDate(System.DateTimedt){Year=dt.Year;Month=dt.Month;Day=dt.Day;}publicvoidDisplayDate(){Console.WriteLine("{0}年{1}月{2}日",Year,Month,Day);}}publicclassTester{publicstaticvoidMain(){System.DateTimecurrentTime=System.DateTime.Now;Datedt=newDate(2023,7,18);dt.DisplayDate();Datedt2=newDate(currentTime);dt2.DisplayDate();Console.ReadLine();}}题目二:程序编写实现一个包含类属性方法的简朴加法程序,并能显示结果。实现一个Person类,规定:属性包含姓名、年龄、身份证号、工作、工资等,并显示各属性的值。2.2C#面向对象程序设计(二)一、实验目的掌握构造函数和析构函数的含义与作用、定义方式和实现,可以根据规定对的定义和重载构造函数。可以根据给定的规定定义类并实现类的成员函数。理解类的成员的访问控制的含义,公有、私有和保护成员的区别。掌握参数传递的用法。掌握属性的作用和使用。二、实验规定1.分析程序,上机验证结果。2.写出程序,并调试程序,要给出测试数据和实验结果。3.整理上机环节,总结经验和体会。4.完毕实验日记和上交程序。三、实验内容题目一:程序分析分析程序,写出程序的运营结果,并上机进行验证,然后回答后面问题。publicclassBankAccount{staticinttotalAccountNumber=0;stringBankAccountId;doubleinitialDepositAmount=0.00;publicBankAccount(stringmyId){this.BankAccountId=myId;this.initialDepositAmount=0.00;totalAccountNumber++;}publicvoiddisplayid(){Console.WriteLine("mbaid={0},initialDepositAmount={1}",this.BankAccountId,this.initialDepositAmount);}publicstaticvoiddisplay(){Console.WriteLine("totalAccountNumber={0}",totalAccountNumber);}}publicclassTester{publicstaticvoidMain(){BankAccountmba=newBankAccount("37000001");BankAccountmba2=newBankAccount("3700002");BankAccountmba3=newBankAccount("");BankAccountmba4=newBankAccount("3700004");//Console.WriteLine("mba2ID={0}",mba2.BankAccountId);mba2.displayid();BankAccount.display();Console.ReadLine();}}请回答问题:(1)按你自己的算法修改以上程序,比如可只输出生成的账户数。(2)把注释去掉后会如何,为什么?(3)为什么display用类名直接引用,可以用对象来引用么?尝试输出结果。(4)类的静态变量和非静态变量的引用区别。判断一下语句的对的性:静态方法只能使用静态变量,不能使用实例变量。由于对象实例化之前,实例变量不可用。这个观点真确么?()类的静态变量只有一个版本,所有实例对象引用的都是同一个版本。()对象实例化后,每个实例变量都被制作了一个副本,它们之间互不影响。()题目二:程序编写编写一个传值调用的程序。程序功能规定:程序一方面给整型变量x和y赋初值3,5,然后使用传值调用方式调用方法对x和y做乘方并及输出x和y的乘方值,最后输出x和y得值。再将此方法给为对象调用加ref修饰查看输出结果差异。【思考题】1.方法的参数传递有哪些方式?区别时什么?2.什么是构造方法。2.32.1C#面向对象程序设计(三)一、实验目的1.掌握继承的工作机制和意义。2.掌握派生类的定义方法和实现。3.掌握base关键字的使用。4.编写体现类的继承性(成员变量,成员方法,成员变量隐藏)的程序。二、实验规定1.写出程序,并调试程序,要给出测试数据和实验结果。2.整理上机环节,总结经验和体会。3.完毕实验日记和上交程序。三、实验内容1.进一步理解继承的含义新类可从现有的类中产生,并保存现有类的成员变量和方法并可根据需要对它们加以修改。新类还可添加新的变量和方法。这种现象就称为类的继承。当建立一个新类时,不必写出所有成员变量和成员方法。只要简朴地声明这个类是从一个已定义的类继承下来的,就可以引用被继承类的所有成员。被继承的类称为父类或超类(superclass),这个新类称为子类。2.进一步理解继承的意义C#提供了一个庞大的类库让开发人员继承和使用。设计这些类是出于公用的目的,因此,很少有某个类恰恰满足你的需要。你必须设计自己的能解决实际问题的类,假如你设计的这个类仅仅实现了继承,则和父类毫无两样。所以,通常要对子类进行扩展,即添加新的属性和方法。这使得子类要比父类大,但更具特殊性,代表着一组更具体的对象。继承的意义就在于此。题目一:类的继承和基类构造方法的应用程序功能规定如下:编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班级和成绩,教师数据有编号、姓名、职称和部门。规定将编号、姓名

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论