资源描述:
《实验三面向对象基础编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验三面向对象基础编程(一)【开发语言及实现平台或实验环境】Windows2000或XP,JDK1.6与Eclipse【实验目的】1.掌握类的定义和生成机制2.了解构造函数的作用【实验要求】1.简单类的定义。2.对象创建和使用。3.访问控制修饰符的作用。4.掌握静态属性、方法和初始化器的特点。【实验内容】%1.创建对象new构造函数(构造力法参数列表)%1.使用修饰符常用的修饰符如卜。[public][private][protected][package][static][final][transient][volat订e]不同修
2、饰符的访问控制权限如表5.1所示。表5.1修饰符了类乜所何推和包pjblio•VVp•private•Vprotectee•♦ppzinkAer•V9V%1.方法中参数传递的练习在其它语言中,函数调用或过程调用时参数有传值调用和传地址调用之分。在Java中,方法中的参数传递对以分为传值调用或对彖方法调用等方式。传值调用即传递的参数是基本数据类型,调用方法时在方法屮将不能改变参数的值,这意味着只能使用它们。对象调用是指先调用对象,再调用对象的方法,这种方式可以修改允许存取的成员变量。所以,如果不想改变参数的值,可以釆用传值调用的方法。
3、如果想改变参数的值,可采用对彖调用的方法,间接修改参数的值。1.编写一个传值调用的程序文件TestParamTransferl.java0(1)程序功能:程序首先给整型变量x和y赋一个初值10,然后使用传值调用方式调用方法ffl对x和y做乘方及输出x和y的乘方值,最后再输出x和y的乘方值。(2)程序源代码如下。classTestParamTransfer1{publicstaticvoidmain(String[]args){intx=10,y=10;ffl(x,y);System,out.printin("x二"+x+",y二"+
4、y);}staticvoidffl(intpassX,intpassY){passX=passX*passX;passY=passY*passY;System,out.printin(〃passX二"+passX+〃,passY二〃+passY);}}(1)编译TestParamTransferl.java,运行结果如图5.4所示。B1TassX-lOO,passT>100-10/y«10k出丸虑(耗rro秒)・IE*终止图5.4(2)分析其运行结果这个程序没有实现预期的结果,原因是ffl方法采用了传值调用。调用ffl方法时,将产生
5、两个参数passX和passY,x和y的值被传递给这两个参数。尽管在方法中计算了参数的平方,但从ffl方法返回后,参数消失,此时x和y的值仍是初值。1.编写一个调用对象方法的程序文件TestParamTransfer2.java。(1)程序功能:通过调用对象的方法在方法调用后修改了成员变量的值。(2)TestParamTransfer2.java程序源代码如下。classTestParamTransferl{publicstaticvoidmain(String[]args){Powerp=newPower();p.ff2(10,1
6、0);System,out.println(z,方法调用后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=pass¥*pass¥;System,out.println(,z方法调用中x二"+x+",y="+y);}}(3)编译LX3_6.java,其运行结果如图5.5所示。图5.52.—个Fan有自己的品牌和型号,英功能有star
7、t,stop,speed,start和stop可以改变Fan的状态status(on/off),speednJ以调整Fan的速度(档级在0、1、2、3),请分析并提供Fem类的定义。并编写程序对其进行测试。publicclassFan{privateStringband;privateStringtype;privateStringstatus;privateintspeed;publicFan(Stringband,Stringtype,Stringstatus,intspeed){this,band二band;this・type
8、二type;this・status二status;this・speed二speed;}publicStringstart(){returnstatus;}publicStringstop(){returnstatus;}publicv