![实验四 Java语言面向对象基础编程_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/2f4cc8af-0d1a-4f7b-9f64-be0ba9292af4/2f4cc8af-0d1a-4f7b-9f64-be0ba9292af41.gif)
![实验四 Java语言面向对象基础编程_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/2f4cc8af-0d1a-4f7b-9f64-be0ba9292af4/2f4cc8af-0d1a-4f7b-9f64-be0ba9292af42.gif)
![实验四 Java语言面向对象基础编程_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/2f4cc8af-0d1a-4f7b-9f64-be0ba9292af4/2f4cc8af-0d1a-4f7b-9f64-be0ba9292af43.gif)
![实验四 Java语言面向对象基础编程_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/2f4cc8af-0d1a-4f7b-9f64-be0ba9292af4/2f4cc8af-0d1a-4f7b-9f64-be0ba9292af44.gif)
![实验四 Java语言面向对象基础编程_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/2f4cc8af-0d1a-4f7b-9f64-be0ba9292af4/2f4cc8af-0d1a-4f7b-9f64-be0ba9292af45.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验项目编号实验项目名称 Java语言面向对象基础编程实验学时实验日期成绩实验地点指导老师实验四 Java语言面向对象基础编程一、实验目的1.理解Java语言是如何体现面向对象编程基本思想,2.了解类的封装方法,以及如何创建类和对象,3.了解成员变量和成员方法的特性。二、实验内容1.类的定义、封装和对象创建的使用。编写一个Java应用程序,该程序中有3个类:Trangle、Leder和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。具体要求如下:(1)Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。另外,Tr
2、angle类还具有一个boolean型的属性,该属性用来判断三个属能否构成一个三角形。(2)Lader类具有类型double的上底、下底、高、面积属性,具有求面积的功能。(3)Circle类具有类型为double的半径、周长和面积属性,具有求周长、面积的功能。package exercise;class Trangledouble sideA,sideB,sideC,area,length;boolean boo;/带三个参数的构造函数public Trangle(double a,double b,double c) sideA=a;/参数a,b,c 分别赋值给sideA,sideB,sid
3、eCsideB=b;sideC=c;if(sideA+sideB>sideC && sideA+sideC>sideB && sideB+sideC>sideA) /a,b,c 构成三角形的条件表达式boo=true;/给boo 赋值。elseboo=false;/给boo 赋值。double getLength()return sideA+sideB+sideC;/方法体,要求计算出length 的值并返回/计算三角形的面积public double getArea()if(boo)double p=(sideA+sideB+sideC)/2
4、.0;area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC);return area;elseSystem.out.println("不是一个三角形,不能计算面积");return 0;public void setABC(double a,double b,double c)sideA=a;/参数a,b,c 分别赋值给sideA,sideB,sideCsideB=b;sideC=c;if(sideA+sideB>sideC && sideA+sideC>sideB && sideB+side
5、C>sideA)/a,b,c 构成三角形的条件表达式boo=true;/给boo 赋值。 else boo=false;/给boo 赋值。/定义一个梯形类class Laderdouble above,bottom,height,area;Lader(double a,double b,double h)above=a;/方法体,将参数a,b,c 分别赋值给above,bottom,heightbottom=b;height=h;double getArea()return (above+bottom)*height/2.0;/方法体,,要求计算出area 返回/定义一个圆类class
6、Circle double radius,area;Circle(double r)radius=r;/方法体double getArea() return Math.PI*Math.pow(radius, 2);/方法体,要求计算出area 返回double getLength()return 2*Math.PI*radius;/getArea 方法体的代码,要求计算出length 返回void setRadius(double newRadius) radius=newRadius;double getRadius() return radius;public class shiyan4_
7、1public static void main(String args)double length,area;Circle circle=null;Trangle trangle;Lader lader; circle=new Circle(3);/创建对象circle trangle=new Trangle(6,5,2);/创建对象trangle。 lader=new Lader(8,9,6);/创建对象laderlength=circle.getLength();/ circle 调用方法返回周长并赋值给lengthSystem.out.println("圆的周长:"
8、+length);area=circle.getArea();/ circle 调用方法返回面积并赋值给areaSystem.out.println("圆的面积:"+area);length=trangle.getLength();/ trangle 调用方法返回周长并赋值给lengthSystem.out.println("三角形的周长:"+length);area=trangle.getArea();/ trangle 调用方法返回面积并赋值给areaSystem.out.println("三角形的面积:"+area);area=
9、lader.getArea();/ lader 调用方法返回面积并赋值给areaSystem.out.println("梯形的面积:"+area);trangle=new Trangle(12,34,1);/ trangle 调用方法设置三个边,要求将三个边修改为12,34,1。area=trangle.getArea();/ trangle 调用方法返回面积并赋值给areaSystem.out.println("三角形的面积:"+area);length=trangle.getLength();/ trangle 调用方法返回周长并赋值给lengthS
10、ystem.out.println("三角形的周长:"+length);2实例成员与类成员的使用。按程序模板的要求编写源文件,要特别注意程序的输出结果,并能正确解释输出的结果。package exercise;class Afloat a;static float b;void setA(float A)a = A;void setB(float B)b = B;float getA()return a;float getB()return b;void outputA()System.out.println(a);static void outputB()System.o
11、ut.println(b);public class shiyan4_2 SuppressWarnings("static-access")public static void main(String args) / TODO Auto-generated method stubA.b = 100;A.outputB();A cat = new A();A dog = new A();cat.setA(200);cat.setB(400);dog.setA(150);dog.setB(300);cat.outputA();cat.outputB();dog.outputA(
12、);dog.outputB();3.方法中参数传递的练习在其它语言中,函数调用或过程调用时参数有传值调用和传地址调用之分。在Java 中,方法中的参数传递可以分为传值调用或对象方法调用等方式。传值调用即传递的参数是基本数据类型,调用方法时在方法中将不能改变参数的值,这意味着只能使用它们。对象调用是指先调用对象,再调用对象的方法,这种方式可以修改允许存取的成员变量。所以,如果不想改变参数的值,可以采用传值调用的方法。如果想改变参数的值,可采用对象调用的方法,间接修改参数的值。(1)编写一个传值调用的程序文件SY3_3.java。程序功能:程序首先给整型变量x 和y 赋一个初值10,然后使用传值调
13、用方式调用方法ff1 对x 和y 做乘方及输出x 和y 的乘方值,最后再输出x 和y 的乘方值。package exercise;public class shiyan4_3 public static void main(String args) / TODO Auto-generated method stubint x = 10, y = 10;swap(x, y);System.out.println("x = " + x + ", y = " + y);static void swap(int passX, int passY)passX =
14、passX * passX;passY = passY * passY;System.out.println("passX = " + passX + ", passY = " + passY);(2)编写一个调用对象方法的程序文件SY3_4.java。package exercise;public class shiyan4_4 public static void main(String args) / TODO Auto-generated method stubPower p = new Power();p.swap(p.x, p.y);Syst
15、em.out.println("方法调用后 x = " + p.x + ", y = " + p.y);class Powerint x = 10, y = 10;void swap(int passX, int passY)System.out.println("初始时 x = " + x + ", y = " + y);x = passX * passX;y = passY * passY;System.out.println("方法调用中 x = " + x + ", y = &
16、quot; + y);4定义一个名为MyRectangle的矩形类,类中有4 个私有的整型域,分别是矩形的左上角坐标(xUp,yUp)和右下角坐标(xDown,yDown);类中定义没有参数的构造方法和有4 个int参数的构造方法,用来初始化类对象。类中还有以下方法:getW( )计算矩形的宽度;getH( )计算矩形的高度;area( )计算矩形的面积;toString( )把矩形的宽、高和面积等信息作为为字符串返回。编写应用程序使用MyRectangle类。package exercise;class MyRectangleprivate int xUp, yUp;private int
17、xDown, yDown;public MyRectangle()xUp = yUp = xDown = yDown = 0;public MyRectangle(int xu, int yu, int xd, int yd)xUp = xu;yUp = yu;xDown = xd;yDown = yd;public int getW()return Math.abs(xUp - xDown);public int getH()return Math.abs(yUp - yDown);public int area()return this.getW() * this.getH();publi
18、c String toString()String tempStr = "width = " + this.getW() + " height = " + this.getH() + " area = " + this.area();return tempStr;public class shiyan4_5public static void main(String args) / TODO Auto-generated method stubMyRectangle tempRec1 = new MyRectangle();MyRec
19、tangle tempRec2 = new MyRectangle(-1, 5, 4, 7);System.out.println("This first rectangle information " + tempRec1.toString();System.out.println("This second rectangle information " + tempRec2.toString();5请定义一个名为Card 的扑克牌类,该类有两个private 访问权限的字符串变量face 和suit:face 描述一张牌的牌面值(如:"Ac
20、e", "Deuce", "Three","Four","Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King");suit描述一张牌的花色(如:"Hearts", "Diamonds", "Clubs"
21、, "Spades")。定义Card 类中的public 访问权限的构造方法,为类中的变量赋值;定义protected 访问权限的方法getFace(),得到扑克牌的牌面值; 定义protected 访问权限的方法getSuit(),得到扑克牌的花色; 定义方法toString(),返回表示扑克牌的花色和牌面值字符串(如“Ace ofHearts”、“Ten of Clubs”等)。package exercise;class Cardprivate String face;private String suit;public Card(String f, String s
22、)face = f;suit = s;protected String getFace()return face;protected String getSuit()return suit;public String toString()return face + " of " + suit;public class shiyan4_6public static void main(String args) / TODO Auto-generated method stubCard card1 = new Card("Ace", "Hearts
23、");Card card2 = new Card("Ten", "Clubs");System.out.println(card1.toString();System.out.println(card2.toString();6设计一个Worker 类,其成员变量有:身份证号、姓名、性别、年龄、入职时间、工资/月、奖金/月、加班费/月、电话费/月、生活费/月、交通费/月、房租/月;用构造方法进行初始化;其他成员方法:输出工人信息的方法(包括输出净收入),当某个信息没有被赋值(初始化)时,输出信息为“未知”;计算总收入的方法,总收入中要考虑扣除国
24、家现行的个人所得税法规定的税金;计算总支出的方法。package exercise;class Workerprivate String number;private String name;private String sex;private int age;private String entry;private double salary;private double bonus;private double overtimeMoney;private double phoneMoney;private double liveMoney;private double trafficMon
25、ey;private double rent;public Worker()number = name = sex = entry = ""age = 0; salary = bonus = overtimeMoney = phoneMoney = liveMoney = trafficMoney = rent = 0;public Worker(String num, String nam, String se,int ag, String ent, double sal, double bon,double ove, double pho, double liv, do
26、uble tra, double ren)number = num;name = nam;sex = se;age = ag;entry = ent;salary = sal;bonus = bon;overtimeMoney = ove;phoneMoney = pho;liveMoney = liv;trafficMoney = tra;rent = ren;public void showInfo()if(number.equals("")System.out.println("");elseSystem.out.println(number +
27、"member infomation list :");System.out.println(name);System.out.println(sex);System.out.println(age);System.out.println(entry);double money = salary + bonus + overtimeMoney - phoneMoney - liveMoney - trafficMoney - rent;System.out.println(money);public class shiyan4_7 public static void ma
28、in(String args) Worker worker1 = new Worker();Worker worker2 = new Worker("0715646", "leafspace", "women", 22, "20160901", 5000, 500, 1200, 50, 800, 150, 1500);worker1.showInfo();worker2.showInfo();7设计一个汽车Car类,其成员变量有:商标、型号、系列、箱式(三厢、两厢)、颜色、出厂日期、门数、排量、价格、可优惠价、百公
29、里耗油量、最高时速、最大功率、最大扭矩、加速时间、刹车距离;用构造方法进行初始化;其他成员方法:输出汽车信息的方法,当某个信息没有被赋值(初始化)时,输出信息为“未知”;计算行驶一定距离总耗油量,以及给定油价计算燃油费用的方法。package exercise;class Carprivate String logo;private String model;private String series;private String boxN;private String color;private String outDate;private int doorN;private long ou
30、tN;private double price;private double sellprice;private double oil;private int speed;private double maxpower;private double maxspace;private double time;private double tspace;public Car(String log, String mod, String ser, String box, String col, String outd,int doorn, long outn, double pri, double sell, double oi, int spe, double maxpo, double maxsp, double tim, double tsp)logo = log;model = mod;series = ser;boxN = box;color = col;outDate = outd;doorN = doorn;outN = o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年五股东共同投资协议文本
- 2025年新型可控气氛炉项目申请报告模稿
- 2025年医疗行业信息共享合同样式
- 2025年创意企业合作协议标准文本
- 2025年分期付款合同服务全方位指南
- 2025年供应商与采购商海鲜交易合同
- 2025年酸碱平衡调节药项目规划申请报告
- 2025年废弃土地资源化合同
- 2025年专利申请买卖双方协议
- 2025年人才选拔与委托合作协议标准文本
- 气流组织模拟分析报告教程
- 教科版小学科学五年级【上册】全册教案
- 车间消防安全知识培训课件
- 劳动法概述劳动法与新经济业态的结合
- 孤残儿童护理员儿童护理工作基础知识课件
- 九年级短跑2 公开课教学设计
- 美学原理全套教学课件
- 平衡计分卡-化战略为行动
- 脑卒中后认知障碍的护理课件
- 课堂精练九年级全一册数学北师大版2022
- 着衣母婴卧像教学设计
评论
0/150
提交评论