实验二 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(double amt),用于向帐户存钱,返回值是boolean型; ·添加一个公有方法:withdraw(double amt),用于从帐户取钱,需要根据帐户的实际余额做判断分析,返回值是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:
package com.mybank.domain; import com.mybank.test.*;
public class Account { // 创建Account类 private double balance;
public void initBalance(double balance){ this.balance=balance; }
public boolean deposit(double amt){ // deposit(double amt),用于向帐户存钱,返回值是boolean型; if(amt>0){ balance=balance+amt; return true; } else{ return false; } }
public boolean withdraw(double amt){ //withdraw(double amt),用于从帐户取钱 if(balance>amt){ balance=balance-amt; return true; } else{ return false; } }
public double getBalance(){ //getBalance(),用于返回balance的值 return balance; } }
Customer.java:
package com.mybank.domain; import com.mybank.test.*;
public class Customer {//创建Customer类 private String firstname; private String lastname;
private Account account=new Account();//三个实例变量:firstName,lastName,account(Account对象);
public Customer(String firstname,String lastname){
this.firstname=firstname; this.lastname=lastname; }
public String getFirstName(){// getFirstName方法:该方法返回客户的firstName实例变量; return firstname; }
public String getLastName(){// getLastName方法:该方法返回客户的lastName实例变量; return lastname; }
public Account getAccount(){// getAccount方法:该方法返回客户的account实例变量; return account; }
public void setaccount(Account account){//setAccount方法:该方法有一个形式参数(即Account对象),用于初始化account; this.account=account; }
public String toString(){//重写toString() 方法 return \姓名:\} }
Bank.java:
package com.mybank.domain; import com.mybank.test.*;
public class Bank {// 创建Bank类 private Customer customer[]; private int numberofCustomer; public Bank() { customer = new Customer[10]; numberofCustomer = 0; } public void addCustomer(Customer aa) {// addCustomer方法 customer[numberofCustomer++] = aa; } public int getnumberofCustomer() {// getNumberOfCustomers方法 return numberofCustomer; }

