实验报告三(完整版)
实验报告三实验三、对象和类(一)1.实验目的(1)结合面向对象思想掌握类的定义以及类中成员的定义,学会设计自己的类。(2)掌握方法重载、尤其是构造方法的重载,深入理解构造函数的作用与调用时机。(3)理
.. 实验报告三 实验三、对象和类(一) 1.实验目的 obj.test2(obj); (1)结合面向对象思想掌握类的定义以及类中成员的定义,学会设计自己的类。 System.out.println(obj.i); (2)掌握方法重载、尤其是构造方法的重载,深入理解构造函数的作用与调用时机。 (3)理解this关键字同static关键字的意义,掌握成员变量的具体隐藏实现。 obj.i=100; (4)理解对象同对象引用间的区别,掌握创建对象与调用对象成员的方法,以及对象作为 PassValueTestnewobj=newPassValueTest(); 参数与基本数据类型变量做参数的区别。 obj.test3(newobj); 2.实验内容和步骤 System.out.println(newobj.i); 上机输入程序并调试运行程序。 } 编译并运行附件1和附件2,观察结果分析其原因。 } 附录1ClassLoadTest.java 结果: packagech3; 原因: publicclassClassLoadTest{ (2)编译附件3,分析结果;将“注释这行”所在的行注释,再将注释的call2方法去掉注 static{ 释,再次编译,观察结果分析其原因。 System.out.println("classloding"); 附录3StaticTest.java } packagech3; publicstaticvoidmain(String[]args){ publicclassStaticTest{ publicstaticvoidcall1(){ } staticmethod(); } nonstaticmethod();//注释这行 结果: } 原因: /* 附录2PassValueTest.java publicstaticvoidcall2(StaticTesto1){ packagech3; o1.nonstaticmethod(); publicclassPassValueTest{ StaticTesto2=newStaticTest(); privateinti=-100; o2.nonstaticmethod(); } publicvoidtest1(intb){ */ b=100; } publicvoidnonstaticmethod(){ System.out.println("非静态方法被调用"); publicvoidtest2(PassValueTestb){ } b.i=100; } publicstaticvoidstaticmethod(){ System.out.println("静态方法被调用"); publicvoidtest3(PassValueTestb){ } b=this; } publicstaticvoidmain(String[]arg){ StaticTestobj=newTest2(); publicstaticvoidmain(String[]args){ StaticTest.call1(); PassValueTestobj=newPassValueTest(); StaticTest.call2(obj); inttemp=100; } obj.test1(temp); } System.out.println(temp); 结果: .... 下载可编辑

