当前位置:范文大全 > 调查报告 > java程序设计实验_java程序设计课程--实验报告-实验06

java程序设计实验_java程序设计课程--实验报告-实验06

时间:2021-11-06 17:07:45 浏览次数:

 《 Java 开发技术》实验报告

 实验序号:实验

 

 06

 

 实验项目名称: 编写类(一)

 学 号

 

 姓 名

 

 专业、班

 实验地点

 

 实

 

 1-316

 

 指导教师

 

 实验时间

 

 2012- 10-24

 一、 实验目的及要求

 掌握编写类的方法

 掌握方法声明的方法

 了解构造方法与其他方法的区别

 理解可见性和作用域的概念

 二、 实验设备(环境)及要求

 PC 机, windows xp,软件环境( jdk1.6,tomcat web 服务器, Eclipse)

 硬件要求: CPU PII 以上, 64M 内存, 100M 硬盘空间。

 软件要求: Windows98/Me/XP/NT/2000 , IE 5 以上。

 开发环境: JDK1.6.0_10, NotePad 或者 EditPlus。

 三、 实验内容与步骤

 1) A Bank Account Class

 文件 Account.java 是一个银行账户类。将该文件保存至本地磁盘目录,并仔细查看该类包含的方法,然后填写该类不完整的语句。注意:不必在本题中测试该程序。

 a. 为方法 toString 补充代码, 该方法返回包含姓名, 账户号码以及账户余额信息的一段字符串。

 为方法 chargeFee 补充代码,从账户中扣去服务费。

 修改 chargeFee 方法,使其返回一个新的账户余额。

 为方法 changeName 补充代码, 该方法有一个参数, 为字符串类型, 能够变更账户的姓名。

 2. 文件 ManageAccounts.java 是一个外壳程序( shell program ),该程序使用上面的 Account 类。将该程序保存至本地磁盘目录,并按照注释补充代码。

 Account.java 源代码如下 ( 红色部分为补充代码 )

 import java.text.NumberFormat;

 public class Account {

 private double balance;

 private String name;

 private long acctNum;

 //---------------------------------------

 //Construtor -- initializes balance, owner, and account number //---------------------------------------

 public Account(double initBal, String owner, long number){

 balance = initBal;

 name = owner;

 acctNum = number;

 }

 //---------------------------------------

 //Checks to see if balance is sufficient for withdrawal.

 //If so, decrenents balance by anount; if not, prints message.

 //---------------------------------------

 public void withdraw(double amount){

 if(balance >= amount)

 balance -= amount;

 else

 System.out.println("Insufficient funds");

 }

 //---------------------------------------

 //Adds deposit amount to balance.

 //---------------------------------------

 public void deposit(double amount){

 balance += amount;

 }

 //---------------------------------------

 //Returns balance.

 //---------------------------------------

 public double getBalance(){

 return balance;

 }

 //---------------------------------------

 //Returns a string containing

 

 the

 

 name, account

 

 number, and balance.

 //---------------------------------------

 public String toString(){

 NumberFormat fmt = NumberFormat.getCurrencyInstance(); return name + "\t" +acctNum + "\t" + fmt.format(balance);

 }

 //---------------------------------------

 //Deducts $10 service fee

 //---------------------------------------

 public void chargeFee(){

 balance = balance - 10;

 }

 //---------------------------------------

 //changes the name on the account

 //---------------------------------------

 public void changeName(String newName){

 name = newName;

 }

 }

 ManageAccounts.java 源代码如下 ( 红色部分为补充代码 )

 public class ManageAccounts {

 public static void main(String[] args){

 Account acct1,acct2;

 //create accont1 for Sally with $1000

 acct1 = new Account(1000,"Sally",1111);

 //create accont1 for Joe with $500

 acct2 = new Account(500,"Joe",2222);

 //deposit $100 to Joe's account

 acct2.deposit(100);

 //print Joe's new balance (use getBalance())

 System.out.println("Joe new balance: "+acct2);

 //withdraw $50 from Sally's account

 acct2.withdraw(50);

 //print Sally's new balance (use getBalance())

 System.out.println("Sally's new balance: "+acct1);

 //charge fees to both accounts

 acct1.chargeFee();

 acct2.chargeFee();

 //change the name on Joe's account to joseph

 acct2.changeName("Joseph");

 //print summary for both accounts

 System.out.println(acct1);

 System.out.println(acct2);

 }

 }

 2) Representing Names

 Name.java 源代码如下 :

 public class Name{

 private String firstName;

 private String middleName;

 private String lastName;

 public Name(String first, String middle, String last){

 firstName = first;

 middleName = middle;

 lastName = last;

 }

 public String getFirst(){

 return firstName;

 }

 public String getMiddle(){

 return middleName;

 }

 public String getLast(){

 return lastName;

 }

 public String firstMiddleLast(){

 return firstName+"-"+middleName+"-"+lastName;

 }

 public String lastFirstMiddle(){

 return lastName+"-"+firstName+"-"+middleName;

 }

 public boolean equals (Name otherName){

 if(this.firstName.equals(otherName.firstName)&&this.middleName.equals

 (otherName.middleName)&&this.lastName.equals(otherName.lastName))

 {return true;}

 else

 {return false;}

 }

 public String initials(){

 String a = firstName.substring(0,1) + middleName.substring(0,1)

 +lastName.substring(0,1);

 return a.toUpperCase();

 }

 public int length(){

 int length = firstName.length() + middleName.length() + lastName.length();

 return length;

 }

 }

 TestNames.java 源代码如下 :

 import java.util.*;

 public class TestNames{

 public static void main(String faf[])

 {

 Name name1,name2;

 System.out.print(" 输入第一个姓名, 包括姓名,中间姓名, 姓氏 , 每个字中间请空格空开: ");

 Scanner scanner = new Scanner(System.in);

 String first = scanner.next();

 String middle = scanner.next();

 String last = scanner.next();

 name1 = new Name(first,middle,last);

 //System.out.println("");

 System.out.print(" 输入第二个姓名,每个字中间请空格空开: "); String first1 = scanner.next();

 String middle1 =scanner.next();

 String last1 = scanner.next();

 name2 = new Name(first1,middle1,last1);

 System.out.println(" 第一个名字: "+name1.firstMiddleLast()); System.out.println(name1.lastFirstMiddle()); System.out.println(name1.initials()); System.out.println(name1.length());

 System.out.println("");

 System.out.println(" 第二个名字: "+name2.firstMiddleLast()); System.out.println(name2.lastFirstMiddle()); System.out.println(name2.initials()); System.out.println(name2.length());

 System.out.println(" 两个姓名是否一样 :"+name1.equals (name2));

 }

 }

 四、 实验结果与数据处理

 A Bank Account Class 的实验结果如下图:

 Representing Names 的实验结果如下图:

 五、分析与讨论

 通过本次实验, 掌握了对于类和类的方法的编写。

 对于类的成员: 数据声明和方法声明有了更深的理解,还知道了构造方法在创建对象时要给成员对象赋值。

 六、教师评语 成绩

 签名:

 日期: