ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:87.94KB ,
资源ID:10944043      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10944043.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java类与继承复用验证.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

java类与继承复用验证.docx

1、java类与继承复用验证上机内容: 类与继承、复用、验证 学号: 班级: 姓名: 1. 已实现的功能说明(UML图或文字)1) 设计并编写GeometricObject图形类要求a)覆盖toString()输出图形的名称和数据成员值b)覆盖equals()比较图形的面积c)定义area()方法计算图形的面积2) 定义矩形、圆形、三角形类由GeometricObject派生要求:重写必要的方法:注意:成员的访问权限3) 将这些类放入一个软件包中4) 编写图书类,在主类中计算并输出图书总价。a) 图书基本信息:name, author, price, amount;b) 统计所有图书总价。5) 验

2、证型上机实践a) 编写一段程序,测试String,StringDuffer,StringBuilder的创建,赋值,连接,替换,删除操作;b) 完成House类的clone改为深复制;c) 编写一段程序,自定义一维和二维数组测试数组常用方法。2. 主要源码(必要的注释)1.图形package testt;public abstract class GeometricObject /定义数据类型的相关方法 public String toString() return name:+name+nradius=+radius+nlength=+length+ wide=+wide+nsideA=+s

3、ideA+ sideB=+sideB+ sideC=+sideC+nS=+area(); public boolean equals(GeometricObject other) if (this.area() = other.area() return true; else return false; abstract double area();class Rectangle extends GeometricObject String name=矩形; public Rectangle(double l,double w) length=l; wide=w; double area()

4、return length*wide; public void display() System.out.println(name:+name+nlength=+length+ wide=+wide+nS=+area(); class Circle extends GeometricObject String name=圆形; public Circle(double r) radius=r; double area() return 3.14*radius*radius; public void display() System.out.println(name:+name+nradius=

5、+radius+nS=+area(); class Triangle extends GeometricObject /必要的get、set方法 double area() double p=(sideA+sideB+sideC)/2.0; return Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC); public void display() System.out.println(name:+name+nradius=+radius+nS=+area(); package testt;public class testy /测试 public stati

6、c void main(String args) Rectangle y=new Rectangle(3,4); y.display(); Circle ci=new Circle(2); ci.display(); Triangle T=new Triangle(2,2,2); T.display(); System.out.println(ci.equals(T); 2.图书:package testt;import java.util.Scanner;public class Book Scanner input=new Scanner(System.in); /必要的数据类型定义 /以

7、下为添加读者信息 double zongjias=0; public void add() System.out.println(请输入要添加第+(i+1)+书籍的名字); namei=input.next(); System.out.println(请输入要添加的第+(i+1)+书籍的作者); authori=input.next(); System.out.println(请输入要添加第+(i+1)+书籍的价格); pricei=input.nextFloat(); System.out.println(请输入要添加第+(i+1)+的书籍的数量); amounti=input.nextIn

8、t(); i+; public void ss() zong0=0; for(int j=0;ji;j+) zongj=pricej*amountj; System.out.println(第+(j+1)+本书籍的总价是+zongj); for(int p=0;pi;p+) zongjias=zongp+zongjias; System.out.println(您所添加的书籍的总价是+zongjias); public static void main(String args) /主函数,用来测试 System.out.println(请选择您的操作: n1添加书籍 n2计算所添加书籍的总价格

9、 n0退出系统); Scanner input=new Scanner(System.in); 3.Bufferpackage testt;public class Buffer public static void main(String args) try int count = 2; testString(count); testStringBuffer(count); testStringBuilder(count); catch (Exception e) e.printStackTrace(); private static String testString(int count)

10、 /String String result = ; long begin = System.currentTimeMillis(); /开始时间 for (int i = 0; i 1500; i+) result += hello ; long end = System.currentTimeMillis(); /结束时间 long time = end - begin; System.out.println(String 方法拼接+1500+次消耗时间: + time + 毫秒); String resulta = Hello,; /创建及赋值A String resultb = how

11、 are you!; /创建及赋值B System.out.println(赋值a为:+resulta); System.out.println(赋值b为:+resultb); result = resulta + resultb; /连接 System.out.println(连接结果为:+result); String replace=resulta.replace(Hello,Hi);/string 替换 result = replace + resultb; System.out.println(替换结果为:+result); String c=resultb.replace(are

12、you, ); /删除 System.out.println(删除结果为:+c); return result; private static String testStringBuffer(int count) StringBuffer result = new StringBuffer(); long begin = System.currentTimeMillis(); for (int i = 0; i 1500; i+) result.append(hello); long end = System.currentTimeMillis(); long time = end - beg

13、in; System.out.println(StringBuilder 方法拼接+1500+次消耗时间: + time + 毫秒); StringBuffer resulta =new StringBuffer(Hello,); /创建及赋值A StringBuffer resultb =new StringBuffer(how are you!); /创建及赋值B System.out.println(赋值a为:+resulta); System.out.println(赋值b为:+resultb); result = resulta.append(resultb); /连接 System

14、.out.println(连接结果为:+result); result = result.replace(6, 18, HOW ARE YOU!);/string 替换 System.out.println(替换结果为:+result); result = result.delete(6, 18); /删除 System.out.println(删除结果为:+result); return result.toString(); private static String testStringBuilder(int count) StringBuilder result = new String

15、Builder(); long begin = System.currentTimeMillis(); for (int i = 0; i 1500; i+) result.append(hello); long end = System.currentTimeMillis(); long time = end - begin; System.out.println(StringBuffer 方法拼接+1500+次消耗时间: + time + 毫秒); StringBuilder resulta =new StringBuilder(Hello,); /创建及赋值A StringBuilder

16、 resultb =new StringBuilder(how are you!); /创建及赋值B System.out.println(赋值a为:+resulta); System.out.println(赋值b为:+resultb); result = resulta.append(resultb); /连接 System.out.println(连接结果为:+result); result = result.replace(6, 18, HOW ARE YOU!);/string 替换 System.out.println(替换结果为:+result); result = result

17、.delete(6, 18); /删除 System.out.println(删除结果为:+result); return result.toString(); 4.深复制package testt;public class Shenfuzhi public static void main(String args) shallowcopy a=new shallowcopy(tanghaolin,lll); shallowcopy copy1=(shallowcopy)a.clone(); /改变属性值 System.out.println(浅复制前的对象普通数据类型成员值+a.names+

18、 浅复制前的引用类型成员值+a.test1.name); System.out.println(浅复制后的对象普通数据类型成员值+copy1.names+ 浅复制后的引用类型成员值+copy1.test1.name); a.test1.name=123; /String 是基本数据类型 所以复制时 只把值拷贝过去 /test1是引用类型中的对象 所以复制时拷贝的是test1的地址 System.out.println(改变属性值后浅复制前的对象普通数据类型成员值+a.names+ 浅复制前的引用类型成员值+a.test1.name); System.out.println(改变属性值后浅复制后

19、的对象普通数据类型成员值+copy1.names+ 浅复制后的引用类型成员值+copy1.test1.name); System.out.println(浅复制前的对象是否相等+(a=copy1); /=比较的是对象的地址 通过地址来观察是否相等 或者是否另外创建了新的对象 System.out.println( 浅复制前后普通成员变量是否相等 + (a.names=copy1.names); System.out.println(浅复制前后引用类型变量的是否相等+(a.test1.name=copy1.test1.name); deepcopy b=new deepcopy(lll,tang

20、haolin); deepcopy copy2=(deepcopy)b.clone(); System.out.println(深复制前的对象普通数据类型成员值+b.name+ 深复制前的引用类型成员值+b.test2.name); System.out.println(深复制后的对象普通数据类型成员值+copy2.name+ 深复制后的引用类型成员值+copy2.test2.name); /改变属性值 b.test2.name=789; System.out.println(改变属性值后深复制前的对象普通数据类型成员值+b.name+ 深复制前的引用类型成员值+b.test2.name);

21、System.out.println(改变属性值后浅复制后的对象普通数据类型成员值+copy2.name+ 浅复制后的引用类型成员值+copy2.test2.name); System.out.println(浅复制前的对象是否相等+(b=copy2); /=比较的是对象的地址 通过地址来观察是否相等 或者是否另外创建了新的对象 System.out.println( 浅复制前后普通成员变量是否相等 + (b.name=copy2.name); System.out.println(浅复制前后引用类型变量的是否相等+(b.test2.name=copy2.test2.name); class

22、shallowcopy implements Cloneable test test1; String names; public shallowcopy(String names,String obj) this.names=names; test1=new test(obj); /proteced属性 public Object clone() try /浅赋值直接调用父类的赋值函数 return super.clone(); catch(CloneNotSupportedException e)/抛出异常 return null; class deepcopy implements Cl

23、oneable test test2; String name; public deepcopy(String name, String obj) /this.test2=o; test2=new test(obj); this.name=name; public Object clone() deepcopy s=new deepcopy(name,test2.name); return s; class test String name; int i; public test(String name) this.name=name; /this.i=i; 5.数组package testt

24、;import java.util.Arrays;public class Shuzu public static void main(String args) /一位数组和二维数组的常用方法 System.out.println(一维数组部分方法测试); int p=1,11,6,8,4,66,12; /数组赋值函数 int s=new int10; s=Arrays.copyOf(p, p.length); System.out.println(数组赋值(s是复制而来)); /Duplicate 重复 for(int t=0;ts.length;t+) System.out.print(s

25、t+ ); /排序函数 System.out.println(); Arrays.sort(p); System.out.println(数组排序函数(重排结果如下)); for(int w=0;wp.length;w+) System.out.print(pw+ ); System.out.println(); System.out.println(二维数组部分函数测试); int r=2,2,3,6,5,6,6,5,6; for(int v=0;vr.length;v+) for(int u=0;urv.length;u+) System.out.print(rvu+ ); System.out.println(); 3. 开发中遇到的问题与解决方法 1)类与类之间的关系模糊,致使在编程中期目标不明确 编程第一步应先进行总体规划,画出类图,明确类间层次关系 2)重写toString(),equals方法。4. 目前存在的问题与改进方案 equals方法简单实现。可以进一步添加图形数据验证方法,例如:三角形任意两边大于第三边,半径大于0等。5. 运行效果图

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1