课程编号:B080103110
面向对象程序设计
实验报告
姓班实开开报评验设设告定名学时日成名 级 称 期 间 期 绩 XXX 软件XXXX 学指导教号 师 XXX XXX 面向对象程序设计实验报告 2016-2017第一学期 第5周——第8周 11月8日 评评定定日人 期
东北大学软件学院
实验一
一、 实验目的
增强对Java的理解,掌握Java中如何写一个方法,以及方法对于一个类要实现其功能的重要性,借助方法,类可以完成需要的功能。同时,学会方法的返回值相关知识。
二、实验内容
在Product类中,添加变量code、description、price,完成方法StringgetCode(),String getDescription(),double getPrice(),boolean equals(Object object),tring toString()以及构造方法Product();
在Coffee类中,添加变量origin, roast, flavor, aroma, acidity, body,完成方法public String getOrigin().public String getRoast(). public String getFlavor().public String
getAroma().public String getAcidity().public String getBody().String toString().以及构造方法Coffee()
在CoffeeBrewer类中,添加model.waterSupply.numberOfCups.完成方法String getModel(),String getWaterSupply().int getNumberOfCups().?String toString().以及构造方法CoffeeBrewer(String initialCode,String initialDescription, double initialPrice,String initialModel,String initialWaterSupply,int initialNumberOfCups)
在OrderItem类中,添加变量product、quantity完成方法Product getProduct() int getQuantity().void setQuantity(int newQuantity) double getValue() String toString().以及构造方法public OrderItem(Product initialProduct,int initialQuantity)
三、实验步骤
(1) 要完成方法需要知道各种方法的返回类型?好在实验指导书已经给出。
(2) 不利用实验指导书的前提下,要获得返回类型,可以通过阅读测试类,找到测试语句,根据测试语句的实参数据类型来获得方法返回值的数据类型。当然有些以void返回无需查阅。
(3) public String getCode() {
returnthis.code;}各种方法的实现大同小异。
(4) 根据实际需要,需要用方法来返回该类(对象)中的属性值。即通过方法的返回值来获得。
(5) 在Product类中,方法:
publicboolean equals(Product arg0) {
boolean m;
if (arg0.getCode() == this.getCode()) { }
return m; }
在实现该方法中,一开始利用code来判断该product对象是否真的存在,对于如何判断不太懂,后经咨询老师,以及细心理解测试类才明白应该这么做。
m = true; m = false; } else {
四、实验结果
(1) 测试结果:
Testing class Product...(其他类与此类似) Done(测试成功)
五、实验总结
收获:面向对象的程序设计,其核心就是通过类,来实现要完成的功能,当然,类需要用变量以及方法来丰富其功能。
实验二
一、实验目的
对于Java中implements的了解并掌握。学会如何使用ArrayList
二、实验内容
实现下列四个类Catalog Order Sales GourmetCoffee 分别完成变量和方法:
Catalog中,products集合ArrayList
构造方法Catalog(),以及方法void addProduct(Product product),
Iterator
分别完成变量和方法:
Order中,items集合ArrayList
构造方法Order(),以及方法void addItem(OrderItem orderItem),void
removeItem(OrderItem orderItem),Iterator
分别完成变量和方法:
Sales中,orders集合ArrayList
public void addOrder(Order order) public Iterator
public int getNumberOfOrders()根据实验指导书来完成相应功能。 GourmetCoffee中,完成方法displayNumberOfOrders and
displayTotalQuantityOfProducts并最终完成一个界面输出的功能。添加变量catalog ,currentOrder,sales。
三、实验步骤
(1)
以Catalog为例,
return?;
public Iterator
}对于应该返回什么不是很清楚。
public Product getProduct(String code) {returnnull;}怎么实现利用code
来获得一个Product对象呢?
(2) 第一次使用迭代器来实现功能,首先查阅JDK开发文档,Iterator中有几个常见
的方法,了解其用法之后对于怎么用迭代器来设计方法有了了解,用于遍历一个集合或数组。
利用code来获得一个Product对象,首先需要对Product的方法有所了解,利用迭代器将存放Product对象的集合进行遍历,并将符合要求的Product返回。
(3) public Iterator
public Product getProduct(String code) { }
for (Iterator
returnnull;
.hasNext();) {
Product product = iterator.next(); if (product.getCode().equals(code)) { }
returnproduct;
}
returnproducts.iterator();
(4) 主要就是利用迭代器遍历一个集合,并将集合中的对象循环得到,通过判断是否符合要求,将目的对象找到并返回。
(5) Iterator类中的方法的使用,第一次使用java中的迭代器,不是很熟练。通过小练习,熟练了其中的hasnext,next等方法之后,编写此方法就会得心应手一些。
四、实验结果
(1) 测试截图
各种选择出现的结果:
相关推荐: