2023年朱海实验报告.docx
上海建桥学院实验报告课程名称:面向对象程序设计 实验类型: 设计型实验项目名称:类的封装实验地点:实验日期:2 0 23年 4 月 17 0 姓名:朱海 学号:15 21133班级:网络中兴B 15-1成绩: 一、实验目的及规定 1.掌握包的创建。 2.掌握访问控制符的使用二、实验环境及规定jdkl. 5以上的开发环境,可使用任何编辑器。三、实验内容及环节实验一:实现程序,有以下三个规定.设计正方形类Squa r e,将其生成在m y app. g r aphics包中,成员变量访问权限设计为 私有,设计构造方法以及其他成员方法。1 .设计圆类C ircle,将其生成在myapp. g raph i cs包中,成员变量访问权限为私有,至少 提供一个改变圆半径的成员方法。2 .主函数实现功能,规定:1 )正方形的边长的值来源于命令行 2)圆的半径的值来自键盘数据。3)当输入的边长大于半径时,输出圆周长和正方形面积的差值,反之输出圆面积和正方 形周长的差值(若输出的差值为负值,请将其转化为正值)。4)圆的半径和正方形的边长都更改为以前值得两倍,输出圆的面积和正方形的周长。源代码(排版工整):pa c kage myap p . g r a ph i cs;publi c class S quar e p rivate dou b 1 e 1;public double s () return get 1 ()*getl ();)publ i c dou b le c () 0 return 4*getl ():)public do u b 1 e getl () ret urn 1;)p ublic voi d setl (dou b le 1 ) thi s . 1 = 1;)p ack age myapp. g r a p h ic s ;p ub 1 ic class Circle pri v a t e doub 1 e r =0:p r i v a t e f i nal do ub 1 e PI=3 . 1 4;p u blic doub 1 e s ( ) return PI * ge t r () *ge t r ();)doub 1 e c () r etu r n P I *2*getr ();opublic do ub 1 e g e tc () return P I * 2 * g e t r ();0 )opub 1 ic dou b le g ets () o or e turn Pl* getr ( ) * getr ();0 pu b 1 i c doub 1 e g etr () o return r;)p ubl i c voi d se t r (dou b le r) o o t h is . r = r;0 )pac k age my a pp. graph i cs;import myapp. g rap h ic s . Sq u a r e;imp o rt mya p p . g rap hies. Cir c 1 e;impor t java, u til. Scan n er;publi c c 1 a ss Test o publi c st atic void main ( S tr i n g ar g s ) o do u ble c;o o Square sq 1 =new Squ a re ();Scanner scan=new Sc a nne r (S y s t em .in);double a = D o u ble .pars eDoubl e (arg s 0);o s ql. s etl(a);C ircle b = new C i r c 1 e ();System.out. printin ("请输入半径”);b. setr (sc a n. n e xtDou ble ();i f (sq 1 . g e t 1 () >b. getr ()c =b.getc ()-sql. s ();elsec =b. s () -sql. c ();o if (c<0)c=Ma t h .abs (c);S y stem.o u t . print(c);° d o uble s do u bl e = 4 * b .ge t s ();dou b le c d ouble = 2*sql. c ():S yst e m.out. p r i ntln ("周长为"+c d oubl e +”面积为“+sd o uble); )结果(截图):Ul Testjava 笈 回 Circle Java Square.java ,1 package myapp.graphics;2 import ;3 import myappgraphics.Circle;import java.utilScanner; 5public class Test (8 -public static void mam (String args> 91011 double c;12 Square sql»new Square();13 Scanner scan=new Scanner(System.in);14 double a=Doxible .parseDouble (args 0);15 sql.setl(a);16 Circle b-ncw Circle ();17 System.out .pri1ntin (,请输入半径”);18 b.setr(scan.nextDouble();19 if(sql.getl()>b.getr()20 c=b. getc () -sql .9();21 else22 ;23 if(c<0)24 c-Math.abs (g);25 System.out.print(c);26 double sdouble=4wb gets();27 double cdoublew2aql.c();28 System.out .println (周长为“udouble”面积为“,double):29 >3031 )7叵57 - Javadoc 占,日按*1台笈已终止Test Java 应用程序D:javadk1.8.0 74师3"6。«01阵4月 29日上午7:11:15) 调谕入半径10284.0周长为60.0面积为1256.0实验二:设计程序实现两个复数的相加操作。设计个复数类Complex,具体规定私有成员变量:实部,虚部方法:返回此复数的具体信息S tri ng toSt ring。,输出格式例如3+4i实现Compl e x add (Complex c p lx)方法,实现复数的相加构造方法:有参构造方法初始化成员变量主函数:产生两个复数,输出复数相加的结果(新复数)提醒:根据需要可自行添加成员方法源代码(排版工整):package fushu;im p o rt j a va.util. S c anner;p ubli c c 1 a ss c o mplex (opubl i c s t a t ic c omp 1 ex cl;cpublic s tatic comple x c2;p ri v a t e i nt r= 0 ;p r iva t e i n t z =0;vo i d g e tcomp 1 ex (int r , in t z ) o this.r=r;o t h is . z=z;pu b lie s tat i c v oid main (String a rgs) 0 oSyst em.o iz t .pr i ntl n ("请输入第一个复数的实部和虚部”);0comp lex. cl= new c o m p le x ();S canner scan=ne w Scanner (S y stem, i n );int r 1 =.ne x tint ()o S y stem. o w t.prin t In ("请输入第二个复数的实部和虚部");©Scan n er s can 1 =new Sc a n n e r ( S yst e m. i J?);complex. c2=new comple x ():o i n t r 2=scanl. next I n t ();int z 2=s c a n 1. n e x t Int ();o o comple x c omp 1 e x = n ew c o mp 1 ex (); c o mplex. r = r l + r2;ocomple x . z = zl + z 2 ;S y stem, o w t.pr i n tin (c o mpl ex. r + " +n + c omp 1 e x. z + " i ");0)结果(截图):匚问我Javadoc及声明后控制台区止complex JavaD:javajdk1.8.0 74binjavaw.exe ( 20164月29日上午7:16:56 )请输入第一个复数的实部和虚部 12 10请输入第二个复数的实部和虚都| 119 23+191四、分析与讨论(实验过程中发现的重点与难点)通过本次实验我掌握了包的创建并且基本掌握了访问控制符的使用,并且学了一 下复数的基本概念,以及掌握了有参构造方法初始化成员变量。