东北大学的面向对象程序设计实验报告材料Word文档格式.docx
- 文档编号:19348431
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:45
- 大小:846.38KB
东北大学的面向对象程序设计实验报告材料Word文档格式.docx
《东北大学的面向对象程序设计实验报告材料Word文档格式.docx》由会员分享,可在线阅读,更多相关《东北大学的面向对象程序设计实验报告材料Word文档格式.docx(45页珍藏版)》请在冰豆网上搜索。
3.实现如下类图:
4.
三.实验步骤:
1.首先根据要求设计出一下的类图。
5.不同的类的具体要求如下(都要继承超类Product类)。
(1)ClassProduct
a.含有的变量:
code;
description;
price;
b.含有的方法:
.publicProduct(Stringcode,Stringdescription,doubleprice)
∙publicStringgetCode().返回实例变量的code.
∙publicStringgetDescription().返回实例变量的variabledescription.
∙publicdoublegetPrice().返回实例变量的price.
∙booleanequals(Objectobject).重写方法equalsi在类Object里,如果他们的code是相等的,则产品对象是相等的。
∙StringtoString().重写方法toString在类Object里.返回的格式如下:
∙code_description_price
c.写完具体如下:
publicclassProduct{
privateStringcode;
privateStringdescription;
privatedoubleprice;
publicProduct(Stringcode,Stringdescription,doubleprice){
this.code=code;
this.description=description;
this.price=price;
}
publicStringgetCode(){
returncode;
publicStringgetDescription(){
returndescription;
publicdoublegetPrice(){
returnprice;
@Override
publicbooleanequals(Objecta){
if(ainstanceofProduct){
if(((Product)a).code==this.getCode()){
returntrue;
}
else{
returnfalse;
}
returnfalse;
@Override
publicStringtoString(){
return(this.getCode()+"
_"
+this.getDescription()+"
+this.getPrice());
}
}
(2)classCoffee
∙origin.
∙roast.
∙flavor.
∙aroma.
∙acidity.
∙body.
publicCoffee(Stringcode,Stringdescription,Doubleprice,Stringorigin,Stringroast,Stringflavor,Stringaroma,Stringacidity,Stringbody);
∙publicStringgetOrigin().返回实例变量的origin.
∙publicStringgetRoast().返回实例变量的roast.
∙publicStringgetFlavor().返回实例变量的flavor.
∙publicStringgetAroma().返回实例变量的aroma.
∙publicStringgetAcidity().返回实例变量的acidity.
∙publicStringgetBody().返回实例变量的body.
∙StringtoString().重写方法toString在类Object里.返回如下格式:
:
code_description_price_origin_roast_flavor_aroma_acidity_body
publicclassCoffeeextendsProduct{
privateStringorigin;
privateStringroast;
privateStringflavor;
privateStringaroma;
privateStringacidity;
privateStringbody;
publicCoffee(Stringcode,Stringdescription,Doubleprice,Stringorigin,Stringroast,Stringflavor,Stringaroma,Stringacidity,Stringbody){
super(code,description,price);
this.origin=origin;
this.roast=roast;
this.flavor=flavor;
this.aroma=aroma;
this.acidity=acidity;
this.body=body;
publicStringgetOrigin(){
returnorigin;
publicStringgetRoast(){
returnroast;
publicStringgetFlavor(){
returnflavor;
publicStringgetAroma(){
returnaroma;
publicStringgetAcidity(){
returnacidity;
publicStringgetBody(){
returnbody;
publicStringtoString(){
returnthis.getCode()+"
+this.getPrice()+"
+this.getOrigin()+"
+this.getRoast()+"
+this.getFlavor()+"
+this.getAroma()+"
+this.getAcidity()+"
+this.getBody();
(3)classCoffeeBrewer
∙model.
∙waterSupply.
∙numberOfCups.
∙publicCoffeeBrewer(StringinitialCode,
∙StringinitialDescription,
∙doubleinitialPrice,
∙StringinitialModel,
∙StringinitialWaterSupply,
∙intinitialNumberOfCups)
∙publicStringgetModel()。
返回实例变量的model.
∙publicStringgetWaterSupply().返回实例变量的waterSupply.
∙publicintgetNumberOfCups().返回实例变量的numberOfCups.
∙StringtoString().重写该方法toString在类Object里.返回如下格式:
code_description_price_model_waterSupply_numberOfCups
publicclassCoffeeBrewerextendsProduct{
privateStringmodel;
privateStringwaterSupply;
privateintnumberOfCups;
publicCoffeeBrewer(Stringcode,Stringdescription,doubleprice,Stringmodel,StringwaterSupply,intnumberOfCups){
this.model=model;
this.waterSupply=waterSupply;
this.numberOfCups=numberOfCups;
publicStringgetModel(){
returnmodel;
publicStringgetWaterSupply(){
returnwaterSupply;
publicintgetNumberOfCups(){
returnnumberOfCups;
+this.getModel()+"
+this.getWaterSupply()+"
+this.getNumberOfCups());
(4)ClassOrderItem
∙product.Thisinstancevariablerepresentstheone-wayassociationbetweenOrderItemandProduct.ItcontainsareferencetoaProductobject.
∙quantity.Thequantityoftheproductintheorder.
∙publicOrderItem(ProductinitialProduct,
∙intinitialQuantity)
∙publicProductgetProduct().返回实例变量的product,一个Product对象
∙publicintgetQuantity().返回实例变量的quantity.
∙publicvoidsetQuantity(intnewQuantity).设立变量quantity以实现newQuantity.
∙publicdoublegetValue().返回实例变量的quantityandprice.
∙StringtoString().重写该方法toString在类Object里.返回格式如下:
quantityproduct-codeproduct-price
publicclassOrderItem{
privateProductproduct;
privateintquantity;
publicOrderItem(ProductProduct,intQuantity){
this.product=Product;
this.quantity=Quantity;
publicProductgetProduct(){
returnproduct;
publicintgetQuantity(){
returnquantity;
publicvoidsetQuantity(intnewQuantity){
this.quantity=newQuantity;
publicdoublegetValue(){
returngetQuantity()*getProduct().getPrice();
returnquantity+"
"
+product.getCode()+"
+product.getPrice();
四.实验结果:
分别测试后都是正确的。
结果如下
(1)
(2)
(3)
(4)
五.实验总结:
1.通过面向对象的设计,明白了在java中万物皆对象的道理。
2,通过实例锻炼了自己的编程思想和编程能力。
3.在实验的调试中体会到了程序的维护。
实验2
一.实验目的:
强化你的能力来实现使用集合的类
二.实验内容:
1.在实验1的基础上,通过增加写classcatalog,classgourmetcoffee,classsales,classorder.实现如下类图:
三.实验步骤:
1.先设计出自己想要实现的类图:
2.具体类如下:
(1)ClassCatalog
a.含有的变量
∙products—AnArrayListcollectionthatcontainsreferencestoinstancesofclassProduct.
b。
含有的方法:
∙publicCatalog()—创建一个空集合products
∙publicvoidaddProduct(Productproduct)—往集合中增添product对象
∙publicIterator<
Product>
iterator()—返回集合产品实例中的一个迭代器。
∙publicProductgetProduct(Stringcode)—返回一个product实例。
∙publicintgetNumberOfProducts()—返回集合products.中product的数量。
写完具体如下:
importjava.util.*;
publicclassCatalogimplementsIterable<
{
ArrayList<
products;
publicCatalog(){
products=newArrayList<
();
publicvoidaddProduct(Productproduct){
products.add(product);
publicIterator<
getProductsIterator(){
returnproducts.iterator();
publicProductgetProduct(Stringcode){
for(Iterator<
iterator=iterator();
iterator.hasNext();
){
if((product=iterator.next()).getCode().equals(code)){
returnproduct;
returnnull;
publicintgetNumberOfProducts(){
returnproducts.size();
iterator(){
//TODOAuto-generatedmethodstub
(2)ClassOrder
含有的变量
∙items—AnArrayList包含了OrderItem.的实例
∙publicOrder()—创建一个空的集合items
∙publicvoidaddItem(OrderItemorderItem)—往集合items.中增添元素
∙publicvoidremoveItem(OrderItemorderItem)—从集合items.中国删除元素
OrderItem>
iterator()—返回一个覆盖该集合items.的迭代器。
∙publicOrderItemgetItem(Productproduct)—返回OrderItem的实例
∙publicintgetNumberOfItems()—返回集合items的大小
∙publicdoublegetTotalCost()—返回总的消费。
importjava.util.ArrayList;
importjava.util.Iterator;
publicclassOrderimplementsIterable<
{
items;
publicOrder(){
items=newArrayList<
publicvoidaddItem(OrderItemorderItem){
items.add(orderItem);
publicvoidremoveItem(OrderItemorderItem){
items.remove(orderItem);
returnitems.iterator();
privateOrderItemitem;
publicOrderItemgetItem(Productproduct){
iterator=items.iterator();
if((item=iterator.next()).getProduct().equals(product)){
returnitem;
publicintgetNumberOfItems(){
returnitems.size();
publicdoublegetTotalCost(){
doubletotal=0;
total+=iterator.next().getValue();
returntotal;
}(3)ClassSales
含有的变量:
∙orders—AnArrayList集合包含了Order.
∙publicSales()—创建一个空集合orders,
∙publicvoidaddOrder(Orderorder)—往集合orders.中增添元素
Order>
iterator()—返回覆盖orders.的迭代器
∙publicintgetNumberOfOrders()—返回集合orders.的大小
importjava.util.*;
publicclassSalesimplementsIterable<
ArrayList<
orders;
publicSales(){
orders=newArrayList<
publicvoidaddOrder(Orderorder){
orders.add(order);
publicintgetNumberOfOrders(){
returnorders.size();
publicIterator<
//TODOAuto-generatedmethodstub
returnorders.iterator();
(4)在类gourmeCoffee类中按要求增添的代码如下:
publicvoiddisplayNumberOfOrders(Productproduct){
/*PLACEYOURCODEHERE*/
intsum=0;
iterator=sales.iterator();
Orderorder=iterator.next();
if(order.getItem(product)!
=null){
sum++;
}
stdOut.println("
Numberofordersthatcontainstheproduct"
+sum);
/**
*Displaysthetotalquantityofproductthathavehassoldforeach
*productinthecatalog.
*/
publicvoiddisplayTota
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 东北大学 面向 对象 程序设计 实验 报告 材料