上海建桥学院实验报告课程名称:面向对象程序设计实验类型:设计型实验项目名称:类的封装实验地点:实验日期:2016年4月17日姓名:朱海学号:1521133班级:网络中兴B15-1成绩:一、实验目的及要求1.掌握包的创建。2.掌握访问控制符的使用二、实验环境及要求jdk1.5以上的开发环境,可使用任何编辑器。三、实验内容及步骤实验一:实现程序,有以下三个要求1.设计正方形类Square,将其生成在myapp.graphics包中,成员变量访问权限设计为私有,设计构造方法以及其他成员方法。2.设计圆类Circle,将其生成在myapp.graphics包中,成员变量访问权限为私有,至少提供一个改变圆半径的成员方法。3.主函数实现功能,要求:1)正方形的边长的值来源于命令行2)圆的半径的值来自键盘数据。3)当输入的边长大于半径时,输出圆周长和正方形面积的差值,反之输出圆面积和正方形周长的差值(若输出的差值为负值,请将其转化为正值)。4)圆的半径和正方形的边长都更改为以前值得两倍,输出圆的面积和正方形的周长。源代码(排版工整):packagemyapp.graphics;publicclassSquare{privatedoublel;publicdoubles(){returngetl()*getl();}publicdoublec(){return4*getl();}publicdoublegetl(){returnl;}publicvoidsetl(doublel){this.l=l;}}packagemyapp.graphics;publicclassCircle{privatedoubler=0;privatefinaldoublePI=3.14;publicdoubles(){returnPI*getr()*getr();}doublec(){returnPI*2*getr();}publicdoublegetc(){returnPI*2*getr();}publicdoublegets(){returnPI*getr()*getr();}publicdoublegetr(){returnr;}publicvoidsetr(doubler){this.r=r;}}packagemyapp.graphics;importmyapp.graphics.Square;importmyapp.graphics.Circle;importjava.util.Scanner;publicclassTest{publicstaticvoidmain(String[]args){doublec;Squaresq1=newSquare();Scannerscan=newScanner(System.in);doublea=Double.parseDouble(args[0]);sq1.setl(a);Circleb=newCircle();System.out.println(请输入半径);b.setr(scan.nextDouble());if(sq1.getl()b.getr())c=b.getc()-sq1.s();elsec=b.s()-sq1.c();if(c0)c=Math.abs(c);System.out.print(c);doublesdouble=4*b.gets();doublecdouble=2*sq1.c();System.out.println(周长为+cdouble+面积为+sdouble);}}结果(截图):实验二:设计程序实现两个复数的相加操作。设计一个复数类Complex,具体要求私有成员变量:实部,虚部方法:返回此复数的详细信息StringtoString(),输出格式例如3+4i实现Complexadd(Complexcplx)方法,实现复数的相加构造方法:有参构造方法初始化成员变量主函数:产生两个复数,输出复数相加的结果(新复数)提示:根据需要可自行添加成员方法源代码(排版工整):packagefushu;importjava.util.Scanner;publicclasscomplex{publicstaticcomplexc1;publicstaticcomplexc2;privateintr=0;privateintz=0;voidgetcomplex(intr,intz){this.r=r;this.z=z;}publicstaticvoidmain(String[]args){System.out.println(请输入第一个复数的实部和虚部);complex.c1=newcomplex();Scannerscan=newScanner(System.in);intr1=scan.nextInt();intz1=scan.nextInt();System.out.println(请输入第二个复数的实部和虚部);Scannerscan1=newScanner(System.in);complex.c2=newcomplex();intr2=scan1.nextInt();intz2=scan1.nextInt();complexcomplex=newcomplex();complex.r=r1+r2;complex.z=z1+z2;System.out.println(complex.r+++complex.z+i);}}结果(截图):四、分析与讨论(实验过程中发现的重点与难点)通过本次实验我掌握了包的创建并且基本掌握了访问控制符的使用,并且学了一下复数的基本概念,以及掌握了有参构造方法初始化成员变量。