java实验总结Word格式文档下载.docx
- 文档编号:20258384
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:32
- 大小:24.08KB
java实验总结Word格式文档下载.docx
《java实验总结Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《java实验总结Word格式文档下载.docx(32页珍藏版)》请在冰豆网上搜索。
sex:
+sex);
}
publicclasstest{
publicstaticvoidmain(String[]args){
personp1,p2,p3;
p1=person.newperson("
mary"
11,'
);
p2=person.newperson("
tom"
14,'
p3=person.newperson("
jane"
13,'
System.out.println(p1);
System.out.println(p2);
System.out.println(p3);
1.设计一个数据单元类DataUnit,它包含学号(Number)和姓名(Name)两个数据成员。
2.设计两个线程,一个线程往数据单元里写信息,一个线程从数据单元里读信息。
要求使用线程同步技术,使得每写一次就往外读一次。
例如,写和读的数据序列为:
Write:
1,Name1
Read:
2,Name2
...
packagetest7;
classDataUnit{
intnumber;
intmax;
booleanflag=false;
publicDataUnit(intnumber,Stringname,intmax){
this.name=name;
this.max=max;
publicsynchronizedvoidin(){
if(flag){
try{
wait();
catch(Exceptione){
System.out.println("
Writenumber:
+(++number)+"
writename:
+(number));
flag=true;
notify();
publicsynchronizedvoidout(){
if(!
flag){
readnumber:
+(number)+"
readname:
flag=false;
classwriteextendsThread{
DataUnitx=null;
publicwrite(DataUnitx){
this.x=x;
publicvoidrun(){
while(x.number<
x.max){
x.in();
classreadextendsThread{
publicread(DataUnitx){
=x.max){
x.out();
publicclasstest7{
DataUnitx=newDataUnit(0,"
10);
newwrite(x).start();
newread(x).start();
设计一个线程Thread类的子类DataThread,使用DataThread构建两个线程,分别输出50以内的奇数和偶数,并使两个线程并发执行。
packagetest6;
classdatathreadextendsThread{
privateintnumber;
Stringflag;
publicdatathread(intnum){
number=num;
if(number==-2)
flag="
even"
;
else
odd"
intresult=number;
thread"
+flag+"
starts!
while(result+2<
=50){
result=result+2;
an"
number:
+result);
ends!
publicclassMain{
mainthreadstarts!
datathreadthread1=newdatathread(-2);
datathreadthread2=newdatathread(-1);
thread1.start();
thread2.start();
mainthreadends!
1.设计一个学生Student类,包含学号(Sno),姓名(Name),所在系(Dept)等属性。
创建若干Student类的对象,添加到一个向量Vector中,并遍历输出该向量各元素值。
packagetest5;
importjava.util.*;
publicclassStudent{
Stringsno;
Stringname;
Stringdept;
publicStudent(Stringno,Stringn,Stringp){
this.sno=no;
this.name=n;
this.dept=p;
publicStringtoString(){
return("
sno:
+sno+"
name:
+name+"
dept:
+dept);
Studentstu[];
stu=newStudent[3];
stu[0]=newStudent("
001"
"
Mary"
SS"
stu[1]=newStudent("
002"
Tom"
CS"
stu[2]=newStudent("
003"
Hellen"
IS"
Vectorv=newVector();
for(inti=0;
i<
stu.length;
i++){
v.add(stu[i]);
Iterator<
Student>
num=v.iterator();
while(num.hasNext()){
System.out.println(num.next());
2.已知:
哈希表HashTable<
Integer,String>
hTable=newHashTable<
()。
编程遍历hTable,要求写出两种方式。
packagetest5hash;
importjava.lang.Iterable;
publicclassHash{
Hashtable<
hTable=newHashtable<
();
hTable.put(001,"
a"
hTable.put(002,"
b"
hTable.put(003,"
c"
Integer>
i=(Iterator<
)hTable.keys();
while(i.hasNext())
{
intj=i.next();
System.out.print(j+"
"
System.out.println(hTable.get(j));
System.out.print(key+"
System.out.println(hTable.get(key));
1.创建一学生类(包括:
姓名、年龄、所在班级、密码),创建若干该类的对象并保存到文件a.dat中(密码不用保存),从文件a.dat读取对象显示在屏幕上。
packagestudent;
importjava.io.*;
classStudentimplementsSerializable{
intSclass;
transientStringpassword;
publicStudent(Stringn,inta,intsc,Stringp){
this.age=a;
this.Sclass=sc;
this.password=p;
publicstaticvoidmain(String[]args)throwsIOException,ClassNotFoundException{
14,1,"
123"
14,2,"
145"
Jim"
16,2,"
456"
ObjectOutputStreamoos=newObjectOutputStream(newFileOutputStream("
D:
/a.dat"
));
3;
oos.writeObject(stu[i]);
stu[i]=null;
oos.close();
ObjectInputStreamois=newObjectInputStream(newFileInputStream("
stu[i]=(Student)ois.readObject();
ois.close();
+stu[i].name+"
+stu[i].age+"
class"
+stu[i].Sclass);
1.模仿文本文件复制的程序,编写对二进制文件进行复制的程序。
packagefilecopy;
classCopyer{
Stringsourcename,destname;
DataInputStreamsource;
DataOutputStreamdest;
intdata;
privatebooleanopenfiles(){
source=newDataInputStream(newFileInputStream(sourcename));
catch(IOExceptioniox){
problemopening"
+sourcename);
returnfalse;
dest=newDataOutputStream(newFileOutputStream(destname));
+destname);
returntrue;
privatebooleancopyf(){
while((data=source.read())!
=-1)
dest.writeInt(data);
problemreadingorwriting"
privatebooleanclosef(){
booleanretval=true;
source.close();
dest.close();
problemclosing"
retval=false;
returnretval;
publicbooleancopy(Stringsrc,Stringdst){
sourcename=src;
destname=dst;
returnopenfiles()&
copyf()&
closef();
publicclassmain{
if(args.length==2){
newCopyer().copy("
d:
\\a.txt"
\\b.txt"
else{
pleaseenterfilename"
2.创建一个存储若干随机整数的文本文件。
其中文件名、整数的个数及其范围均由键盘输入。
packagecreatfile;
publicclassMain
{
privateStringname;
privateintcount;
privateintMax;
privateintMin;
publicMain(Stringn,intc,intmax,intmin)
this.name=n;
this.count=c;
this.Max=max;
this.Min=min;
publicvoidcreatefile()
try
{
FileWritercreat=newFileWriter(name);
intlimit=Max-Min;
Randomrandom=newRandom();
for(inti=1;
i<
=count;
i++)
{
intnumber=Min+random.nextInt(limit);
System.out.print(number);
System.out.print("
creat.write(number+"
}
creat.close();
}
catch(IOExceptioniox)
System.out.println("
Error!
publicstaticvoidmain(String[]args)throwsIOException
Stringfilename;
intcount,min,max;
Scannerin=newScanner(System.in);
请输入文件名"
filename=in.next();
System.out.println("
输入随机数的个数"
count=in.nextInt();
输入随机数的最小值"
min=in.nextInt();
输入随机数的最大值"
max=in.nextInt();
MainM=newMain(filename,count,max,min);
M.createfile();
1.编写求解几何图形(如直线、矩型,圆形)的周长和面积的应用程序,
要求使用接口实现多重继承和多态技术。
提示:
声明Iperimeter和IArea分别表示周长接口和面积接口;
声明抽象类Shape.
packagetest3;
interfaceIperimeter{
publicdoubleimperimeter();
interfaceIArea{
publicdoubleIArea();
abstractclassshapeimplementsIArea,Iperimeter{
publicabstractdoubleimperimeter();
publicabstractdoubleIArea();
classrectangleextendsshape{
doublelength,width;
publicrectangle(doublex,doubley){
length=x;
width=y;
publicdoubleimperimeter(){
return(length+width)*2;
publicdoubleIArea(){
returnlength*width;
classcircleextendsshape{
staticdoublepi=3.14;
intr;
publiccircle(intr0){
r=r0;
return2*pi*r;
returnpi*r*r;
shapes1=newrectangle(2,3);
shapes2=newcircle(3);
theimperimeterofs1is:
+s1.imperimeter()+"
\nthearaeofs1is:
+s1.IArea());
theimperimeterofs2is:
+s2.imperimeter()+"
\nthearaeofs2is:
+s2.IArea());
1.定义一个接口EqualDiag,表示具有等斜边的图形对象,其中包含:
a.方法getDiag,用来计算图形的斜边的长度;
b.方法getArea,用来计算图形的面积;
c.方法compareTo,用来比较两个对象的大小(按照斜边的大小进行比较);
2.定义一个矩形类Rectangle,再派生一个正方形类Square:
a.在矩形类和正方形类中实现接口EqualDiag;
packagetest2;
importjava.lang.Math.*;
interfaceEqualDiag
publicdoublegetDiag();
publicdoublegetArea();
publicintcompareTo(Objecta);
classRectangleimplementsEqualDiag
doublelength;
doublewidth;
publicvoidsetlength(doublem)
length=m;
publicvoidsetwidth(doublen)
width=n;
publicdoublegetDiag()
returnMath.sqrt(width*width+length*length);
publicdoublegetArea()
returnlength*width;
publicintcompareTo(Objecta)
Rectanglex;
x=(Rectangle)a;
if(this.getDiag(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 实验 总结