资源描述:
《武汉科技大学java实验一二附代码.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、武汉科技大学Java及移动开发实验报告二○一七----二○一八学年第二学期学院:信息科学与工程学院专业:通信工程班级:通信1502班学号:0姓名:方翠群指导老师:邱奕敏二○一八年5月4日一、实验目的1)掌握类的封装机制2)掌握类的继承机制。3)熟悉类中成员变量和方法的访问控制。4)熟悉方法或构造方法多态性。5)熟悉抽象类、接口的定义方法。6)掌握程序、进程与线程之间的关系。7)多线程的创建。8)线程的同步与共享。二、实验内容1)编写程序实现如下功能:已知Person类包含三个公共域变量(姓名、性别、年龄)和一个构造方法,Student类是Person类的派生
2、类,包含两个新的公共域变量(学号、班号)、两个公共方法(修改年龄、显示基本信息)及一个构造方法。定义一组学生对象,并初始化他们的基本信息,然后依次输出。2)输入课本例5-4的源程序,观察其运行结果,然后将Shape类分别定义为一个抽象类和接口,然后将源程序进行修改,让其实现相同功能。3)民航共有10张机票,开设3个售票窗口,编写多线程程序实现一张票只能由一个窗口售出功能。三、实验代码代码1:packagefangcuiqun;publicclassPerson{publicStringname;publiccharsex;publicintage;Perso
3、n(Stringname,charsex,intage){this.name=name;this.sex=sex;this.age=age;}}classStudentextendsPerson{publicStringclassno;publicStringsno;publicvoidupdateAge(intage){this.age=age;}voidToString(){System.out.println(name+""+sex+""+age+""+classno+""+sno);}Student(Stringname,charsex,intage
4、,Stringclassno,Stringsno){super(name,sex,age);this.classno=classno;this.sno=sno;}}classTest{publicstaticvoidmain(String[]args){Studentst[]=newStudent[4];st[0]=newStudent("方翠群",'男',20,"1","01");st[2]=newStudent("尹鑫",'男',21,"3","03");st[1]=newStudent("颜锐",'男',19,"7","01");st[3]=newSt
5、udent("杨子豪",'男',20,"1","07");for(inti=0;i<4;i++){st[i].ToString();}}}代码2:packagefangcuiqun;publicclassTestVirtualInvoke{staticvoiddoStuff(Shapes){s.draw();}publicstaticvoidmain(String[]args){Circlec=newCircle();Trianglet=newTriangle();Linel=newLine();doStuff(c);doStuff(t);doStuff(l
6、);}}classShape{voiddraw(){System.out.println("ShapeDrawing");}}classCircleextendsShape{voiddraw(){System.out.println("DrawCircle");}}classTriangleextendsShape{voiddraw(){System.out.println("DrawThreeLines");}}classLineextendsShape{voiddraw(){System.out.println("DrawLine");}}代码3:pac
7、kagefangcuiqun;classTicketimplementsRunnable{privateintTicketNum=10;privatebooleanflag=true;privatesynchronizedvoidsale(){if(TicketNum<=0){flag=false;return;}TicketNum--;System.out.println(Thread.currentThread().getName()+"卖了一张票,还剩"+TicketNum+"张票。");}publicvoidrun(){while(flag){sal
8、e();try{Thread.sleep(200);