实验报告三(完整版).doc

上传人:叶*** 文档编号:35093616 上传时间:2022-08-20 格式:DOC 页数:5 大小:30.50KB
返回 下载 相关 举报
实验报告三(完整版).doc_第1页
第1页 / 共5页
实验报告三(完整版).doc_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《实验报告三(完整版).doc》由会员分享,可在线阅读,更多相关《实验报告三(完整版).doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、实验报告三实验三、对象和类(一)1实验目的(1)结合面向对象思想掌握类的定义以及类中成员的定义,学会设计自己的类。(2)掌握方法重载、尤其是构造方法的重载,深入理解构造函数的作用与调用时机。(3)理解this关键字同static关键字的意义,掌握成员变量的具体隐藏实现。(4)理解对象同对象引用间的区别,掌握创建对象与调用对象成员的方法,以及对象作为参数与基本数据类型变量做参数的区别。2实验内容和步骤上机输入程序并调试运行程序。编译并运行附件1和附件2,观察结果分析其原因。附录1 ClassLoadTest.javapackage ch3;public class ClassLoadTest s

2、taticSystem.out.println(class loding); public static void main(String args) 结果:原因:附录2 PassValueTest.javapackage ch3;public class PassValueTest private int i = -100;public void test1(int b) b = 100;public void test2(PassValueTest b) b.i = 100;public void test3(PassValueTest b) b = this;public static

3、void main(String args) PassValueTest obj = new PassValueTest();int temp = 100;obj.test1(temp);System.out.println(temp);obj.test2(obj);System.out.println(obj.i);obj.i=100;PassValueTest newobj = new PassValueTest();obj.test3(newobj);System.out.println(newobj.i);结果:原因:(2)编译附件3,分析结果;将“注释这行”所在的行注释,再将注释的c

4、all2方法去掉注释,再次编译,观察结果分析其原因。附录3 StaticTest.javapackage ch3;public class StaticTest public static void call1()staticmethod();nonstaticmethod(); /注释这行public static void call2(StaticTest o1)o1.nonstaticmethod();StaticTest o2=new StaticTest ();o2.nonstaticmethod();public void nonstaticmethod()System.out.p

5、rintln(非静态方法被调用);public static void staticmethod()System.out.println(静态方法被调用);public static void main(String arg)StaticTest obj=new Test2();StaticTest.call1();StaticTest.call2(obj);结果:原因:(3)定义一个圆类Circle,至少具有私有成员变量:radius(double型,用于保存半径)、area(double型,用于保存面积)、length(double型,用于保存周长),以及成员方法setRadius、get

6、Radius(用于设置、获取半径)、getArea(用于获得面积)、getLength(用于获取周长)、print(打印圆对象的半径、面积、周长信息)。a)在main方法,要求方法中通过“Circle c1=new Circle(); Circle c2=new Circle(100);”分别新建半径为1和半径为100的圆对象,分别打印c1同c2的信息;b)使c2的半径等于c1的半径,使c1的半径等于原c2的半径,分别打印c1同c2的信息;public class Circle private double radius;private double area;private double l

7、ength;public Circle()public Circle(int radius)this.radius=radius;public void setRadius(int i)radius=i;public double getRadius()return radius;public void getArea(double k)area=3.14*k*k;public void getlength(double k)length=2*3.14*k;public void print()System.out.println(圆的半径:+radius+t+圆的面积+area+t+圆的周长

8、:+length);public static void main(String args)Circle c1=new Circle();Circle c2=new Circle(100);c1.setRadius(1);double i=c1.getRadius();c1.getArea(i);c2.getArea(100);c1.getlength(i);c2.getlength(100);c1.print();c2.print();double j=c1.radius;c1.radius=c2.radius;c2.radius=j;System.out.println();c1.prin

9、t();c2.print();(4)定义一个日期类MyDate,至少具有私有成员变量:year、month、day,以及成员方法setYear、getYear等(具体隐藏实现方法,用于设置、获取成员变量)、isRunyear(boolean型,判断当前对象保存的年是否为闰年)、print(打印日期对象的年月日信息)。a)在main方法,要求方法中通过“MyDate d1=new MyDate(); MyDate d2=new MyDate(2009,4,1);”分别新建年月日为1999年1月1日的日期对象和年月日为2009年4月1日的日期对象,分别打印d1同d2的信息;(5)使d2的年等于d1

10、的年,使d1的月等于原d2的月,分别打印d1同d2的信息;import javax.swing.Spring;public class MyDate private int year;private int month;private int day;public MyDate()public MyDate(int year,int month,int day)this.year=year;this.month=month;this.day=day;public void setYear(int i,int j,int k)year=i;month=j;day=k;public double

11、getYear()return year;public String isRunyear(double i)if(i%4=0|i%400=0)return y;return n;public void print(String i)System.out.println(year+年+month+月+day+日+是否闰年+i);public static void main(String args)MyDate d1=new MyDate();MyDate d2=new MyDate(2009,4,1);d1.setYear(1999,1,1);double i=d1.getYear();Str

12、ing k1=d1.isRunyear(i);String k2=d2.isRunyear(2009);d1.print(k1);d2.print(k2);int j=d1.year;d1.year=d2.year;d2.year=j;int j1=d1.month;d1.month=d2.month;d2.month=j1;d1.print(k2);d2.print(k1);实验三、对象和类(包)1实验目的(1)理解包的意义,学会定义、编译和运行一个包内的类,熟练掌握外部包中具体类和全部类的导入方式,理解包带来的一种新的java访问控制机制。2实验内容和步骤(1)在Eclipse集成开发环境

13、中分别新建名com.yourname.ch3和com.yourname.other的两个包。(2)将附件1、附件2、附件3添加到工程中,注意附件1和附件2应该放在名为“com.yourname.ch3”的包中,附件3应放在名为“com.yourname.other”的包中。分别调试3个源文件,保证都能编译成功。在附件2、附件3的main方法中添加语句“Pclass pc=new Pclass();”,分别编译它们会出现什么结果,说明什么?结果:说明了:将附件3中的“Pclass pc=new Pclass();”改为“com.yourname.ch3.Pclass pc=new com.you

14、rname.ch3.Pclass();”再编译会出现什么结果,为什么?用import导入包com.yourname.ch3后,再改为“Pclass pc=new Pclass();”可否通过编译?结果:为什么:在附件2、附件3的main方法中继续添加语句“Dclass dc=new Dclass();”,分别编译它们会出现什么结果,说明什么?从附件3删除“Dclass dc=new Dclass();”,保证附件3能编译通过。结果:说明了:在附件2、附件3的main方法中继续添加语句“pc.method1();”,分别编译它们会出现什么结果,说明什么?结果:说明了:在附件2、附件3的main方

15、法中继续添加语句:“pc.method1();pc.method2();pc.method3();pc.method4();”分别编译它们会出现什么结果说明什么(仔细分析两个编译结果的不同之处)?删除不可执行的语句确保保证附件2、3都能编译通过。结果:说明了:在附件2的main方法中继续添加语句:“dc.method1();dc.method2();dc.method3();dc.method4();”编译附件2会出现什么结果说明什么?结果:说明了:附录1Pclass.javapackage com.yourname.ch3;class Dclass /default classpublic

16、void method1()System.out.println(public method of a defalut class in package p5);protected void method2()System.out.println(protected method of a defalut class in package p5);void method3()System.out.println(defalut method of a defalut class in package p5);private void method4()System.out.println(pr

17、ivate method of a defalut class in package p5);public class Pclass /public classpublic void method1()System.out.println(public method of a public class in package p5);protected void method2()System.out.println(protected method of a public class in package p5);void method3()System.out.println(defalut

18、 method of a public class in package p5);private void method4()System.out.println(private method of a public class in package p5);附录2TestPackage.javapackage com.yourname.ch3;public class TestPackage public static void main(String rgs)附录3TestPackage.javapackage com.yourname.other;public class TestPackage public static void main(String rgs)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁