西农java实验二.doc_第1页
西农java实验二.doc_第2页
西农java实验二.doc_第3页
西农java实验二.doc_第4页
西农java实验二.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验2 面向对象编程实验目的掌握Java程序面向对象编程的基本架构,会运用面向对象的思想编写Java程序。实验题1 阅读如下程序,完成思考题。class CCircle double pi; double radius; double getRadius() return radius; / getRadius方法的返回值 void setCircle(double r, double p) /定义setCircle方法及其变量 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,并且得到如下的结果package zuoye;public class Car String name; int speed; int ChangSpeed; String changeName; String changeName (String s) return name; void stop(int s) System.out. println (停车后,车速为:0);void ChangSpeed(int s)System.out. println (当前车速为:+s);public static void main(String args) Car my =new Car(); my.changeName=yuwei; my.ChangSpeed(20);System.out. println ( 车主为:+my.changeName );my.stop(0);实验题3 定义一个类MyProgram,包含两个属性:一个是private的整型属性data、一个是private的String类型的属性str,封装这两个属性的四个方法setData()和getData()、setStr( )和getStr();将这两个属性转变为字符串的方法是toStr()。编写程序,使用MyProgram类,实现数据的访问和修改,并调用toStr()方法显示该类的属性。基本要求 编写完整程序。package zuoye;public class MyProgram private int data; private String str; public void setData(int data) |定义setData this.data=data; public int getData() |定义getData return data; public void setStr(String str) |定义setStr this.str=str; |定义getStr public String getstr() return str; public String toStr() String s=data + +str; return s; public static void main(String arg) MyProgram p=new MyProgram(); |创建对象 p.setData(9999); |方法调用 p.setStr(abcd); |方法调用System.out.println(变换后的字符+p.toStr(); 实验题4定义一个类实现银行帐户的概念,包括的变量有帐号和存款余额,包括的方法有存款、取款、查询余额和”显示帐号”。定义主类,创建帐户类的对象,并完成相应操作。package zuoye;public class bankaccount int leftmoney; String bankaccount; public void setbankaccount(String bankaccount) this.bankaccount=bankaccount; public String getbankaccount() return bankaccount; public void setleftmoney(int leftmoney) this.leftmoney=leftmoney; public int getleftmoney() return leftmoney; public void savemoney(double money) leftmoney+=money; public void getmoney(double money) if(money 0) this.width=w; public double getWidth() return width; public void setLength (double h) if(h 0) this.length =h; public double getLength () return length; package zuoye;public class cuboid double BottomWidth,BottomLength,height; public void setBottomWidth(double BottomWidth ) if(BottomWidth 0) this.BottomWidth=BottomWidth; public double getBottomWidth() return BottomWidth; public void setBottomLength (double BottomLength) if(BottomLength 0) this.BottomLength =BottomLength; public double getBottomLength () return BottomLength; public void setheight(double height ) if(height 0) this.height=height; public double getheight() return BottomLength; public double getVolme() return BottomLength*BottomWidth*height; public static void main(String args) Rectangle rect=new Rectangle(); rect.setLength(3); rect.setWidth(4); cuboid a=new cuboid(); a.setBottomLength(3); a.setBottomWidth(4); a.setheight(5); System.out.println(柱形的底面长方形的长为+rect.length+柱形的底面长方形的宽为:+rect.width+柱形的高为+a.height); System.out.println(它的体积是+a.getVolme(); 实验题5有图形类的父类Shape,参照圆Circle类补充完整正方性Square和三角形Triangle类,并分析运行结果。package zuoye;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() System.out.println(Square.draw();void erase() System.out.println(Square.erase();class Triangle extends Shape void draw() System.out.println(Triangle.draw(); void erase() System.out.println(Triangle.erase(); public class Shapes public static Shape randShape() switch(int)(Math.random() * 3) default: case 0: return new Circle();case 1: return new Square();case 2: return new Triangle(); public static void main(String args) Shape s = new Shape3; for(int i = 0; i s.length; i+)si = randShape(); for(int i = 0; i s.length; i+)si.draw(); 实验题6有两个类:MobileManagement和Mobile,分别描述如图所示两部手机名称及价格,类MobileManagement在包.nwsuaf.jp.p3中,而Mobile在包.nwsuaf.jp.p3.data中。它们代码如下。运行MobileManagement.java,你应该看到如图所示结果。基本要求 在空白处填写相关代码并修改上面程序,使程序能够显示两部手机的价格和数量,运行结果如图所示。package .nwsuaf.jp.p3.data;public class Mobile /* Holds the name of the mobile. */private String name;/* Holds the price of the mobile. */private float price; private int number;/* Creates a new mobile object. */public Mobile(String name, float price,int number) = name;this.price = price; this.number=number;/* Gets the name of the mobile. */public String getName() return name;/* Gets the price of the mobile. */public float getPrice() return price;public int getnumber()return number;package .nwsuaf.jp.p3;import javax.swing.JOptionPane;import .nwsuaf.jp.p3.data.Mobile;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,1);Mobile mobile2 = new Mobile(M330, 1450,1);int s=mobile1.getnumber()+mobile2.getnumber();/ Displays the two mobile phones in a dialog box. JOptionPane.showMessageDialog(null, Mobile phones:nn+mobile1.getName()+: +mobile1.getPrice()+RMB+n +mobile2.getName()+: +mobile2.getPrice()+RMB+n+There are +s+mobile phones);实验题7有四个类,主类Store在包.nwsuaf.jp.p4中,Mobile、Mp3Player、Product在包.nwsuaf.jp.p4.data中,Mobile、Mp3Player是Product的子类,Product和Store代码如下:基本要求 设计类Mobile和类MP3Player,使它们和类Product、Store组成一个完整的程序,且运行结果如图所示。package .nwsuaf.jp.p4;import java.util.Arrays;import javax.swing.JOptionPane;import .nwsuaf.jp.p4.data.Mobile;import .nwsuaf.jp.p4.data.Mp3Player;import .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 += productsindex.toString()+n;/ Displays the two mobile phones in a dialog box.JOptionPane.showMessageDialog(null, The products are:n +mobile1.getName()+ mobile2.getName()+ player3.getName() + n + player2.getName() + n+player1.getName() + nThere are + Product.getCount() + products.); package .nwsuaf.jp.p4.data;public class Mobile extends Product private String MakePlace; public Mobile(String makePlace,String name, float Price ) super(name, Price); this.MakePlace = makePlace; public String getMakePlace() return MakePlace; public void setMakePlace(String makePlace) MakePlace = makePlace; Override public String getName() / TODO Auto-generated method stub return name + on + MakePlace + Mobile, + price + RMBn; package .nwsuaf.jp.p4.data;public class Mp3Player extends Product private long MemorySize; public Mp3Player(String name, long memorySize,float Price) super(name, Price); this.MemorySize = memorySize; public long getMemorySize() return MemorySize; public void setMemorySize(long memorySize) MemorySize = memorySize; public String getName() return name + ( + MemorySize + MB + ), + price + RMB; package .nwsuaf.jp.p4.data;public abstract class Product implements Comparable protected String name;protected float price; protected static int count; protected Product(String name, float price) = name;this.price = price;+count;public String getName() return name;public float getPrice() return price;public static int getCount() return count;public int compareTo(Product product) return new Float(product.getPrice().compareTo(price);实验题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类型),写出该类的构造方法;编写一个测试类,产生一个员工和一个经理并输出其具有的信息, 之后给这两个人增加工资,然后再次输出信息。package zuoyou;public class Employee extends Personprotected String ID;protected double wage;protected int workAge;public Employee(String name, String address,String ID,double wage,int workAge) super(name, address);this.ID=ID;this.wage=wage;this.workAge=workAge;public String getID() return ID;public double getWage() return wage;public int getWorkAge() return workAge;public void printInfo()System.out.println(name:+this.getName()+ address:+this.getAddress()+ id:+this.getID()+ wage:+this.getWage()+ workAge:+this.getWorkAge();System.out.println(name:+this.getName()+ address:+this.getAddress()+ id:+this.getID()+ wage:+new Add().addWage(null, this.getWage()+ workAge:+this.getWorkAge();package zuoyou;public class Manager extends Employee protected String level;public Manager(String name, String address, String ID, double wage,int workAge,String level) super(name, address, ID, wage, workAge);this.level=level;public

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论