学号姓名Java语言实验报告二Word文档下载推荐.docx
《学号姓名Java语言实验报告二Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《学号姓名Java语言实验报告二Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
}
}
源文件:
MyDate.java
publicclassMyDate{
privateintday=1;
privateintmonth=1;
privateintyear=2000;
publicvoidprint(){
System.out.println(day+"
-"
+month+"
+year);
publicMyDate(intday,intmonth,intyear){
this.day=day;
this.month=month;
this.year=year;
publicMyDate(MyDatedate){
this.day=date.day;
this.month=date.month;
this.year=date.year;
publicMyDateaddDays(intdate){
MyDaten=newMyDate(this);
n.day=n.day+date;
returnn;
[运行结果]
[实验结论与收获]
了解了什么是类、类基本格式,对象以及构造方法
实验题2
修改程序,使得在子类中可以对两个f分别进行赋值和显示操作
记录调试过程、步骤、程序和运行结果
classParent{
publicintf;
publicvoidsetF(inta){f=a;
publicintgetF(){returnf;
publicclassChildextendsParent{
publicdoubled;
publicstaticvoidmain(String[]args){
Childc=newChild();
c.f=100;
c.setF(30);
System.out.println("
Parent:
"
+c.getF());
Child:
+c.f);
学会修改程序,分别对F进行赋值和显示操作
实验题3
完成程序,使用super创建重写的方法
调试并记录结果
publicclassEmployee{
publicStringname="
zhang"
;
publicdoublesalary=2000;
publicStringgetDetails(){
return"
Name:
"
+name+"
\n"
+"
Salary:
+salary;
publicclassManagerextendsEmployee{
publicStringdepartment="
Office"
returnsuper.getDetails()+"
Department:
+department;
publicclassEx2_3{
publicstaticvoidmain(Stringargs[]){
Employeee=newEmployee();
Managerm=newManager();
Employee:
+"
+e.getDetails());
Manager:
+m.getDetails());
学会super的创建使用方法
实验题4
修改并完成程序
说明程序错在哪里,如何修改
classParent{
publicvoiddoSomething(){}
classChildextendsParent{
publicvoiddoSomething(){}
publicclassEx2_4{
publicstaticvoidmain(Stringargs[]){
Parentp1=newParent();
Parentp2=newChild();
p1.doSomething();
p2.doSomething();
错误出在privatevoiddoSomething(){}修改正确的publicvoiddoSomething(){}
调试语句publicstaticvoidmain(Stringargs[]){
实验题5
执行程序记录程序结果
classCount{
publicstaticintcounter;
static{
counter=100;
System.out.println("
instaticblock!
);
publicclassEx2_5{
publicstaticvoidmain(String[]args){
counter="
+Count.counter);
执行程序得到正确结果
实验题6
将程序1Parent类和程序2Child类存于同一包(目录)中,并调试程序,记录结果。
将程序1Parent类存于当前包的子包parent中,程序2Child类存于当前包中,并调试程序,记录结果。
比较以上两题结果的不同。
privateintf1=1;
intf2=2;
protectedintf3=3;
publicintf4=4;
privatevoidfm1(){
infm1()f1="
+f1);
voidfm2(){
infm2()f2="
+f2);
protectedvoidfm3(){
infm3()f3="
+f3);
publicvoidfm4(){
infm4()f4="
+f4);
classChildextendsParent{
privateintc1=21;
publicintc2=22;
privatevoidcm1(){
incm1()c1="
+c1);
publicvoidcm2(){
incm2()c2="
+c2);
publicstaticvoidmain(Stringargs[]){
inti;
Parentp=newParent();
i=p.f1;
i=p.f2;
i=p.f3;
i=p.f4;
p.fm1();
p.fm2();
p.fm3();
p.fm4();
i=c.f1;
i=c.f2;
i=c.f3;
i=c.f4;
c.fm1();
c.fm2();
c.fm3();
c.fm4();
i=c.c1;
i=c.c2;
c.cm1();
c.cm2();
同一包
不同包
通过运行结果可以看出:
1、不管是否在同一包中,子类永远不能访问父类的private方法。
2、同一包中,父类与子类都可以访问default方法、protected方法及public方法
3、在不同包中创建的父类对象,不能访问父类的default方法、protected方法、private方法
4、在不同包中创建的子类对象,通过继承,可以访问父类中的protected方法。
掌握了不同包之间,各种方法的访问权限。