《JAVA例及实验.docx》由会员分享,可在线阅读,更多相关《JAVA例及实验.docx(16页珍藏版)》请在第一文库网上搜索。
1、例7.8将圆柱体类Cy1inder里的变量Pi和num声明为静态变量编写程序如下:/fi1ename:App7_8.javac1assCy1inder静态变量的使用定义类Cy1inderprivatestaticintnum=O;privatestaticdoub1epi=3.14;privatedoub1eradius;声明num为静态变量声明Pi为静态变量,并赋初值privateintheight;pub1icCy1jnderfdoub1erzinth)定义有两个参数的构造方法radius=r;height=h;num+;当构造方法Cy1inder()被调用时,num便加1)pub1icv
2、oidcount()当CoUnt()方法用来显示目前创建对象的个数(”创建了“+num+”个对象)doub1earea()(returnpi*radius*radius;)doub1evo1ume()(returnarea()*height;)pub1icc1assApp7_8主类(pub1icstaticvoidmain(Stringargs)(Cy1indervo1u1=newCy1inder(2.5,5);vo1u1.count();(圆柱1的体积=+vo1u1.vo1ume();Cy1indervo1u2=newCy1inder(1.0,2);vo1u2.count();(圆柱2的体积
3、=+vo1u2.vo1ume();)运行结果如下:图管理员:C:Windowssystem32crnd.exeMicrosoftWindowsJ6.1.7601版权所有2009MicrosoftCorporation保留所有权利OC:UsetsMdminist*ato*G:G:cdmyjauaG:nyjavacdd1G:myjauad1JauacApp?_9.JauaG:myjavaSd1JavacApp7_8.jauaGnyjauad1Jauafipp?_8创建了1个对象:圆桂1的腺=98.125仓Ij建才2不对象:圆柱2的袜款=6.28G:XnyjaMaXd1例I7.9利用圆柱体类Cy1i
4、nder来介绍静态方法的使用程序编写如下:/fi1ename:App7_9.java静态方法的使用c1assCy1inder定义类Cy1inder(privatestaticintnum=0;privatestaticdoub1epi=3.14;privatedoub1eradius;privateintheight;pub1icCy1inder(dob1erzinth)(radius=r;height=h;num+;当构造方法Cy1inder()被调用时,num便加1)pub1icstaticvoidcount()当CoUnto为静态方法(创建了“+num+“个对象”);)doub1eare
5、a()returnpi*radius*radius;)doub1evo1ume()returnarea()*height;)pub1icc1assApp7_9主类(pub1icstaticvoidmain(Stringargs)(Cy1inder.count();Cy1indervo1u1=newCy1inder(2.5,3);vo1u1.count();(圆柱1的体积=+vo1u1.vo1ume();Cy1indervo1u2=newCy1inder(1.0z2);Cy1inder.count();(圆柱2的体积=+vo1u2.vo1ume();)运行结果如下:理员:C:Windowssys
6、tem32cmd.exeMicosoftWindows6.1.76011I版权所有g::cdnyjavaki:Mnyjavacdd1javacApp7_9.javaGnyjauad1例7.10创建圆柱体类Cy1inder,并对该类生成的对象进行赋值运算。/fi1enameApp7_10.javac1assCy1inder定义类Cy1inder(privatestaticdoub1epi=3.14;privatedoub1eradius;privateintheight;pub1icCy1inderfdoub1er,inth)radius=r;height=h;)pub1icvoidsetCy1
7、inder(doub1er,inth)radius=r;height=h;)doub1evo1ume()returnpi*radius*radius*height;)主类)pub1icc1assApp7_10pub1icstaticvoidmain(Stringargs)Cy1inderVo1U1VOIU2;vo1u1=newCy1inder(2.5z5);(圆柱1的体积=+vo1u1.vo1ume();声明vo1u1zvu2两个引用型变量创建对象,并将vo1u1指向它vo1u2=vo1u1;将VoIUI赋值给VO1U2,Vo1U2也指向了该对象vo1u2.setCy1inder(1.0,2)
8、;重新设置圆柱的底半径和高(”圆柱2的体积=+vo1u1.vo1ume();程序运行结果及其分析:D:nyJauaXkebenTJauacApp7_10.JauaD:Xinyjauakeben7JauaApp7J10圆桂工的体积=98.125圆柱2的体积=6.28D二Xnyjauakebe7在该例的主方法main。中,声明了VO1U1VO1U2两个CyIinder类型的变量,但只创建了一个对象vo1u1o对于vo1u2,使用了赋值语句vo1u2=vo1u1,将两个不同名的引用变量指向同一个对象。故通过任一个引用变量对对象进行修改,另一个引用变量所指向的对象内容也会随之更改。例7.11以圆柱体类
9、Cy1inder的对象为参数进行方法调用,并说明对象的比较。/fi1enameApp7_11.javac1assCy1inder定义类Cy1inderprivatestaticdoub1epi=3.14;privatedoub1eradius;privateintheight;pub1icCy1inder(doub1erzinth)radius=r;height=h;)pub1icvoidcompare(Cy1indervo1u)以对象作为方法的参数if(this=vo1u)(这两个对象相等);e1se(这两个对象不相等”);pub1icc1assApp7_11判断this与Vo1U是否指向同
10、一对象主类pub1icstaticvoidmain(Stringargs)Cy1indervo1u1=newCy1inder(1.0,2);Cy1indervo1u2=newCy1inder(1.0,2);Cy1indervo1u3=vo1u1;pare(vo1u2);调用compare),比较vo1u1与vo1u2是否相等pare(vo1u3);调用compare),比较vo1u1与vo1u3是否相等)程序运行结果及其分析:)nyjauakeben7JauacApp7J.1-Jaua):jyjauakeben7jauaApp7_11隹两个对塞不照等,两4对象相等U):nyjavakeben7
11、在该例中,CyIinder类的ComPare()方法接收的参数是对象,并用if(this=vo1u)语句判断两个引用变量是否相等。在主方法main。中,声明了三个引用变量vo1u1,vo1u2和Vo1U3,并且用相同的实参创建了两个对象VOIU1和Vo1112。然而vo1u1与VOIU2是两个彼此独立的对象,是两个占据不同内存空间地址的不同对象。引用变量vo1u1与vo1u2的值分别是这两个对象在内存中的首地址,显然它们是不相等的;而VOIU1与VOIU3是指向同一个对象的两个变量,它们的值是同一对象在内存中的首地址,故两者相等。例7.12创建个人类Person,在该类中定义一个以对象作为返回
12、值的方法compare()o/fi1enameApp7_12.javac1assPerson定义类Person(privateStringname;privateintage;pub1icPerson(Stringname,intage)thjs.name=name;this.age=age;)pub1icPersoncompare(Personp)返回值的类型为对象(if(this.agep.age)returnthis;返回值调用该方法的对象返回参数对象e1sereturnp;)pub1icc1assApp7_12(pub1icstaticvoidmain(Stringargs)Perso
13、nper1=newPerSon(张三”,20);Personper2=newPerSon(李四”,21);Personper3;per3=pare(per2);if(per3=per1)(“张三年龄大”);e1se(“李四年龄大”);)程序运行结果及其分析:D:SFjauakeben7jauaApp7-12李四年龄大|D:nyjauakeben7该程序是通过比较两个对象的成员变量age的大小,来返回age的值较大的对象。例7.13对象数组的应用。以个人类PerSOn为类型,创建数组。/fi1enameApp7_13.javac1assPerson(privateStringname;privateintage;pub1icPerson(Stringnamezintage)this.name=name;this.age=age;pub1icvoidshow()(姓名:“+name+年龄:+age);)pub1icc1assApp7_13(pub1icstaticvoidmain(Stringargs)声明类类型的数据用new运算符为数组分配内存空用new运算符创建新对象,并分配利用对象per2调用ShOWo方法Personper;per=newPerson3;间per0=newPerSOn(“张三,20);给数组元素per1=newP