ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:43.53KB ,
资源ID:8168842      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8168842.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(安徽工业大学java实验报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

安徽工业大学java实验报告.docx

1、安徽工业大学java实验报告JAVA实验报告实验1:利用JAVA反射技术分析类结构实验内容:运行程序,指定一个要分析的类名称,如java.lang.Double,输出类中声明的属性、方法、构造函数等。结果分析:1.分析程序运行时的输出结果。输出的结果中显示了被分析类的方法与变量,包括这些方法与变量的修饰符2.分析与JAVA反射技术相关的几个类的作用:java.lang.reflect.Constructor;Constructor 提供关于类的单个构造方法的信息以及对它的访问权限。java.lang.reflect.Field;Field 提供有关类或接口的单个字段的信息,以及对它的动态访问权

2、限。反射的字段可能是一个类(静态)字段或实例字段。java.lang.reflect.Method;Method 提供关于类或接口上单独某个方法(以及如何访问该方法)的信息。所反映的方法可能是类方法或实例方法(包括抽象方法)。java.lang.reflect.Modifier;Modifier 类提供了 static 方法和常量,对类和成员访问修饰符进行解码。修饰符集被表示为整数,用不同的位位置 (bit position) 表示不同的修饰符。定义一个自己的类,如Employee类,定义几个属性、方法、构造函数,要求成员的属性包含Public、Private、Protected、Static

3、等。运行该程序分析一下你自己定义的类结构。class Employee public String name ; public String id; private int age ; static protected int salary =100; Employee() private void Employee(String xm,String bh,int nl) name=xm; id=bh; age=nl; protected double Employee(int gz) return gz+salary; 分析:先调用一个无参数的构造函数构造,然后再调用该构造函数private

4、 void Employee(String xm,String bh,int nl)构造一个对象,最后调用构造函数计算总的薪水。实验2:利用JAVA反射技术分析对象结构实验内容:运行示例程序,分析Integer数组对象的结构;改写程序分析一下自定义的类对象,如Employee类。源代码:public abstract class People double salary; String name; int year,mouth,day; public abstract double getSalary(); public abstract void setSalary(double salar

5、y);class Employee extends People Employee(String name,double salary,int year,int mouth,int day) this.salary = salary; this.name = name; this.year = year; this.mouth = mouth; this.day = day; Employee() public double getSalary() return salary; public void setSalary(double salary) this.salary = salary;

6、 class Manager extends People private double bonus; Manager(String name,double salary,int year,int mouth,int day) this.salary = salary; this.name = name; this.year = year; this.mouth = mouth; this.day = day; bonus= 0; public double getSalary() return salary+bonus; public void setSalary(double salary

7、) this.salary = salary; public void setBonus(double bonus) this.bonus = bonus; 分析:代码中Methodl类就相当于一个指向类中方法的指针,Class类通过getMethod方法获取这个Method类,之后Method类的对象可以通过invoke方法来调用这个方法。实验4:利用TreeSet实现集合元素排序独立编程实现如下功能:定义一个自己的类,如Employee类,定义几个属性(如name,salary,hiredate等),随机构造10个Employee类对象,添加到三个不同的TreeSet中,要求三个TreeS

8、et输出的Employee对象分别按照姓名,薪水,雇佣日期排序。源代码:import java.util.*;class NameComparator implements Comparator public int compare(Employee a, Employee b) String nameA = a.getname(); String nameB = b.getname(); return nameA.compareTo(nameB); class DataComparator implements Comparator public int compare(Employee a

9、, Employee b) String dateA = a.getdate(); String dateB = b.getdate(); return dateA.compareTo(dateB); class Employee implements Comparable int salary=0; String name; String date; Employee(String n,int s,String i) salary=s;name=n;date=i; public String getname() return name; public String getdate() ret

10、urn date; Override public int compareTo(Object o) / TODO Auto-generated method stub Employee em=(Employee)o; return (this.salary-em.salary); public class sy4 public static void main(String args) TreeSetmytree=new TreeSet(); Employee em0,em1,em2,em3,em4,em5,em6,em7,em8,em9; em0=new Employee(张三,1500,1

11、231); em1=new Employee(李四,1000,1201); em2=new Employee(王武,1001,1202); em3=new Employee(流云,1002,1203); em4=new Employee(张杰,1200,1101); em5=new Employee(华荣,1300,1025); em6=new Employee(郭靖,1100,1110); em7=new Employee(黄蓉,1150,1205); em8=new Employee(黄蕾,2500,1120); em9=new Employee(马凯,1320,1221); mytree

12、.add(em0); mytree.add(em1); mytree.add(em2); mytree.add(em3); mytree.add(em4); mytree.add(em5); mytree.add(em6); mytree.add(em7); mytree.add(em8); mytree.add(em9); System.out.println(按工资排序); System.out.println(); Iteratores=mytree.iterator(); while(es.hasNext() Employee ems=es.next(); System.out.pri

13、ntln( +ems.name + +ems.date+ +ems.salary); NameComparator comp = new NameComparator(); SortedSet sortByname = new TreeSet(comp); sortByname.add(em0); sortByname.add(em1); sortByname.add(em2); sortByname.add(em3); sortByname.add(em4); sortByname.add(em5); sortByname.add(em6); sortByname.add(em7); sor

14、tByname.add(em8); sortByname.add(em9); System.out.println(); System.out.println(按姓名排序); Iteratoren=sortByname.iterator(); while(en.hasNext() Employee emn=en.next(); System.out.println( +emn.name+ +emn.date+ +emn.salary); DataComparator comp1 = new DataComparator(); SortedSet sortBydate = new TreeSet

15、(comp1); sortBydate.add(em0); sortBydate.add(em1); sortBydate.add(em2); sortBydate.add(em3); sortBydate.add(em4); sortBydate.add(em5); sortBydate.add(em6); sortBydate.add(em7); sortBydate.add(em8); sortBydate.add(em9); System.out.println(); System.out.println(按雇佣日期排序); Iteratorda=sortByname.iterator

16、(); while(da.hasNext() Employee dat=da.next(); System.out.println( +dat.name+ +dat.date+ +dat.salary); 运行结果:实验5:多线程同步之团结就是力量实验问题描述:四名学生值日,教室里共有500套桌椅需要擦净,四人没有进行明确分工,能者多劳,团结一致,最终将教室里的桌椅擦得干干净净。程序要求:编写多线程程序,为每名学生创建单独的线程,以桌椅为操作对象,要尽量做到分工合理,并记录每人负责的桌椅数,擦完500套桌椅后即退出应用程序。要点:1、 每个学生对象都是同一个线程类对象,如何体现能者多劳?2、

17、多个学生线程在劳动时要么擦桌子,要么擦椅子,如何实现对共享的数据(500套桌椅)同步访问,如果学生甲在擦桌子,是否允许学生乙擦椅子?源程序:import java.util.Random;public class Cooperation public static void main(String args) WorkStudent2 ws1 = new WorkStudent2(1, 10); WorkStudent2 ws2 = new WorkStudent2(2, 20); WorkStudent2 ws3 = new WorkStudent2(3, 30); WorkStudent2

18、 ws4 = new WorkStudent2(4, 40); new Thread(ws1).start(); new Thread(ws2).start(); new Thread(ws3).start(); new Thread(ws4).start(); class ZhuoYi int desk=0,0,0,0,0;int chair=0,0,0,0,0; private int chairCount = 500; private int deskCount = 500; public synchronized Boolean distribute(int id,long sleep

19、time) int chairs = 1; int desks = 1; Random rdm = new Random(System.currentTimeMillis(); if(rdm.nextInt() % 2 =0) if(chairCount 0) chairs = chairs - 1; while(chairs 0) desks = desks - 1; while(desks0) try wait(); catch(InterruptedException e) System.out.println(Student +id+: wiping desk +deskCount-)

20、; deskid+=1; desks = desks + 1; notifyAll(); if(chairCount = 0&deskCount = 0) return true; else return false; class WorkStudent2 implements Runnable private long sleeptime; private int id; static ZhuoYi dc = new ZhuoYi(); public WorkStudent2(int id,long time) super(); this.id=id; this.sleeptime=time; public void run() while(!dc.distribute(id, sleeptime) try Thread.sleep(sleeptime); catch(Exception e) ; System.out.println(Result: Student +id+ wiped +dc.deskid+ desks and+dc.chairid+ chairs.); 运行结果(运行结果过长,只截取部分):

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1