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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

Java实验三参考答案昆工版本.docx

1、Java实验三参考答案昆工版本昆明理工大学信息工程与自动化学院学生实验报告( 20122013学年 第 一 学期 )课程名称:java程序设计 开课实验室:信自445 2012年 11月 21 日年级、专业、班计科11学号姓名苏东博,狄家帆,张盼成绩95实验项目名称Java面向对象程序设计指导教师张晓丽教师评语复习题仔细查看并掌握;编程题可参考书提供的源代码。 教师签名: 年 月 日一、实验目的及内容目的:掌握Java中面向对象的思想,类和对象的应用,可见性修饰符,数据域的封装,静态变量和方法,给方法传递对象参数。内容:完成下面要求的程序和习题(一)复习题1课本P234第八章复习题8.12,给

2、出正确的程序并显示结果,分析错误问题;2课本P235第八章复习题8.16,显示并分析结果;3课本P235第八章复习题8.17,显示并分析结果;4课本P236第八章复习题8.18,显示并分析结果;5课本P236第八章复习题8.19,显示并分析结果;6课本P237第八章复习题8.20,给出正确的程序并显示结果,分析错误问题;(二)编程题1 课本P238第八章编程题8.4(使用Random类,参考jdk_7_docs.api,)注:通俗说,两者的区别是:带种子的,每次运行生成的结果都是一样的。 不带种子的,每次运行生成的都是随机的,没有规律可言。2课本p23第八章编程练习题8.(账户类);注:月利率

3、balance * (annualInterestRate / 12)3课本p23第八章编程练习题8.(正边形)注:面积公式错误:p-PI;则JAVA编程公式:n*side*side/(4*Math.tan(Math.PI/n)访问器getter和修改器setter,在eclipse中可自动生成(eclipse中source菜单Generate getter and setter)4完成并掌握每章课后复习题,上课提问检查;5每章其他编程练习题;(选作)二、要求(编程题中给出实验内容的程序设计、实现和结果,并对结果进行分析。)(一) 复习题1. 课本P234第八章复习题8.12,给出正确的程序并

4、显示结果,分析错误问题;分析:不能从静态方法中直接调用一个实例方法或引用实例变量,须实例化对象后,通过该对象调用实例方法或变量;但可以从一个实例方法中调用一个静态方法或引用一个静态变量。 正确程序1:public class Foo public static void main(String args) method1(); public static void method1() method2();public static void method2() System.out.println(What is radius+ c.getRadius(); static Circle c=n

5、ew Circle();class Circle static double radius; static double getRadius() radius=1; return radius; 正确程序2:public class Be8_12 /*不能从静态方法中直接调用一个实例方法或引用实例变量, * 须实例化对象后,通过该对象调用实例方法或变量 *但可以从一个实例方法中调用一个静态方法或引用一个静态变量。*/ public static void main(String args) new Be8_12().method1(); public void method1() method

6、2(); public static void method2() Circle c=new Circle();/注须将Circle.java源程序放在同一包p8中,或import p8.Circle;且Circle 类中须有getRadius 方法:public double getRadius() return r; System.out.println(what is radius +c.getRadius(); /new Be8_12().method1();/须实例化对象后,通过该对象调用实例方法或变量 大多数错误程序 :public class Foo public static

7、void main(String args) method1(); public static void method1() method2(); double radius;/错误:不在Circle类中如何能定义该构造函数。 Circle() radius=5.0; Circle (double newRadius) radius=newRadius; public static void method2() Circle c=new Circle(); System.out.println(what is radius +c.getRadius(); double getRadius()

8、return radius; 结果显示:what is radius 1.0/注1.0由无参构造函数Circle()决定2.课本P235第八章复习题8.16,显示并分析结果;分析 :传递基本类型参数,传递的是实参的值,实参的值不会改变; 传递引用类型参数,传递的是对象的引用,可以改变实参的值。程序:public class Test public static void main(String args) Count myCount=new Count(); int times=0; for(int i=0;i100;i+) increment(myCount,times); System.o

9、ut.println(count is +myCount.count); System.out.println(times is +times); public static void increment(Count c,int times) c.count+; times+; class Count public int count; public Count(int c) count=c; public Count() count=1; 结果显示:3.课本P235第八章复习题8.17,显示并分析结果;分析 :第三四行分别创建了半径为1和2的两个对象circle1和circle2; 然后分别

10、调用swap1()和swap2()函数,并输出两个对象的半径; 在swap1()函数对地址值交换,但未影响对象,值未做交换; 在swap2()函数中两个对象的半径在内存里交换了,值成功交换;程序: public class Be8_17 public static void main(String args) Circle3 circle1 = new Circle3(1); Circle3 circle2 = new Circle3(2); swap1(circle1, circle2); System.out.println(After swap1: circle1= + circle1.

11、radius + circle2= + circle2.radius); swap2(circle1, circle2); System.out.println(After swap2: circle1= + circle1.radius + circle2= + circle2.radius); public static void swap1(Circle3 x, Circle3 y) Circle3 temp = x; x = y; y = temp; public static void swap2(Circle3 x, Circle3 y) double temp = x.radiu

12、s; x.radius = y.radius; y.radius = temp; class Circle3 double radius; Circle3(double newRadius) radius = newRadius; 结果显示:4.课本P236第八章复习题8.18,显示并分析结果;分析 : Swap方法实现了两个形参的交换,但是未能改变实参-数组元素的值。即在调用swap函数的时候把a0a1的值1,2传给了n1,n2在swap()函数中只调换了n1,n2的位置,但并没有调换a0和a1的值,所以输出结果仍然为a0=1,a1=2 程序: public class fuxiti pub

13、lic static void main(String args) int a=1,2; swap(a0,a1); System.out.println(a0= +a0+ a1=+a1); public static void swap(int n1,int n2) int temp=n1; n1=n2; n2=temp; 结果显示 Swap方法利用传递数组的方式来实现了两个数据的交换,Swap方法将a0a1做了交换public class fuxiti public static void main(String args) int a=1,2; swap(a); System.out.pr

14、intln(a0=+a0+ a1=+a1); public static void swap(int a) int temp=a0; a0=a1; a1=temp; 传递一个实例化对象到swap方法中,实现了e1,e2值的交换public class fuxiti public static void main(String args) T t=new T(); swap(t); System.out.println(e1=+t.e1+ e2=+t.e2); public static void swap(T t) int temp=t.e1; t.e1=t.e2; t.e2=temp; cl

15、ass T int e1=1; int e2=2; 结果显示:静态变量i将变量值存储在一个公共的内存地址,所以任何对象对此变量的值修改,都会使同一类的所有对象都受到影响。对象t1的实例化使i的值从0加到1,对象t2的实例化使i的值从1加到2,此时i的输出结果就是2.public class fuxiti public static void main(String args) T t1=new T(); T t2=new T(); System.out.println(t1s i=+t1.i+ and j=+t1.j); System.out.println(t2s i=+t2.i+ and

16、j=+t2.j); class T static int i=0; int j=0; T() i+; j=1; 结果显示: 5.课本P236第八章复习题8.19,显示并分析结果; A代码:import java.util.Date;public class Test public static void main(String args) Date date=null; m1(date); System.out.println(date); public static void m1(Date date) date=new Date(); 截图: 结果分析: 给对象date赋初值为null的,

17、调用函数m1,只给形参(局部变量)赋值当前时间,可m1无返回值,对象date依然为null。 B代码:import java.util.Date;public class Test public static void main(String args) Date date=new Date(1234567); m1(date); System.out.println(date.getTime(); public static void m1(Date date) date=new Date(7654321); 截图:结果分析:给对象date赋初值,调用函数m1,只给形参(局部变量)赋值,可m

18、1无返回值,对象date依然为原值,所以还是原先实例的值。C代码:import java.util.Date;public class Test public static void main(String args) Date date=new Date(1234567); m1(date); System.out.println(date.getTime(); public static void m1(Date date) date.setTime(7654321); 截图:结果分析:给对象date赋初值,调用函数m1,后来利用date的修改器setTime来修改了date值为76543

19、21。D代码:import java.util.Date;public class Test public static void main(String args) Date date=new Date(1234567); m1(date); System.out.println(date.getTime(); public static void m1(Date date) date=null; 截图: 结果分析: 给对象date赋初值,调用函数m1,只给形参(局部变量)赋null值,可m1无返回值,对象date依然为原值,所以还是原先实例的值。6.课本P237第八章复习题8.20,给出正

20、确的程序并显示结果,分析错误问题;原出错程序public class BE8_20 public static void main(String args) java.util.Date dates = new java.util.Date10;/只给date数组分配了空间,未赋初值,均为Null。 System.out.println(dates0);/date0为null System.out.println(dates0.toString();/toString是把date对象的时间转换为字符串,遭遇空指针异常,提示NullPointerException.正确程序1:import ja

21、va.util.Date;public class fuxiti public static void main(String args) java.util.Date dates=new java.util.Date();/用普通变量代替数组,并赋初值 System.out.println(dates); System.out.println(dates.toString(); 正确程序2:public class Test public static void main(String args) java.util.Date dates=new java.util.Date10;for(i

22、nt i=0;i10;i+) datesi=new java.util.Date();/为数组的每个元素赋初值System.out.println(dates0);System.out.println(dates0.toString(); 结果显示: (二)编程题1.课本P238第八章编程题8.4(使用Random类,参考jdk_7_docs.api,)注:通俗说,两者的区别是:带种子的,每次运行生成的结果都是一样的。 不带种子的,每次运行生成的都是随机的,没有规律可言。(1) 程序:public class Random8_4 /* * E8-4使用随机类,种子1000 * 通俗说,两者的区

23、别是:带种子的,每次运行生成的结果都是一样的。 * 不带种子的,每次运行生成的都是随机的,没有规律可言。 */ public static void main(String args) Random rd = new Random(1000); for(int i=0;i50;i+) System.out.print(rd.nextInt(100)+ , ); /nextInt(n)返回一个伪随机数,它是从此随机数生成器的序列中取出的、在 0(包括)和指定值(不包括)之间均匀分布的 int值 (2) 运行截图:2.课本p23第八章编程练习题8.(账户类);注:月利率balance * (ann

24、ualInterestRate / 12)(1) 程序:import java.util.Scanner;public class Account private int id=0; private double balance=0; private double annualInterestRate=0; private java.util.Date dateCreated; public int getId() return id; public void setId(int id) System.out.print(请输入账户ID : ); this.id = input.nextInt

25、(); public double getBalance() return balance; public void setBalance(double balance) System.out.print(请设置您的账户余额 : ); this.balance = input.nextDouble(); public double getAnnualInterestRate() return annualInterestRate; public void setAnnualInterestRate(double annualInterestRate) System.out.print(请输入年

26、利率 : ); this.annualInterestRate =input.nextDouble(); Scanner input=new Scanner(System.in); public double getMonthlyInterestRate() double MonthlyInterestRate=balance*(annualInterestRate/12); return MonthlyInterestRate; public java.util.Date getDateCreated() return dateCreated; public void setDateCrea

27、ted(java.util.Date dateCreated) this.dateCreated =new java.util.Date(); public static void main(String args) Scanner input=new Scanner(System.in); int a,b; Account account1=new Account(); System.out.println(nttt所创建的第一个账户的账户信息:); System.out.println(账户ID :+account1.id+t账户余额 :+account1.balance+t 年利率 :+account1.annualInterestRate+t开户时间 :+account1.dateCreated); do System.out.print(请选择业务 :1.存款;2.取款!3.修改器 ); a=input.nextInt(); if(a=1) account1.deposit(); System.out.println(月利息为 +accoun

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

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