实验三 实验报告.docx

上传人:b****8 文档编号:30485754 上传时间:2023-08-15 格式:DOCX 页数:12 大小:396.74KB
下载 相关 举报
实验三 实验报告.docx_第1页
第1页 / 共12页
实验三 实验报告.docx_第2页
第2页 / 共12页
实验三 实验报告.docx_第3页
第3页 / 共12页
实验三 实验报告.docx_第4页
第4页 / 共12页
实验三 实验报告.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

实验三 实验报告.docx

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

实验三 实验报告.docx

实验三实验报告

 

Java程序设计基础

实验报告

 

专业班级

学号

姓名

实验指导教师

实验地点

实验四室

2013-2014学年第2学期

实验序号及名称:

实验3Java语言面向对象基础

(1)

一、实验目的和要求

实验目的

  通过编程和上机实验理解Java语言是如何体现面向对象编程基本思想,了解类的封装方法,以及如何创建类和对象,了解成员变量和成员方法的特性,掌握面向对象程序设计的方法,了解类的继承性和多态性的作用,了解接口的作用。

实验要求

1、编写一个体现面向对象思想的程序;

2、编写一个创建对象和使用对象的方法的程序;

3、编写一个显示当前日期和时间的程序;

4、编写不同成员变量修饰方法的程序;

5、编写不同成员方法修饰方法的程序;

6、编写体现类的继承性(成员变量、成员方法、成员变量隐藏)的程序;

7、编写体现类的多态性(成员方法重载、构造方法重载)的程序;

8、编写体现接口功能的程序。

 

二、实验任务

9、编写一个体现面向对象思想的程序;

10、编写一个创建对象和使用对象的方法的程序;

11、编写一个显示当前日期和时间的程序;

12、编写不同成员变量修饰方法的程序;

13、编写不同成员方法修饰方法的程序;

14、编写体现类的继承性(成员变量、成员方法、成员变量隐藏)的程序;

15、编写体现类的多态性(成员方法重载、构造方法重载)的程序;

16、编写体现接口功能的程序。

 

三、实验内容(步骤)

1、设计类来描述真实客观世界中的事物,使用类的成员变量来表示事物的属性和状态,使用类的成员方法来提供对成员变量的访问或修改

(1)程序功能:

设计一个用来描述汽车的类,使用类的非静态成员变量来表示汽车的车主姓名、当前的速率和当前方向盘的转向角度,使用类的非静态成员方法来表示改变汽车的速率和停车两个操作。

(2)程序源代码如下。

publicclassEXP3_1{

privateStringownerName;//车主姓名

privatefloatcurSpeed;//当前车速

privatefloatcurDirInDegree;//当前方向盘转向角度

publicEXP3_1(StringownerName){

this.ownerName=ownerName;

}

publicEXP3_1(StringownerName,floatspeed,floatdirInDegree){

this(ownerName);

this.curSpeed=speed;

this.curDirInDegree=dirInDegree;

}

publicStringgetOwnerName(){//提供对车主姓名的访问

returnownerName;

}

publicfloatgetCurDirInDegree(){//提供对当前方向盘转向角度的访问

returncurDirInDegree;

}

publicfloatgetCurSpeed(){//提供对当前车速的访问

returncurSpeed;

}

publicvoidchangeSpeed(floatcurSpeed){//提供改变当前的车速

this.curSpeed=curSpeed;

}

publicvoidstop(){//提供停车

this.curSpeed=0;

}

}

(3)编译源程序。

2、创建类的对象,使用对象的方法(类的非静态方法)来访问或修改对象的变量(类的非静态变量)

(1)创建类EXP3_1的对象,在调用类的构造函数时指定对象的变量的初始值,以后再使用对象的方法来访问或修改对象的变量的值。

(2)程序代码如下。

publicclassEXP3_2{

publicstaticvoidmain(String[]args){

EXP3_1car=newEXP3_1("成龙",200f,25f);

System.out.println("车主姓名:

"+car.getOwnerName());

System.out.println("当前车速:

"+car.getCurSpeed());

System.out.println("当前转向角度:

"+car.getCurDirInDegree());

car.changeSpeed(80);

System.out.println("在调用changeSpeed(80)后,车速变为:

"+car.getCurSpeed());

car.stop();

System.out.println("在调用stop()后,车速变为:

"+car.getCurSpeed());

}

}

(3)编译并运行。

3、编写显示当前时间和日期的程序

(3)程序功能:

该程序通过使用一个自定义类Time,实现显示当前日期和时间的功能。

(4)程序代码如下。

importjava.util.Calendar;

classTime{

   privateCalendart;

   privateinty,m,d,hh,mm,ss;

   Time(){

    t=Calendar.getInstance();

    y=t.get(t.YEAR);

    m=t.get(t.MONTH)+1;

    d=t.get(t.DATE);

    hh=t.get(t.HOUR_OF_DAY);

    mm=t.get(t.MINUTE);

    ss=t.get(t.SECOND);

   }

   publicStringgetDate(){

    returny+"年"+m+"月"+d+"日";

   }

   publicStringgetTime(){

    returnhh+"时"+mm+"分"+ss+"秒";

   }

  }

  publicclassEXP3_3{

   publicstaticvoidmain(String[]args){

    Timet=newTime();

    System.out.println("当前日期:

"+t.getDate());

    System.out.println("当前时间:

"+t.getTime());

   }

  }

(5)编译并运行。

4、使用修饰符来限定类的成员变量或成员方法的属性

  有时需要公开一些变量和方法,有时需要禁止其他对象使用变量和方法,这时可以使用修饰符来实现这个目的。

  常用的修饰符如下:

   publicprivateprotectedpackagestaticfinaltransientvolatile

  不同修饰符的访问控制权限如表3.1所示。

访问权限修饰符

子类

所有类和包

public

private

protected

package

表3.1

(1)程序功能:

通过两个类StaticDemo、EXP3_4说明静态变量/方法与实例变量/方法的区别。

(2)程序源代码如下。

  classStaticDemo{

   staticintx;

   inty;

   publicstaticintgetX(){

    returnx;

   }

   publicstaticvoidsetX(intnewX){

    x=newX;

   }

   publicintgetY(){

    returny;

   }

   publicvoidsetY(intnewY){

    y=newY;

   }

  }

  publicclassEXP3_4{

   publicstaticvoidmain(String[]args){

    System.out.println("静态变量x="+StaticDemo.getX());

    System.out.println("实例变量y="+StaticDemo.getY());//非法,编译时将出错

    StaticDemoa=newStaticDemo();

    StaticDemob=newStaticDemo();

    a.setX

(1);

    a.setY

(2);

    b.setX(3);

    b.setY(4);

    System.out.println("静态变量a.x="+a.getX());

    System.out.println("实例变量a.y="+a.getY());

    System.out.println("静态变量b.x="+b.getX());

    System.out.println("实例变量b.y="+b.getY());

   }

  }

(3)对上面的源程序进行编译,会出现出错提示。

(4)将源程序中的出错语句删除或使用解释符//隐藏起来,例如,//System.out.println("实例变量y="+StaticDemo.getY());

(5)重新编译并运行该程序。

5、调用方法时参数传递的练习

  在其它语言中,函数调用或过程调用时参数有传值调用和传地址调用之分。

在Java中,方法中的参数传递可以分为传值调用或对象方法调用等方式。

传值调用即传递的参数是基本数据类型,调用方法时在方法中将不能改变参数的值,这意味着只能使用它们。

对象调用是指先调用对象,再调用对象的方法,这种方式可以修改允许存取的成员变量。

所以,如果不想改变参数的值,可以采用传值调用的方法。

如果想改变参数的值,可采用对象调用的方法,间接修改参数的值。

5.1、编写一个传值调用的程序

(1)程序功能:

程序首先给整型变量x和y赋一个初值10,然后使用传值调用方式调用方法ff1对x和y做乘方及输出x和y的乘方值,最后再输出x和y的乘方值。

(2)程序源代码如下。

  classEXP3_5{

   publicstaticvoidmain(String[]args){

    intx=10,y=10;

    ff1(x,y);

    System.out.println("x="+x+",y="+y);

   }

   staticvoidff1(intpassX,intpassY){

    passX=passX*passX;

    passY=passY*passY;

    System.out.println("passX="+passX+",passY="+passY);

   }

  }

(3)编译并运行。

5.2、编写一个调用对象方法的程序

(1)程序功能:

通过调用对象的方法在方法调用后修改了成员变量的值。

(2)程序源代码如下。

  classEXP3_6{

   publicstaticvoidmain(String[]args){

    Powerp=newPower();

    p.ff2(10,10);

    System.out.println("方法调用后x="+p.x+",y="+p.y);

   }

  }

  classPower{

   intx=10,y=10;

   voidff2(intpassX,intpassY){

    System.out.println("初始时x="+x+",y="+y);

    x=passX*passX;

    y=passY*passY;

    System.out.println("方法调用中x="+x+",y="+y);

   }

  }

  (3)编译并运行。

 

四、实验过程记录(以文字、图表方式记录设计思想、设计步骤、程序框架、流程图、相关测试数据、结果等)

1.

2.

3.

4.

5.

6.

 

 

五、实验结果分析

1.

2.

六、改进及建议

 

学会调试程序,准确应用各个关键字。

七、总结

对一些语句还不太懂,多看一些例子,加强对语句的理解。

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

当前位置:首页 > 人文社科 > 广告传媒

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

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