资源描述:
《java实验归纳总结.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、1.设计一个Person类,包含:姓名,年龄,性别。要求:该类至多只能创建一男、一女两个对象。2.设计一个测试类Test,创建若干个Person类对象,测试是否符合要求。packagetest8;classperson{Stringname;intage;charsex;staticintflag1=1,flag2=1;privateperson(Stringn,inta,chars){name=n;age=a;sex=s;if(s=='m'){flag1--;}if(s=='f'){flag2--;}}publicstaticpersonnewperson(Stri
2、ngn,inta,chars){if(s=='m'&&flag1!=0){personp=newperson(n,a,s);returnp;}elseif(s=='f'&&flag2!=0){personp=newperson(n,a,s);returnp;}else{returnnull;}}publicStringtoString(){return("name:"+name+"age:"+age+"sex:"+sex);}}publicclasstest{publicstaticvoidmain(String[]args){personp1,p2,p3;p1=pe
3、rson.newperson("mary",11,'f');p2=person.newperson("tom",14,'m');p3=person.newperson("jane",13,'f');System.out.println(p1);System.out.println(p2);System.out.println(p3);}}1.设计一个数据单元类DataUnit,它包含学号(Number)和姓名(Name)两个数据成员。2.设计两个线程,一个线程往数据单元里写信息,一个线程从数据单元里读信息。要求使用线程同步技术,使得每写一次就往外读一次。例如,写和读的
4、数据序列为:Write:1,Name1Read:1,Name1Write:2,Name2Read:2,Name2...packagetest7;classDataUnit{intnumber;Stringname;intmax;booleanflag=false;publicDataUnit(intnumber,Stringname,intmax){this.name=name;this.max=max;}publicsynchronizedvoidin(){if(flag){try{wait();}catch(Exceptione){}}System.out.pri
5、ntln("Writenumber:"+(++number)+"writename:"+(number));flag=true;notify();}publicsynchronizedvoidout(){if(!flag){try{wait();}catch(Exceptione){}}System.out.println("readnumber:"+(number)+"readname:"+(number));flag=false;notify();}}classwriteextendsThread{DataUnitx=null;publicwrite(DataUn
6、itx){this.x=x;}publicvoidrun(){while(x.number7、();newread(x).start();}}设计一个线程Thread类的子类DataThread,使用DataThread构建两个线程,分别输出50以内的奇数和偶数,并使两个线程并发执行。packagetest6;classdatathreadextendsThread{privateintnumber;Stringflag;publicdatathread(intnum){number=num;if(number==-2)flag="even";elseflag="odd";}publicvoidrun(){intresult=number;S