收藏 分销(赏)

实验二.面向对象编程(Part-one).doc

上传人:仙人****88 文档编号:12004706 上传时间:2025-08-26 格式:DOC 页数:12 大小:457.50KB 下载积分:10 金币
下载 相关 举报
实验二.面向对象编程(Part-one).doc_第1页
第1页 / 共12页
实验二.面向对象编程(Part-one).doc_第2页
第2页 / 共12页


点击查看更多>>
资源描述
实验2 面向对象编程(Part one) 实验目的 掌握Java程序面向对象编程的基本架构,会运用面向对象的思想编写Java程序。 注:要求使用在命令行完成。 实验题1 阅读如下程序,完成思考题。 class CCircle { double pi; double radius; double getRadius() { return radius; } void setCircle(double r, double p) { pi=p; radius=r; } } public class Ex2_1 { public static void main(String args[]) { CCircle cir1=new CCircle(); cir1.setCircle(2.0,3.1416); System.out.println("radius="+cir1.getRadius()); } } [基本要求] 运行程序并观察运行结果。 [思考问题] 试述程序中主要语句的作用。 实验题2 设计一个用来描述汽车的类Car,使用类的非静态成员变量来表示汽车的车主姓名name、当前的速率speed: 1. 创建构造函数为三个成员变量赋初值。 2. 使用类的非静态成员方法来表示改车主姓名changeName操作, 并通过该方法显示修改后的车主名称。 3. 使用类的非静态成员方法来表示改变汽车的速率changSpeed操作,并通过该方法显示修改后的车速。 4. 使用类的非静态成员方法来表示停车stop操作,并通过该方法显示停车后的车速。 5. 创建一个Car类的对象,初始状态时,车主名称是自己的名字,speed=0。 6. 分别调用这三个方法,更改车名为朋友的名字,车速为20,停车车速为0,并且得到如下的结果: 实验题3 定义一个类MyProgram,包含两个属性:一个是private的整型属性data、一个是private的String类型的属性str,封装这两个属性的四个方法setData()和getData()、setStr( )和getStr();将这两个属性转变为字符串的方法是toStr()。编写程序,使用MyProgram类,实现数据的访问和修改,并调用toStr()方法显示该类的属性。 [基本要求] 编写完整程序。 [思考问题] 试述程序中各个方法的作用。 实验题4定义一个类实现银行帐户的概念,包括的变量有"帐号"和"存款余额",包括的方法有"存款"、"取款"、"查询余额"和”显示帐号”。定义主类,创建帐户类的对象,并完成相应操作。 提示:关键代码如下: public int getleftmoney(){ return leftmoney; } public void savemoney(double money){ leftmoney+=money; } public void getmoney(double money){ if(money<=leftmoney) leftmoney-=money; else System.out.println("只能取:"+leftmoney); } … bankaccount ba=new bankaccount(888123,1000); ba.savemoney(21000); System.out.println("存入21000元后余额为:"+ba.getleftmoney()); ba.getmoney(11500); System.out.println("11500元后余额为:"+ba.getleftmoney()); 实验题5 完成课本4.13(102页)jar文件的生成并产生Use类的运行结果。 实验题6 对象的组合。现有一个Rectangle类,请设计一个柱形类cuboid。 1. 此类具有两个成员变量,(1)Rectangle类型的成员变量rect(长方体以长方形做底)和(2)height(柱形的高)。 2. 此类应具有构造方法。 3. (1)此类应具有求面积的方法getVolme()。 (2)此类应具有设置和获得底的长度和宽度的方法:getBottomWidth(), setBottomWidth(), getBottomLength(), setBottomLength()。 Rectangle的代码如下: public class Rectangle { double width,length; public void setWidth(double w) { if(w > 0) this.width=w; } public double getWidth(){ return width; } public void setLength (double h) { if(length > 0) this.length =h; } public double getLength () { return length; } } 实验题5 有图形类的父类Shape,参照圆Circle类补充完整正方性Square和三角形Triangle类,并分析运行结果。 class Shape { void draw() {} void erase() {} } class Circle extends Shape { void draw() { System.out.println("Circle.draw()");} void erase() { System.out.println("Circle.erase()");} } class Square extends Shape { void draw() { } void erase() { } } class Triangle extends Shape { void draw() { } void erase() { } } public class Shapes { public static Shape randShape() { switch((int)(Math.random() * 3)) { default: // To quiet the compiler case 0: return new Circle(); case 1: return new Square(); case 2: return new Triangle(); } } public static void main(String[] args) { Shape[] s = new Shape[3]; // Fill up the array with shapes: for(int i = 0; i <s.length; i++) s[i] = randShape(); // Make polymorphic method calls: for(int i = 0; i <s.length; i++) s[i].draw(); } } 实验题6有两个类:MobileManagement和Mobile,分别描述如图所示两部手机名称及价格,类MobileManagement在包cn.edu.nwsuaf.jp.p3中,而Mobile在包cn.edu.nwsuaf.jp.p3.data中。它们代码如下。运行MobileManagement.java,你应该看到如图所示结果。 [基本要求] 在空白处填写相关代码并修改上面程序,使程序能够显示两部手机的价格和数量,运行结果如图所示。 E365, 1780 RMB M330, 1450 RMB 手机及价格图 程序Mobile.java源代码: public class Mobile { /** Holds the name of the mobile. */ private String name; /** Holds the price of the mobile. */ private float price; /** Creates a new mobile object. */ public Mobile(String name, float price) { this.name = name; this.price = price; } /** Gets the name of the mobile. */ public String getName() { return name; } /** Gets the price of the mobile. */ Public float getPrice() { return price; } } 程序MobileManagement.java源代码: import javax.swing.JOptionPane; public class MobileManagement { /** Defines the entry point of the application. */ public static void main(String[] args) { // Creates two mobile phone objects. Mobile mobile1 = new Mobile("E365", 1780); Mobile mobile2 = new Mobile("M330", 1450); // Displays the two mobile phones in a dialog box. JOptionPane.showMessageDialog(null, "Mobile phones:\n\n"+mobile1.getName()+"\n"+mobile2.getName()); } } 实验题7有四个类,主类Store在包cn.edu.nwsuaf.jp.p4中,Mobile、Mp3Player、Product在包cn.edu.nwsuaf.jp.p4.data中,Mobile、Mp3Player是Product的子类,Product和Store代码如下: Store.java源代码: 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 { //** Defines the entry point of the application. */ public static void main(String[] args) { // Creates two mobile phone objects. Mobile mobile1 = new Mobile("China Mobile", "E365",1780); Mobile mobile2 = new Mobile("China Mobile", "M330",1450); Mp3Player player1 = new Mp3Player("Meizo X3", 256, 399); Mp3Player player2 = new Mp3Player("Meizo E5", 512, 580); Mp3Player player3 = new Mp3Player("Xlive XM MP3 Play",256, 930); Product[] products={mobile1,mobile2,player1,player2, player3}; Arrays.sort(products); String text = ""; for(int index = 0; index <products.length; ++index) text += products[index].toString()+"\n"; // Displays the two mobile phones in a dialog box. JOptionPane.showMessageDialog(null,"The products are:\n\n"+text+"\nThere are "+Product.getCount() +" products."); } } Product.java源代码: package cn.edu.nwsuaf.jp.p4.data; public abstract class Product implements Comparable<Product> { /** Holds the name of the product. */ protected String name; /** Holds the price of the product. */ protected float price; /** Holds the number of products. */ protected static int count; /** Create a new product object. */ protected Product(String name, float price) { this.name = name; this.price = price; ++count; } /** Gets the name of the product. */ public String getName() { return name; } /** Gets the price of the product. */ public float getPrice() { return price; } /** Gets the number of products. */ public static int getCount() { return count; } /** Compares this product with the given product. */ public int compareTo(Product product) { return new Float(product.getPrice()).compareTo(price); } } [基本要求] 设计类Mobile和类MP3Player,使它们和类Product、Store组成一个完整的程序,且运行结果如图所示。 实验题8实现一个名为Person的类和它的子类Employee, Manager是Employee的子类,设计一个接口Add用于涨工资,接口中有一个抽象方法addVage()。普通员工一次能涨10%,经理能涨20%。 具体要求如下: (1)Person类中的属性有:姓名name(String类型),地址address(String类型)并写出该类的构造方法; (2)Employee类中的属性有:工号ID(String型),工资wage(double类型),工龄(int型),写出该类的构造方法; (3)Manager类中的属性有:级别level(String类型),写出该类的构造方法; 编写一个测试类,产生一个员工和一个经理并输出其具有的信息, 之后给这两个人增加工资,然后再次输出信息。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服