Java实验指导(2)

2019-04-02 22:03

实验2 Java类和对象(二)(4学时) 1. 实验目的

理解面向对象与面向过程在编程思想上的差异,掌握如何定义一个类,熟练掌握构造方法的定义和调用,掌握包的概念,掌握类中修饰符(public, protected, private)的使用方法和意义,掌握this关键字的使用,掌握static关键字的使用方法,理解静态变量、静态方法和静态代码块的意义,掌握一维数组和二维数组的定义和使用方法,掌握集合类Vector和ArrayList的使用方法,并理解如何将集合类使用为动态数组,掌握String, StringBuffer和StringTokenizer的使用方法。

2. 实验类型

设计型

3. 实验基本要求

1(完善银行顾客例子,与上课实例类似).具体满足如下要求:

(1) 为顾客类创建一个带有4个参数的构造函数,初始化类中的4个成员变量; (2) 为了去掉冗余,将顾客的业务放到顾客类的run()方法中;

(3) 在测试类中创建4个顾客对象,存储在一个对象数组中,提示用户输入账号,根据账号确定执行哪个顾客的业务,即执行相应顾客的run方法(使用for循环);

(4) 顾客类中添加一个静态变量allNum,统计该银行一共有多少位顾客,在构造方法中将变量的值+1。

(5) 在顾客类中添加一个转账的方法,在顾客数组的4个对象之间转账,提示用户输入想转入的账号,在顾客对象的数组中查找是否有该账号,如果有该账号,提示用户输入转账金额,如果转账金额为正数,并且大于剩余金额,提示转账成功,否则提示余额不足,如果转账金额为负数,则执行反转账(从对方账户向自己账户转账),反转账要求知道对方密码(可以调用之前编写的isPass()方法),否则不允许反转账。

(6) 将顾客的数组改为动态数组,可使用Vector或者ArrayList。

(7) 创建一个管理员类,类中包括id,name,password等数据,类中提供添加顾客、删除顾客、计算储蓄总额、打印某个顾客的信息等方法,具体定义及功能列举如下:

? 添加顾客:方法头可以定义为void addCust(Vector st),方法中提示管理员输入账号,密

码,开户金额,顾客名字,用这些信息创建一个Cutomer类,并添加到st参数传进来的Vector中。

6

? 删除顾客:方法头可以定义为void deleteCust(Vector st),方法中提示输入想要删除的顾

客的账号,遍历st参数传进来的Vector,找到后,将其删除。

? 计算储蓄总额:方法头可以定义为void sum(Vector st),遍历st参数传进来的Vector,

将所有账号的金额加起来。

? 打印某个顾客的信息:方法头可以定义为void printOnePerson(Vector st),提示输入想要

查询顾客的账号,遍历st参数传进来的Vector,找到后,将该顾客的信息打印出来。

2.定义一个名为MyRectangle的矩形类,类中有4个私有的整型域,分别是矩形的左上角坐标(xUp,yUp)和右下角坐标(xDown,yDown);类中定义没有参数的构造方法和有4个int参数的构造方法,用来初始化类对象。类中还有以下方法: getW( )——计算矩形的宽度;getH( )——计算矩形的高度;area( )——计算矩形的面积;toString( )——把矩形的宽、高和面积等信息作为为字符串返回。编写应用程序使用MyRectangle类。

3. 小镇的图书馆需要一个新的电子租借系统。该小镇有两个图书馆,每个图书馆提供很多书让客户去租赁。客户可以打印出所有的图书清单,包括现存的,已经借出的和归还的。现在我们需要提供两个类,Book类和Library类,有这两个类提供图书数据库的功能。请补充缺少的方法去完成类的功能。 步骤:

(1)补充完成Book类的定义。这个类需要定义获取图书标题的方法,查看图书的作者,查看是否可用的方法,是否借出方法。图书的状态用“available”和“borrowed”表示。现在的结构框架内缺少这些方法的执行内容,请用合适的功能代码补充方法体的内容。用main方法测试方法,当你运行程序时应该输出的内容:

图书名称:Java程序设计教程

图书作者:丁一 出租状态:出租中 可用状态:不可用

public class Book {

String title; //图书名称 String author; //作者

boolean borrowed; //图书状态,初始状态为可用

//使用给定的图书名称,创建一个新的Book对象 ,并置该对象的初始状态为可用 public Book(String bookTitle,String author){ // Implement this method }

7

// 借书,标记该书为借出状态 public void borrowed() { // Implement this method }

//还书,标记该书为可用状态 public void returned() { // Implement this method }

// Returns true if the book is rented, false otherwise public boolean isBorrowed() {

// Implement this method }

// Returns true if the book is available, false otherwise public Boolean isAvailable(){

// Implement this method }

//返回图书的名称

public String getTitle() {

// Implement this method }

public static void main(String[] arguments){

Book example = new Book(\程序设计教程\System.out.println(\图书名称:\System.out.println(\图书作者:\System.out.println(\出租状态:\System.out.println(\可用状态:\} }

(2)完成library类:我们应该建立一个类用于表示每个图书馆,并且管理每个图书馆的图书,他们有不同的地址和图书数目。建立一个Library类。复制下面的结构代码。我们提供一个main方法用于建立两个图书馆,然后执行一些对书目的操作,图书入库、出借图书和图书归还,当一本处于出租中的图书被借阅时,输出“图书已被出租”,如果没有要借的图书,输出“没有发现要借的图书”。当然,这些所有的方法成员和变量成员都是缺少的,你需要填充这些缺省的部分。解读下面的main方法检查编译错误,填充缺少的方法和成员内容。

8

public class Libaray {

// Add the missing implementation to this class public static void main(String[] args){

// Create two libraries

Library firstLibrary = new Library(\文化路80号\ Library secondLibrary = new Library(\建设路22号\ // Add four books to the first library

firstLibrary.addBook(new Book(\飞鸟集\泰戈尔\firstLibrary.addBook(new Book(\安妮日记\弗兰克\firstLibrary.addBook(new Book(\红楼梦\曹雪芹\

firstLibrary.addBook(new Book(\希腊的神话和传说\斯威布\secondLibrary.addBook(new Book(\安妮日记\弗兰克\secondLibrary.addBook(new Book(\红楼梦\曹雪芹\

secondLibrary.addBook(new Book(\希腊的神话和传说\斯威布\

System.out.println(\图书馆地址:\firstLibrary.printAddress(); secondLibrary.printAddress(); System.out.println();

System.out.println(\从两个图书馆借【飞鸟集】\firstLibrary.borrowBook(\飞鸟集\firstLibrary.borrowBook(\飞鸟集\secondLibrary.borrowBook(\飞鸟集\System.out.println();

/ /输出两个图书馆各自可外借的图书

System.out.println(\可外借的图书:\firstLibrary.printAvailableBooks(); System.out.println();

System.out.println(\可外借的图书:\secondLibrary.printAvailableBooks(); System.out.println();

// 向first library归还【飞鸟集】

System.out.println(\向first library归还【飞鸟集】:\ firstLibrary.returnBook(\飞鸟集\ System.out.println();

//输出first library图书馆可外借的图书

System.out.println(\可外借的图书:\firstLibrary.printAvailableBooks(); } }

9

4. (选做). 链表的每个结点定义如下: class Node {

int data; Node next; }

定义一个链表类,创建一个初始为10个结点的单向链表,结点数据用随机函数产生。 ① 输出该链表:

② 分别在首部,中间和尾部增加一个数据为100的结点,输出链表。

4. 实验思考题

1. 以下程序的运行结果? class StaticDemo { static int x; int y;

public static int getX() { return x; }

public static void setX(int newX) { x = newX; }

public int getY() { return y; }

public void setY(int newY) { y = newY; } }

public class EXP3_4 {

public static void main(String[] args) {

System.out.println(\静态变量x=\ StaticDemo a= new StaticDemo(); StaticDemo b= new StaticDemo(); a.setX(1); a.setY(2); b.setX(3); b.setY(4);

System.out.println(\静态变量a.x=\ System.out.println(\实例变量a.y=\ System.out.println(\静态变量b.x=\ System.out.println(\实例变量b.y=\ } }

10


Java实验指导(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:热压机培训

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: