实验02 面向对象编程.docx
- 文档编号:28633551
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:15
- 大小:418.02KB
实验02 面向对象编程.docx
《实验02 面向对象编程.docx》由会员分享,可在线阅读,更多相关《实验02 面向对象编程.docx(15页珍藏版)》请在冰豆网上搜索。
实验02面向对象编程
实验二面向对象编程
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类实例的两个属性的输出。
packagecn.edu.nwsuaf.jp.p2.data;
publicclassBook{
privateStringtitle;
privatefloatlistPrice;
publicstaticintnum;
publicBook(Stringt,doublep){
this.title=t;
this.listPrice=(float)p;
num++;
}
publicStringgetTitle(){
returntitle;
}
publicvoidsetTitle(Stringtitle){
this.title=title;
}
publicfloatgetListPrice(){
returnlistPrice;
}
publicvoidsetListPrice(floatlistPrice){
this.listPrice=listPrice;
}
@Override
publicStringtoString(){
returngetTitle()+"\n¥:
"+getListPrice();
}
}
packagecn.edu.nwsuaf.jp.p2;
importjavax.swing.JOptionPane;
importcn.edu.nwsuaf.jp.p2.data.Book;
publicclassBookManagement{
publicstaticvoidmain(String[]args){
Bookbook1=newBook("《闲话中国人》",28.5);
Bookbook2=newBook("《呼啸山庄》",20);
//System.out.println(book.toString());
JOptionPane.showMessageDialog(null,"Book:
\n"+book1
+"\n"+book2+"\n"+"Thereare"+Book.num+"books.");
}
}
实验题2有两个类:
MobileManagement和Mobile,Mobile类的的两个实例分别描述如图3.4所示两部手机名称及价格,类MobileManagement在包cn.edu.nwsuaf.jp.p3中,而Mobile在包cn.edu.nwsuaf.jp.p3.data中。
基本要求:
设计Mobile类与MobileManagement类,在类MobileManagement类中实例化Mobile类的对象使程序能够显示两部手机的价格和数量,运行结果如图3.5。
E365,1780RMBM330,1450RMB
图3.4手机及价格图
图3.5运行结果
packagecn.edu.nwsuaf.jp.p3.data;
publicclassMobile{
publicstaticintnum;
privateStringname;
privatefloatprice;
publicMobile(Stringname,floatprice){
this.name=name;
this.price=price;
num++;
}
publicStringgetName(){
returnname;
}
publicfloatgetPrice(){
returnprice;
}
}
packagecn.edu.nwsuaf.jp.p3;
importjavax.swing.JOptionPane;
importcn.edu.nwsuaf.jp.p3.data.Mobile;
publicclassMobileManagement{
publicstaticvoidmain(String[]args){
Mobilemobile1=newMobile("E365",1780);
Mobilemobile2=newMobile("M330",1450);
JOptionPane.showMessageDialog(null,"Mobilephones:
\n\n"
+mobile1.getName()+":
"+mobile1.getPrice()+"RMB"+"\n"
+mobile2.getName()+":
"+mobile2.getPrice()+"RMB"+"\n\n"
+"Thereare"+Mobile.num+"mobilephones");
}
}
实验题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运行结果
packagecn.edu.nwsuaf.jp.p4.data;
publicclassMobileextendsProduct{
privateStringMakePlace;
publicMobile(Stringtitle,floatPrice,StringmakePlace){
super(title,Price);
this.MakePlace=makePlace;
}
publicStringgetMakePlace(){
returnMakePlace;
}
publicvoidsetMakePlace(StringmakePlace){
MakePlace=makePlace;
}
@Override
publicStringgetName(){
//TODOAuto-generatedmethodstub
returntitle+"on"+MakePlace+"Mobile,"+Price+"RMB\n";
}
}
packagecn.edu.nwsuaf.jp.p4.data;
publicclassMp3PlayerextendsProduct{
privatelongMemorySize;
publicMp3Player(Stringtitle,floatPrice,longmemorySize){
super(title,Price);
this.MemorySize=memorySize;
}
publiclonggetMemorySize(){
returnMemorySize;
}
publicvoidsetMemorySize(longmemorySize){
MemorySize=memorySize;
}
publicStringgetName(){
returntitle+"("+MemorySize+"MB"+"),"+Price+"RMB";
}
}
packagecn.edu.nwsuaf.jp.p4.data;
publicabstractclassProduct{
protectedStringtitle;
protectedfloatPrice;
protectedstaticintnum;
publicProduct(Stringtitle,floatPrice){
super();
this.title=title;
this.Price=Price;
num++;
}
publicStringgetTitle(){
returntitle;
}
publicvoidsetTitle(Stringtitle){
this.title=title;
}
publicfloatgetPrice(){
returnPrice;
}
publicvoidsetPrice(floatprice){
Price=price;
}
publicstaticintgetNum(){
returnnum;
}
publicstaticvoidsetNum(intnum){
Product.num=num;
}
publicabstractStringgetName();
@Override
publicStringtoString(){
returngetName();
}
}
packagecn.edu.nwsuaf.jp.p4;
importjavax.swing.JOptionPane;
importcn.edu.nwsuaf.jp.p4.data.Mobile;
importcn.edu.nwsuaf.jp.p4.data.Mp3Player;
importcn.edu.nwsuaf.jp.p4.data.Product;
publicclassStore{
publicstaticvoidmain(String[]args){
Mobilemobile1=newMobile("E365",1780,"China");
Mobilemobile2=newMobile("M330",1450,"China");
Mp3Playermp3Player1=newMp3Player("MeizoX3",399,256);
Mp3Playermp3Player2=newMp3Player("MeizoE5",580,512);
Mp3Playermp3Player3=newMp3Player("XliveXMMP3Player",930,256);
JOptionPane.showMessageDialog(null,"Theproductsare:
\n\n"+mp3Player1+
"\n"+mp3Player2+"\n"+mp3Player3+"\n"+mobile1+mobile2+
"\nThereare"+Product.getNum()+"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运行结果
packagecn.edu.nwsuaf.jp.p5.data;
publicclassMobileextendsProduct{
privateStringbus;
publicMobile(Stringbuss,Stringname,floatprice){
super(name,price);
this.bus=buss;
}
publicStringgetName(){
returnname;
}
publicfloatgetPrice(){
returnprice;
}
publicstaticintgetCount(){
returncount;
}
publicStringtoString(){
returnname+"on"+bus+","+String.valueOf(price)+"RMB";
}
}
packagecn.edu.nwsuaf.jp.p5.data;
publicclassMp3PlayerextendsProduct{
privateintmomery;
publicMp3Player(Stringname,intmm,intprice){
super(name,(float)price);
this.momery=mm;
}
publicStringgetName(){
returnname;
}
publicfloatgetPrice(){
returnprice;
}
publicstaticintgetCount(){
returncount;
}
publicStringtoString(){
returnname+"("+momery+"MB"+"),"+String.valueOf(price)+"RMB";
}
}
packagecn.edu.nwsuaf.jp.p5.data;
publicabstractclassProductimplementsComparable
protectedStringname;
protectedfloatprice;
protectedstaticintcount;
protectedProduct(Stringname,floatprice){
this.name=name;
this.price=price;
++count;
}
publicStringgetName(){
returnname;
}
publicfloatgetPrice(){
returnprice;
}
publicstaticintgetCount(){
returncount;
}
publicintcompareTo(Productproduct){
returnnewFloat(product.getPrice()).compareTo(price);
}
}
packagecn.edu.nwsuaf.jp.p5;
importjava.util.Arrays;
importjavax.swing.JOptionPane;
importcn.edu.nwsuaf.jp.p5.data.Mobile;
importcn.edu.nwsuaf.jp.p5.data.Mp3Player;
importcn.edu.nwsuaf.jp.p5.data.Product;
publicclassStore{
publicstaticvoidmain(String[]args){
Mobilemobile1=newMobile("ChinaMobile","E365",1780);
Mobilemobile2=newMobile("ChinaMobile","M330",1450);
Mp3Playerplayer1=newMp3Player("MeizoX3",256,399);
Mp3Playerplayer2=newMp3Player("MeizoE5",512,580);
Mp3Playerplayer3=newMp3Player("XliveXMMP3Play",256,930);
Product[]products={mobile1,mobile2,player1,player2,player3};
Arrays.sort(products);
Stringtext="";
for(intindex=0;index text+=products[index].toString()+"\n"; //Displaysthetwomobilephonesinadialogbox. JOptionPane.showMessageDialog(null,"Theproductsare: \n\n"+ text+"\nThereare"+Product.getCount()+"products."); } } 3.实验总结 在这次实习中,主要把课本上这段时间学过的知识又重新运用了一下,更深刻地了解了java面向对象的思想,掌握java程序面向对象编程的基本架构,会运用面向对象的思想编写简单的Java程序。 在编写代码中也遇到了一些问题,比如,有些的输出结果与要求的不同,调用问题等,最后通过问同学、查资料解决了相关问题。 通过这次实习,更清晰的了解了java中类,继承,接口,等的设计方法和理念,能更好的编写代码。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验02 面向对象编程 实验 02 面向 对象 编程
![提示](https://static.bdocx.com/images/bang_tan.gif)