实验报告三完整版.docx

上传人:b****6 文档编号:6043485 上传时间:2023-01-03 格式:DOCX 页数:7 大小:18.09KB
下载 相关 举报
实验报告三完整版.docx_第1页
第1页 / 共7页
实验报告三完整版.docx_第2页
第2页 / 共7页
实验报告三完整版.docx_第3页
第3页 / 共7页
实验报告三完整版.docx_第4页
第4页 / 共7页
实验报告三完整版.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

实验报告三完整版.docx

《实验报告三完整版.docx》由会员分享,可在线阅读,更多相关《实验报告三完整版.docx(7页珍藏版)》请在冰豆网上搜索。

实验报告三完整版.docx

实验报告三完整版

实验报告三

实验三、对象和类〔一〕

1.实验目的

〔1〕结合面向对象思想掌握类的定义以及类中成员的定义,学会设计自己的类。

〔2〕掌握方法重载、尤其是构造方法的重载,深入理解构造函数的作用与调用时机。

附录2

packagech3;publicclassPassValueTest{

privateinti=-100;

〔3〕理解

this关键字同

static关键字的意义,掌握成员变量的具体隐藏实现。

〔4〕理解对象同对象引用间的区别,掌握创立对象与调用对象成员的方法,以及对象作为参数与根本数据类型变量做参数的区别。

publicvoidtest1(intb){

b=100;

2.实验内容和步骤

}

上机输入程序并调试运行程序。

编译并运行附件1和附件

附录1

2,观察结果分析其原因。

publicvoidtest2(PassValueTestb){

=100;

packagech3;

}

publicclassClassLoadTest{

static{System.out.println("classloding");

publicvoidtest3(PassValueTestb){b=this;

}

publicstaticvoidmain(String[]args){

}

}}结果:

原因:

publicstaticvoidmain(String[]args){

PassValueTestobj=newPassValueTest();inttemp=100;

obj.test1(temp);

System.out.println(temp);

o1.nonstaticmethod();

obj.test2(obj);StaticTesto2=newStaticTest();

System.out.println(obj.i);o2.nonstaticmethod();}

obj.i=100;*/PassValueTestnewobj=newPassValueTest();

obj.test3(newobj);publicvoidnonstaticmethod(){

System.out.println(newobj.i);System.out.println("非静态方法被调用");

}}

}结果:

publicstaticvoidstaticmethod(){

原因:

System.out.println("静态方法被调用");

〔2〕编译附件3,分析结果;将“注释这行〞所在的行注释,再将注释的call2方法去掉注}释,再次编译,观察结果分析其原因。

附录3publicstaticvoidmain(String[]arg){

packagech3;StaticTestobj=newTest2();

publicclassStaticTest{StaticTest.call1();

publicstaticvoidcall1(){StaticTest.call2(obj);staticmethod();}

nonstaticmethod();//注释这行}

}结果:

/*原因:

publicstaticvoidcall2(StaticTesto1){

〔3〕定义一个圆类Circle,至少具有私有成员变量:

radius〔double型,用于保存半径〕、area〔double

型,用于保存面积〕、length〔double型,用于保存周长〕,以及成员方法setRadius、getRadius〔用

于设置、获取半径〕、getArea〔用于获得面积〕、getLength〔用于获取周长〕、print〔打印圆对象的半径、面积、周长信息〕。

在main方法,要求方法中通过“Circlec1=newCircle();Circlec2=newCircle(100);〞分别新建半径为1和半径为100的圆对象,分别打印c1同c2的信息;

使c2的半径等于c1的半径,使c1的半径等于原c2的半径,分别打印c1同c2的信息;

public

classCircle{

private

double

radius

;

private

double

area

;

private

double

length

;

public

Circle(){

}

public

Circle(

intradius){

this

.radius

=radius;

}publicvoidsetRadius(inti){radius=i;}publicdoublegetRadius(){returnradius;}publicvoidgetArea(doublek){area=3.14*k*k;}publicvoidgetlength(doublek){length=2*3.14*k;}publicvoidprint(){System.out.println("圆的半径:

"+radius+"\t"+"圆的面积"+area+"\t"+"圆的周长:

"+length);}publicstaticvoidmain(String[]args){Circlec1=newCircle();Circlec2=newCircle(100);c1.setRadius

(1);

doublei=c1.getRadius();c1.getArea(i);c2.getArea(100);c1.getlength(i);c2.getlength(100);c1.print();c2.print();

doublej=c1.

radius

;

c1.

radius

=c2.

radius

;

c2.

radius

=j;

System.

out.println(

"");

c1.print();

c2.print();

}}

〔4〕定义一个日期类MyDate,至少具有私有成员变量:

year、month、day,以及成员方法setYear、

getYear等〔具体隐藏实现方法,用于设置、获取成员变量〕、isRunyear〔boolean型,判断当前对

象保存的年是否为闰年〕、print〔打印日期对象的年月日信息〕。

a)在main方法,要求方法中通过“MyDated1=newMyDate();MyDated2=new

MyDate(2021,4,1);〞分别新建年月日为1999年1月1日的日期对象和年月日为2021年4月1日的

日期对象,分别打印d1同d2的信息;

〔5〕使d2的年等于d1的年,使d1的月等于原d2的月,分别打印d1同d2的信息;

importjavax.swing.Spring;publicclassMyDate{privateintyear;privateintmonth;privateintday;publicMyDate(){}publicMyDate(intyear,intmonth,intday){this.year=year;this.month=month;this.day=day;}

publicvoidsetYear(inti,intj,intk){year=i;month=j;day=k;}publicdoublegetYear(){returnyear;}publicStringisRunyear(doublei){if(i%4==0||i%400==0)return"y";return"n";}publicvoidprint(Stringi){System.out.println(year+"年"+month+"月"+day+"日"+"是否闰年"+i);}publicstaticvoidmain(String[]args){MyDated1=newMyDate();MyDated2=newMyDate(2021,4,1);d1.setYear(1999,1,1);doublei=d1.getYear();Stringk1=d1.isRunyear(i);Stringk2=d2.isRunyear(2021);d1.print(k1);d2.print(k2);intj=d1.year;d1.year=d2.year;d2.year=j;intj1=d1.month;d1.month=d2.month;d2.month=j1;d1.print(k2);d2.print(k1);}}

实验三、对象和类〔包〕

结果:

1.实验目的

说明了:

〔1〕理解包的意义,学会定义、编译和运行一个包内的类,熟练掌握外部包中具体类和全

④在附件2、附件3的main方法中继续添加语句“pc.method1();〞,分别编译它们会出现什

部类的导入方式,理解包带来的一种新的

java访问控制机制。

么结果,说明什么?

2.实验内容和步骤

结果:

〔1〕在Eclipse集成开发环境中分别新建名和的两个

说明了:

包。

⑤在附件2、附件3的main方法中继续添加语句:

〔2〕将附件1、附件2、附件3

添加到工程中,注意附件

1和附件2应该放在名为

pc.method1();

“〞的包中,附件3应放在名为“〞的包中。

分别调试3个

pc.method2();

源文件,保证都能编译成功。

pc.method3();

在附件2、附件3的main方法中添加语句“Pclasspc=newPclass();〞,分别编译它们会出

pc.method4();

现什么结果,说明什么?

〞分别编译它们会出现什么结果说明什么〔仔细分析两个编译结果的不同之处〕

删除不可

结果:

执行的语句确保保证附件2、3都能编译通过。

说明了:

结果:

将附件3中的“Pclasspc=newPclass();〞改为“com.yourname.ch3.Pclasspc=new

说明了:

com.yourname.ch3.Pclass();〞再编译会出现什么结果,为什么?

import导入包

⑥在附件2

的main方法中继续添加语句:

后,再改为“Pclasspc=newPclass();〞可否通过编译?

dc.method1();

结果:

dc.method2();

为什么:

dc.method3();

dc.method4();

〞编译附件2

会出现什么结果说明什么?

在附件2、附件3的main方法中继续添加语句“Dclassdc=newDclass();〞,分别编译它

结果:

们会出现什么结果,说明什么?

从附件3删除“Dclassdc=newDclass();〞,保证附件3能编译通过。

说明了:

附录1

packagecom.yourname.ch3;

classDclass{//defaultclasspublicvoidmethod1(){

System.out.println("publicmethodofadefalutclassinpackagep5");}

protectedvoidmethod2(){

System.out.println("protectedmethodofadefalutclassinpackagep5");}

voidmethod3(){System.out.println("defalutmethodofadefalutclassinpackagep5");

}

privatevoidmethod4(){System.out.println("privatemethodofadefalutclassinpackagep5");

}}publicclassPclass{//publicclasspublicvoidmethod1(){

System.out.println("publicmethodofapublicclassinpackagep5");}

protectedvoidmethod2(){

System.out.println("protectedmethodofapublicclassinpackagep5");

}

voidmethod3(){

System.out.println("defalutmethodofapublicclassinpackagep5");}

privatevoidmethod4(){System.out.println("privatemethodofapublicclassinpackagep5");

}

}

附录2

packagecom.yourname.ch3;

publicclassTestPackage{

publicstaticvoidmain(String[]rgs){}

}附录3

packagecom.yourname.other;publicclassTestPackage{

publicstaticvoidmain(String[]rgs){}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 互联网

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

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