您的当前位置:首页正文

实验二面向对象编程实验报告材料

来源:爱站旅游
导读实验二面向对象编程实验报告材料
实用文档

实验二 面向对象编程

1.实验目的

(1)掌握类与对象基本知识;

(2)Java中的继承机制及包(package)、接口(interface)等的设计方法; (3)掌握static、this、super等关键字的使用; (4)掌握Java中两种比较器的用法。

2.实验内容

实验题1 定义一个类Book,包含两个属性:一个是private的String类型的属性title、一个是private的float类型的属性listPrice,封装这两个属性的四个方法setTitle()和getTitle()、setListPrice( )和geListPrice()。

基本要求:

(1) 设计类Book及类BookManagement,在类BookManagement中输出Book类的对象的两个private属性;

(2)重写父类的toString()方法,实现Book类实例的两个属性的输出。 实验结果:

实验过程:

首先建立一个Books工程,再建立俩个类Book和Bookmanagement。在Book类中,有俩个属性:一个是private的String类型的属性title、一个是private的float类型的属性listPrice,使用getter和setter

实用文档

生成四个方法setTitle()和getTitle()、setListPrice( )和geListPrice()。最后重写Tostring函数。

在Bookmanagement中有主函数,使用JOptionPane.showMessageDialog(null,book)函数使之用对话框形式

输出

代码如下:

package book;

public class Book { }

@Override

public String toString() { }

return \"title:\" + getTitle() + \ + getListPrice(); public void setListPrice(float listPrice) { }

this.listPrice = listPrice; public float getListPrice() { }

return listPrice;

public void setTitle(String title) { }

this.title = title; public String getTitle() { }

return title;

public Book(String title, float listPrice) { }

super();

this.title = title;

this.listPrice = listPrice; private String title; private float listPrice;

package book;

实用文档

import javax.swing.JOptionPane;

public class Bookmanagement { }

/*public static void output1(Book book) { }

public static void output2(Book book) { } */

public static void main(String[] args){ }

Book book = new Book(\"How to programing in Java\",89.9f); JOptionPane.showMessageDialog(null,book); //output1(book); //output2(book);

System.out.println( book.toString());

System.out.println(\"请输出book的title:\" + book.getTitle());

System.out.println(\"请输出book的listPrice:\" + book.getListPrice());

实验题2 有两个类:MobileManagement和Mobile,分别描述如图3.4所示两部手机名称及价格,类MobileManagement在包cn.edu.nwsuaf.jp.p3中,而Mobile在包cn.edu.nwsuaf.jp.p3.data中。

基本要求:设计相关类,使程序能够显示两部手机的价格和数量,运行结果如图3.5。

E365, 1780 RMB M330, 1450 RMB

图3.4 手机及价格图

实用文档

实验结果:

图3.5 运行结果

实验过程:

首先建立一个Mobiles工程,再建立俩个类Mobile和MobileManagement。在Mobile类中,有俩个属性:一个是private的String类型的属性name、一个是private的float类型的属性price,使用getter和setter生成四个方法setName()和getName()、setPrice( )和gePrice()。最后重写Tostring函数。

在MobileManagement中有主函数,使用JOptionPane.showMessageDialog(null,phone1 + \"\\n\" + phone2 +

\"\\n\" + \"There are \" + count + \" mobile phones.\")函数使之用对话框形式输出

代码如下:

package cn.edu.nwsuaf.jp.p3.data;

public class Mobile {

private String name; private int price;

public Mobile(String name,int price) {

super();

this.name = name;

实用文档

}

}

this.price = price;

public String getName() { }

public void setName(String name) { }

public int getPrice() { }

public void setPrice(int price) { }

@Override

public String toString() { }

return getName() + \" \" + getPrice() + \" RMB\"; this.price = price; return price; this.name = name; return name;

package cn.edu.nwsuaf.jp.p3;

import javax.swing.JOptionPane;

import cn.edu.nwsuaf.jp.p3.data.Mobile;

public class MobileManagement {

static int count = 0;

public static void output(Mobile phone) { }

public static void main(String[] args){

Mobile phone1 = new Mobile(\"E365\",1780); System.out.println( phone.toString());

count++;

Mobile phone2 = new Mobile(\"M330\",1450);

count++;

System.out.println();

JOptionPane.showMessageDialog(null,phone1 + \"\\n\" + phone2 + \"\\n\" + \"There are \" + count + \"

mobile phones.\");

实用文档

}

}

实验题3 有四个类,主类Store在包cn.edu.nwsuaf.jp.p4中,Mobile、Mp3Player、Product在包cn.edu.nwsuaf.jp.p4.data中,Mobile、Mp3Player是Product的子类,Product类为抽象类。

基本要求: 设计类Mobile和类MP3Player,使它们和类Product、Store组成一个完整的程序,且运行结果如图3.6所示。

实验结果:

图3.6 运行结果

实验过程:

首先在建立一个store的工程,在包cn.edu.nwsuaf.jp.p4.data中建立是那个类Mobile、Mp3Player、Product。在包cn.edu.nwsuaf.jp.p4中建立类Store。各个累的结构如下:

实用文档

重写public String toString() Mp3Player 继承 Public abstract class Product 继承 Mobile private String Name private Float price getName() setName() getPrice() setPrice()

再在主函数中实例化对象,在用对话框形式输出。 代码如下:

package cn.edu.nwsuaf.jp.p4.data;

public abstract class Product {

private String Name; private double price;

public Product(String name, double price) { }

public String getName() { }

public void setName(String name) { }

public double getPrice() { }

return price; Name = name; return Name; super(); Name = name; this.price = price;

实用文档

}

package cn.edu.nwsuaf.jp.p4.data;

public class Mp3Player extends Product { }

package cn.edu.nwsuaf.jp.p4.data;

public class Mobile extends Product { }

import javax.swing.JOptionPane;

import cn.edu.nwsuaf.jp.p4.data.Mobile;

public void setPrice(double price) { }

@Override

public String toString() { }

public abstract void output(Product p);

return getName() + \ + getPrice() + \" RMB\"; this.price = price;

public Mp3Player(String name, double price) { }

@Override

public void output(Product p) { }

// TODO Auto-generated method stub

System.out.println( Mp3Player.class.toString());

super(name, price);

public Mobile(String name, double d) { }

@Override

public void output(Product p) { }

System.out.println( Mobile.class.toString());

super(name, d);

实用文档

import cn.edu.nwsuaf.jp.p4.data.Mp3Player; import cn.edu.nwsuaf.jp.p4.data.Product;

public class Store { }

/**

* @param args */

public static int count = 0;

public static void main(String[] args) { }

Mp3Player p1 = new Mp3Player(\"Meizo X3 (256MB)\Mp3Player p2 = new Mp3Player(\"Meizo E5 (512MB)\Mp3Player p3 = new Mp3Player(\"Xlive XM Mp3Play(256MB)\Mobile m1 = new Mobile(\"E365 on China Mobile\Mobile m2 = new Mobile(\"E3330 on China Mobile\

Product[] products = {p1,p2,p3,m1,m2};

String text = \"\";

for(int i = 0; i < products.length; ++i) { }

JOptionPane.showMessageDialog(null,\"The products are:\\n\\n\"+text+\"\\nThere are \"+ count +\"

text += products[i]+\"\\n\"; count ++;

products.\");

实验题4 有四个类,主类Store在包cn.edu.nwsuaf.jp.p4中,Mobile、Mp3Player、Product在包cn.edu.nwsuaf.jp.p4.data中,Mobile、Mp3Player是Product的子类, Product类实现Comparable接口,请重写Comparable接口中方法compareTo,实现product对象按照价格排序,运行结果如图3.8所示。

图3.7 运行结果

实用文档

实验结果:

实验过程:

类似于实验3,各个结构如下:

重写public String toString() 重写compareTo()函数 Mp3Player 继承 Public abstract class Product 继承 Mobile private String Name private Float price getName() 代码如下:

package cn.edu.nwsuaf.jp.p4.data;

setName() getPrice() setPrice()

public abstract class Product implements Comparable{

实用文档

}

private String Name; private Float price;

public Product(String name, Float price) { }

public String getName() { }

public void setName(String name) { }

public Float getPrice() { }

public void setPrice(Float price) { }

@Override

public String toString() { }

public abstract void output(Product p);

@Override

public int compareTo(Object o) { }

// TODO Auto-generated method stub Product product = (Product)o;

return new Float(getPrice()).compareTo(product.getPrice()); return getName() + \ + getPrice() + \" RMB\"; this.price = price; return price; Name = name; return Name; super(); Name = name; this.price = price;

package cn.edu.nwsuaf.jp.p4.data;

public class Mobile extends Product {

实用文档

}

public Mobile(String name, Float price) { }

@Override

public void output(Product p) { }

System.out.println( Mobile.class.toString());

super(name, price);

package cn.edu.nwsuaf.jp.p4.data;

public class Mp3Player extends Product { }

@Override

public void output(Product p) { }

System.out.println( Mp3Player.class.toString());

public Mp3Player(String name, Float price) { }

super(name, price);

package cn.edu.nwsuaf.jp.p4;

import java.util.Arrays;

import javax.swing.JOptionPane;

import cn.edu.nwsuaf.jp.p4.data.Mobile; import cn.edu.nwsuaf.jp.p4.data.Mp3Player; import cn.edu.nwsuaf.jp.p4.data.Product;

public class Store {

/**

* @param args */

public static int count = 0;

public static void main(String[] args) {

实用文档

Mp3Player p1 = new Mp3Player(\"Meizo X3 (256MB)\ Mp3Player p2 = new Mp3Player(\"Meizo E5 (512MB)\

Mp3Player p3 = new Mp3Player(\"Xlive XM Mp3Play(256MB)\ Mobile m1 = new Mobile(\"E365 on China Mobile\ Mobile m2 = new Mobile(\"E3330 on China Mobile\

Product[] products = {p1,p2,p3,m1,m2};

Arrays.sort(products);

String text = \"\";

for(int index = 0; index < products.length; ++index) {

text += products[index]+\"\\n\"; count++; }

JOptionPane.showMessageDialog(null,\"The products are:\\n\\n\"+text+\"\\nThere count +\" products.\");

} }

三、实验总结:

1、通过本次实习基本了解如何让使用eclipse编写程序。

2、学会使用对话框输出执行结果。 3、体会到重写toString函数的妙处。

are \"+

因篇幅问题不能全部显示,请点此查看更多更全内容

Top