您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 《面向对象程序设计》实验报告Javapractice
《面向对象程序设计》实验指导及报告书/学年第学期姓名:______________学号:______________班级:______________指导教师:______________计算机科学与工程学院2011实验一创建简单的JAVA应用程序一、实验目的1.了解JAVA基本程序结构;2.熟悉命令行方式下JAVA应用程序编写、编译、调试和执行过程;3.了解NetBeans集成开发环境的功能和特点。二、实验内容1.安装并配置JDK开发工具包2.调试并运行下列Hello,world程序,并写出运行结果:(各文件统一按照注释行上的文件名进行命名)//HelloJava1.javapublicclassHelloJava1{publicstaticvoidmain(String[]args){System.out.println(“Hello!\nWorld.”);}}存盘后(假设存在d:\)(1)编译d:\javacHelloJava1.java(2)由虚拟机解释执行d:\javaHelloJava1运行结果(注意,按照屏幕输出格式写):(3)程序不以HelloJava1.java命名,编译能通过吗?为什么?23.ATM综合实验1)、创建BankPrj项目,然后将预先提供的下述Account类复制到该项目的原包。/**Account.java**CreatedonNovember9,2005,12:46AM**Tochangethistemplate,chooseTools|TemplateManager*andopenthetemplateintheeditor.*//****@authorstudent*/publicclassAccount{privatedoublebalance;/**CreatesanewinstanceofAccount*/publicAccount(doubleinitBalance){balance=initBalance;}publicdoublegetBalance(){returnbalance;}publicvoiddeposit(doubleamt){balance=balance+amt;}publicvoidwithdraw(doubleamt){if(balance=amt){balance=balance-amt;}}}32)、在BankPrj项目中创建TestAccount类,在该类中添加main方法,创建一个初始余额为100的Account对象。该方法先向Account对象存入50,然后又支出147。昀后该方法必须将Account对象的余额输出给标准的输出流,打印输出结果。编译、运行程序,输出内容:Finalaccountbalanceis:3.0完成该类的编写如下:4三、实验小结四、教师评分实验预习20%实验过程20%实验结果30%实验报告30%总成绩5实验二面向对象基础编程一、实验目的1.掌握Java基本数据类型和表达式的特点和用法。2.熟练掌握单分支、双分支、多分支选择语句的格式与功能,能正确选取选择语句来设计选择结构的程序。3.通过ATM综合程序的完善,理解封装的含义,以及在面向对象编程中的作用。二、预习内容1.Java基本数据类型有哪几种?2.从存储角度看Java将变量的类型分为基本数据类型和引用类型,它们两者有何区别(举例说明)?3.在面向对象程序设计思想中封装的概念是什么,程序设计过程中起到什么作用,如何实现。6三、实验内容1.调试并运行下面程序,写出运行结果:publicclassDog{privateintweight;publicDog(){weight=42;}publicintgetWeight(){returnweight;}publicvoidsetWeight(intnewWeight){weight=newWeight;}}publicclassTest{publicstaticvoidmain(String[]args){Dogd=newDog();d.setWeight(30);System.out.println(Thedoghasaweightof+d.getWeight());}}程序运行结果:2、ATM综合程序,理解封装的含义。1)、修改实验一中的Account类。为Account类添加balance实例变量。添加构造器,将balance实例变量设置为传递到该构造器的初始余额参数。72)、按照如下要求,创建测试程序TestAccount2在main方法中声明一个名为acct类型为Account的变量,在同一个声明中还要通过向构造器传递100.00作为初始余额,将变量acct初始化为一个新的Account实例。使用加法运算符向帐户对象余额添加47。使用减法运算符从帐户对象余额中减去150。使用System.Out.println方法将结余显示到标准输出流。编译、运行TestAccount2输出:Finalaccountbalanceis-3.083、进一步完善ATM程序探究封装含义1)、修改Account类将balance实例从public改为private.添加存储一定金额(属于double类型)deposit方法,并将这一金额添加到余额中。将新余额保存在实例变量中。添加支取一定金额的withdraw方法,并将该金额从余额中减去,将新余额保存在实例变量中。2)、修改TestAccount类,使用deposit和withdraw方法增加和支取金额。3)、编译运行TestAccount程序。9四、实验小结谈谈本次实验的心得、体会?五、教师评分实验预习20%实验过程20%实验结果30%实验报告30%总成绩10实验三类和对象编程一、实验目的1.了解类之间的关系,能区分关联关系中的聚合和组合的区别;2.学习并掌握使用多个类对象构建一复杂系统。二、实验内容1.调试下列代码,写出运行结果。publicclassExample{publicstaticvoidchange(Stringstr,char[]ch){str=“testok”;ch[0]=‘g’;}publicstaticvoidmain(String[]args){Stringstr=“good”;char[]ch={‘a’,’b’,’c’};change(str,ch);System.out.print(str+“and“);System.out.println(ch);}}运行结果是testokandgbc吗?为什么?请分析原因:2.调试下列代码,写出运行结果,分析程序的功能。classDeleteStr{publicstaticStringDel(Stringorigin,Stringsmod){if(origin!=null&&smod!=null)11{intindex=origin.indexOf(smod);while(index!=-1){Stringret=origin.substring(0,index);ret=ret+origin.substring(index+smod.length());origin=ret;index=origin.indexOf(smod);}returnorigin;}elsereturnnull;}}publicclassProgram{publicstaticvoidmain(String[]args){Stringstr=hellxyzo,wxyzoxyzrldxyz.;Stringsmod=xyz;StringnewString;newString=DeleteStr.Del(str,smod);System.out.println(newString);}}运行结果:程序完成什么样功能?3、综合ATM实验12创建一个应用程序,实现下面的UML图。Step1:实现银行帐户Account类:1)私有的属性balance:用于保存帐户中的当前余额。2)公有带参构造方法:对balance属性进行了初始化。3)公有方法getBalance:用于取得当前帐户余额。4)公有方法deposit:用于把数量为amount的现金存储到当前帐户中。5)公有方法withdraw:用于从当前帐户中提取数量为amount的现金。Step2:实现Customer类UML图中,Account类和Customer类之间的关系是聚合,即Account类的对象作为Customer类的成员,图中箭头上方的是对象名,两端的1表示一对一关系,即一个Customer类的对象含有一个Account类的类对象作为成员。1)私有属性:firstName,lastName和account2)公有的带参构造方法:用于对firstName,lastName属性进行了初始化。3)公有的成员方法getFirstName:返回firstName的属性4)公有的成员方法getLastName:返回lastName的属性。5)公有的成员方法setAccount:对对象成员account进行设置6)公有的成员方法getAccount:取得对象成员account的值Step3:13实现Bank类bank对象只是简单地记住它和它的客户之间的联系。通过一个Customer数组来实现这个一对多的聚合关系。还需要设置一个整型的属性来存放当前银行中客户的数目。1)私有属性:customers:一个Customer类的对象数组。numberOfCustomers:银行当前客户的数量,每增加一个客户,其值加一。2)公有的构造方法:用适当的数组长度对customers对象数组进行初始化。3)公有的成员方法addCustomer:通过参数(firstname,lastname)创建一个新的Customer对象,并把它存放在customers对象数组中。同时它必须增加numberOfCustomers的值。4)公有的成员方法getNumOfCustomers:返回numberOfCustomers属性的值。5)公有的成员方法getCustomer成员方法:返回对象数组中指定下标为index的customer对象。Step4:编写测试程序如下publicclassTesting{publicstaticvoidmain(String[]args){Bankbank=newBank();bank.addCustomer(Simms,Jane);bank.addCustomer(Bryant,Owen);bank.addCustomer(Soley,Tim);bank.addCustomer(Soley,Maria);bank.getCustomer(0).setAccount(newAccount(500));bank.getCustomer(1).setAccount(newAccount(500));bank.getCustomer(2).setAccount(newAccount(500));bank.getCustomer(3).setAccount(newAccount(500));for(inti=0;ibank.getNumOfCustomers();i++){Customerc=bank.getCustomer(i);System.out.println(Customer[+(i+1)+]is+c.getFirstName()+,+c.getLastName());}System.out.println(\nTestingCustomer'sAccount...);Customerc=bank.getCustomer(0);14Accountacct=c.getAccount();System.out.println(Withdraw150.00);acct.withdraw(150);System.out.println(Deposit22.50);acct.deposit
本文标题:《面向对象程序设计》实验报告Javapractice
链接地址:https://www.777doc.com/doc-4934856 .html