您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 实验二-Java面向对象编程
实验二Java面向对象编程一、实验目的1、掌握Java开发环境的建立和测试方法2、熟悉Java程序的构造3、掌握Java程序的编辑、编译以及运行方法二、预备知识1.JDK的安装设置:JDK/JRE/JVM;2.Eclipse集成开发环境的绿色安装;3.掌握Java语言的基本知识(Java类文件布局、程序入口main()函数、数组、条件语句、循环语句、运算符);4.简单的错误调试。三、实验描述1.实验类型:设计2.实验学时:2学时3.实验内容:1项(参照四)四、实验步骤(1)检查所用的计算机系统:1.确认是否已安装JDK,并确认系统的环境变量设置;2.确认是否已绿色安装Eclipse集成开发环境。(2)实验内容:设计Java类文件,并作简单测试具体要求:1.创建项目:BankProject;2.创建Account类:·向Account类中添加私有实例变量balance,用于维护客户银行帐户的存款额;·添加有一个参数的公有构造方法:initBalance,用于初始化帐户存款额;·添加一个公有方法:deposit(doubleamt),用于向帐户存钱,返回值是boolean型;·添加一个公有方法:withdraw(doubleamt),用于从帐户取钱,需要根据帐户的实际余额做判断分析,返回值是boolean型;·添加一个公有方法:getBalance(),用于返回balance的值,返回值是double型;·该类文件位于包:com.mybank.domain。3.创建Customer类:·位于包:com.mybank.domain中;·向Customer类添加三个实例变量:firstName,lastName,account(Account对象);·添加一个公有构造方法:两个形式参数firstName,lastname,用于初始化客户姓名;·添加getFirstName方法:该方法返回客户的firstName实例变量;·添加getLastName方法:该方法返回客户的lastName实例变量;·添加getAccount方法:该方法返回客户的account实例变量;·添加setAccount方法:该方法有一个形式参数(即Account对象),用于初始化account;·重写toString()方法,修改客户名字的输出方式。4.创建Bank类:·位于包:com.mybank.domain中;·向Bank类添加两个实例变量:customers(Customer对象数组,长度为10)和numberOfCustomers(记录customers数组索引的一个整数)·添加一个无参的公有构造方法:用于初始化customers数组和customers数组个数;·添加addCustomer方法:该方法有两个形式参数(即firstName,lastName),数组的下标通过实例变量numberOfCustomers实现递增,同时将实例化出来的Customer对象存储到customers数组中;·添加getNumberOfCustomers方法:该方法返回numberOfCustomers实例变量;·添加getCustomer方法:根据传进来的数组下标返回指定下标的Customers对象。5.创建TestBanking类,该类有程序入口main()函数:·该类文件位于包:com.mybank.test·要求创建Customer对象,设置它的账户并开户500元,然后通过Customer对象获得Account对象的实例,然后取款150元,存款22.50元,再取款47.62,最后要求输出账户余额;·用for循环遍历银行类的Customer数组,并打印输出客户姓名。五、实验要求及总结1.结合上课内容,对上述程序先阅读,然后上机并调试程序,并对实验结果写出你自己的分析结论。2.整理上机步骤,总结经验和体会。3.完成实验报告和上交程序。实验结果:初始化账户500元,存500元,取800元,打印账户信息。Account.java:packagecom.mybank.domain;importcom.mybank.test.*;publicclassAccount{//创建Account类privatedoublebalance;publicvoidinitBalance(doublebalance){this.balance=balance;}publicbooleandeposit(doubleamt){//deposit(doubleamt),用于向帐户存钱,返回值是boolean型;if(amt0){balance=balance+amt;returntrue;}else{returnfalse;}}publicbooleanwithdraw(doubleamt){//withdraw(doubleamt),用于从帐户取钱if(balanceamt){balance=balance-amt;returntrue;}else{returnfalse;}}publicdoublegetBalance(){//getBalance(),用于返回balance的值returnbalance;}}Customer.java:packagecom.mybank.domain;importcom.mybank.test.*;publicclassCustomer{//创建Customer类privateStringfirstname;privateStringlastname;privateAccountaccount=newAccount();//三个实例变量:firstName,lastName,account(Account对象);publicCustomer(Stringfirstname,Stringlastname){this.firstname=firstname;this.lastname=lastname;}publicStringgetFirstName(){//getFirstName方法:该方法返回客户的firstName实例变量;returnfirstname;}publicStringgetLastName(){//getLastName方法:该方法返回客户的lastName实例变量;returnlastname;}publicAccountgetAccount(){//getAccount方法:该方法返回客户的account实例变量;returnaccount;}publicvoidsetaccount(Accountaccount){//setAccount方法:该方法有一个形式参数(即Account对象),用于初始化account;this.account=account;}publicStringtoString(){//重写toString()方法return姓名:+firstname+lastname;}}Bank.java:packagecom.mybank.domain;importcom.mybank.test.*;publicclassBank{//创建Bank类privateCustomercustomer[];privateintnumberofCustomer;publicBank(){customer=newCustomer[10];numberofCustomer=0;}publicvoidaddCustomer(Customeraa){//addCustomer方法customer[numberofCustomer++]=aa;}publicintgetnumberofCustomer(){//getNumberOfCustomers方法returnnumberofCustomer;}publicCustomergetCustomer(intnumber){//getCustomer方法:根据传进来的数组下标返回指定下标的Customers对象。returncustomer[number];}}TestBanking.java:packagecom.mybank.test;importcom.mybank.domain.*;importjava.util.*;publicclassTestBanking{//创建TestBanking类publicstaticvoidmain(String[]args){Scannerread=newScanner(System.in);intt=0;outer://outer循环for(;;){/*获取,注册客户信息*/inti;Stringa,b;System.out.println(inputyourfirstnameandlastname:);a=read.next();b=read.next();Bankbank=newBank();booleanflag;doubleleft=0;Customercustomer_1=newCustomer(a,b);bank.addCustomer(customer_1);customer_1.getAccount().initBalance(500);inner://inner循环for(;;){/*客户具体操作*/System.out.println(1:deposit+money2:withdraw+money3:donothing(inputyouchoice:)4:exit);intj=0;doublenumber=0;j=read.nextInt();//number=read.nextDouble();switch(j){case2:System.out.println(inputthenumber:);number=read.nextDouble();flag=customer_1.getAccount().withdraw(number);left=customer_1.getAccount().getBalance();System.out.println(余额:+left);break;case1:System.out.println(inputthenumber:);number=read.nextDouble();flag=customer_1.getAccount().deposit(number);left=customer_1.getAccount().getBalance();System.out.println(余额:+left);break;case3:breakinner;case4:breakouter;}}if(t==10){breakouter;}/*用for循环遍历银行类的Customer数组,并打印输出客户姓名*/for(i=0;i=t;i++){System.out.println(bank.getCustomer(i));left=bank.getCustomer(i).getAccount().getBalance();System.out.println(余额:+left);}t++;}}}
本文标题:实验二-Java面向对象编程
链接地址:https://www.777doc.com/doc-5868549 .html