实验二 面向对象编程
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 \"+
因篇幅问题不能全部显示,请点此查看更多更全内容