JAVA程序设计Word文档下载推荐.docx
《JAVA程序设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《JAVA程序设计Word文档下载推荐.docx(28页珍藏版)》请在冰豆网上搜索。
}
}
步骤
(2):
保存文件为e:
\java\HelloWorldApplet.java。
编译该文件,生成HelloWorldApplet.class字节码文件。
步骤(3):
编写显示HelloWorldApplet.calss的页面文件HelloWorld.html,代码如下。
<
html>
<
appletcodebase=e:
/java/classcode=HelloWorldApplet.classwidth=300height=120>
<
/applet>
/html>
步骤(4):
在提示符窗口调用小程序查看器浏览HelloWorld.html页面,观察Applet应用程序。
思考题:
1)编程实现:
随机产生20个整数存放到数组中,然后对其按照升序进行排序,最后对排序前后的数组按照每5个数的方式输出。
源程序:
importjava.util.*;
classRandomPx
{publicstaticvoidmain(Stringargs[])
{intnum[]=newint[20];
inti,j,temp;
Randomr=newRandom();
for(i=0;
i<
20;
i++)
num[i]=r.nextInt();
19;
for(j=0;
j<
19-i;
j++)
{if(num[j]>
num[j+1])
{temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
{if(i%5==0)System.out.print("
\n\r"
System.out.print(num[i]+"
"
);
2)编程实现:
产生一个1-12之间的随机整数,并根据该随机整数的值,输出对应月份的英文名称。
源程序:
importjava.io.*;
classRandomMonth
{publicstaticvoidmain(Stringargs[])
{Stringmonths[]={"
January"
"
February"
March"
April"
May"
June"
July"
Aguest"
September"
October"
November"
December"
};
inti;
i=(int)(Math.random()*12);
System.out.println(months[i]);
窗口显示:
实验二初步的面向对象的程序设计练习
一.实验目的:
1)掌握类的构造方法的定义。
2)掌握创建类实例的方法。
3)初步掌握面向对象的编程思想。
二.实验过程:
1)编写程序实现如下功能:
已知学生类有域变量(学号、班号、、性别、年龄)和方法(构造方法、获得学号、获得班号、获得性别、获得年龄、修改年龄,显示基本信息),定义一组学生对象,并初始化他们的基本信息,然后依次输出。
publicclassstudentx{
privateStringno;
privateStringclassno;
privateStringname;
privateStringsex;
privateintage;
studentx(){
no="
1"
;
classno="
name="
lucy"
sex="
male"
age=0;
Stringgetno(){
returnno;
Stringgetclassno(){
returnclassno;
Stringgetname(){
returnname;
intgetage(){
returnage;
voidupdateage(intnewage){
this.age=newage;
publicStringtoString(){
return(name+"
学生:
+"
性别"
+sex+"
,年龄"
+age+"
,学号为"
+no+"
班级为"
+classno);
publicstaticvoidmain(String[]args){
studentxp=newstudentx();
p.updateage(25);
System.out.println(p.getage());
System.out.println(p);
2)编写2)程序实现如下功能:
已知学生类有域变量(、考号、综合成绩、体育成绩)和方法(获取综合成绩、获取体育成绩、显示基本信息),学校类有静态变量(录取分数线)和方法(设置录取分数、获取录取分数线),录取类有方法(获取学生是否符合录取条件,其中录取条件为综合成绩在录取分数线之上,或体育成绩在96分以上并且综合成绩大于300分)。
现要求编写程序输出一组学生对象中被某学校录取的学生基本信息。
classSchool
{staticfloatscoreLine;
staticvoidsetscoreLine(floatscore)
{scoreLine=score;
staticfloatgetscoreLine()
{returnscoreLine;
classStudent
{Stringname,id;
floatcomScore,score;
floatgetcomScore()
{returncomScore;
floatgetscore()
{returnscore;
Student(Stringname,Stringid,floatcomScore,floatscore)
{this.name=name;
this.id=id;
Score=comScore;
this.score=score;
classEnroll
{staticbooleanisEnroll(Students)
{if(s.getcomScore()>
=School.getscoreLine()||
(s.getscore()>
96&
&
s.getcomScore()>
=300))
returntrue;
elsereturnfalse;
publicstaticvoidmain(Stringargs[])
{Students[]=newStudent[3];
Stringinfo[]=newString[4];
inti,j;
StringmessInfo;
BufferedReaderin=newBufferedReader(newInputStreamReader(System.in));
StringTokenizerst;
School.setscoreLine(550);
for(i=0;
s.length;
i++)
{try{messInfo=in.readLine();
st=newStringTokenizer(messInfo);
for(j=0;
info.length;
{info[j]=st.nextToken();
}catch(IOExceptionex){}
s[i]=newStudent(info[0],info[1],Float.parseFloat(info[2]),Float.parseFloat(info[3]));
for(i=0;
if(isEnroll(s[i]))
System.out.println(s[i].name+"
+s[i].id+"
+"
被录取!
else
没有录取!
1、1)定义复数类Complex,其满足如下要求(18分):
●复数类Complex的属性有:
RealPart:
double型,代表复数的实数部分
ImaginPart:
double型,代表复数的虚数部分
●复数类Complex的方法有:
Complex(doublerp,doubleip):
构造函数,形参rp为实部的初值,ip为虚部的初值。
ComplexcomplexAdd(Complexa):
将当前复数对象与形参复数对象相加,所得的结果仍是一个复数,并将结果返回给此方法的调用者。
ComplexcomplexMinus(Complexa):
将当前复数对象与形参复数对象相减,所得的结果仍是一个复数,并将结果返回给此方法的调用者。
publicStringtoString():
把当前复数对象的实部、虚部组合成a+bi的字符串形式,其中a和b分别为实部和虚部的数据。
publicclassComplex
{doubleRealPart;
doubleImageinPart;
Complex(doublerp,doubleip)
{RealPart=rp;
ImageinPart=ip;
ComplexcomplexAdd(Complexa)
{Complextemp;
temp=newComplex(RealPart+a.RealPart,ImageinPart+a.ImageinPart);
returntemp;
ComplexcomplexMinus(Complexa)
{Complextemp;
temp=newComplex(RealPart-a.RealPart,ImageinPart-a.ImageinPart);
publicStringtoString()
{if(ImageinPart<
0)
return(RealPart+"
-"
+Math.abs(ImageinPart)+"
i"
else
+ImageinPart+"
{charoperator;
try{
Complexc1=newComplex(1,2);
Complexc2=newComplex(3,4);
ComplexcomplexResult=null;
operator=(char)System.in.read();
switch(operator)
{case'
+'
:
complexResult=plexAdd(c2);
break;
case'
-'
complexResult=plexMinus(c2);
}
System.out.println(complexResult);
catch(IOExceptione)
{System.out.println(e);
运行结果:
实验三面向对象程序设计的继承、多态等特性的练习
1)掌握类的继承机制。
2)熟悉类中成员变量和方法的访问控制。
3)熟悉方法或构造方法多态性。
4)熟悉接口的定义方法。
二、实验容
已知Person类包含三个公共域变量(、性别、年龄)和一个构造方法,Student类是Person类的派生类,包含两个新的公共域变量(学号、班号)、两个公共方法(构造方法、修改年龄、显示基本信息)和一个构造方法。
定义一组学生对象,并初始化他们的基本信息,然后依次输出。
classPerson
{
publicStringname;
publicStringsex;
intage;
Person(Stringname,Stringsex,intage)
this.sex=sex;
this.age=age;
classStudentextendsPerson
publicStringsno;
publicintclassno;
publicvoidupdateAge(intage)
{this.age=age;
Student(Stringname,Stringsex,intage,Stringsno,intclassno)
{super(name,sex,age);
this.sno=sno;
this.classno=classno;
{System.out.println("
+name+"
sex="
+sex+"
age="
+age+"
sno="
+sno+"
classno"
+classno+"
return"
sno="
publicclassTestStudent
publicstaticvoidmain(String[]args)
{Students1=newStudent("
susan"
女"
20,"
2);
s1.updateAge(21);
s1.toString();
2)输入课本例5-4的源程序,观察其运行结果,然后将Shape类分别定义为一个抽象类和接口,然后将源程序进行修改,让其实现相同功能。
publicclassTestVirtualInvoke{
staticvoiddoStuff(Shapes){
s.draw();
}
publicstaticvoidmain(String[]args){
Circlec=newCircle();
Trianglet=newTriangle();
Linel=newLine();
doStuff(c);
doStuff(t);
doStuff(l);
classShape{
voiddraw(){
System.out.println("
ShapeDrawing"
classCircleextendsShape{
ShapeCircle"
classTriangleextendsShape{
ShapeTriangle"
classLineextendsShape{
ShapeLine"
}*/
/*方法二:
使用抽象类abstract
abstractclassShape{
abstractvoiddraw();
}//定义Shape抽象类的派生类Circle
}//定义Shape抽象类的派生类Triangle
}*///定义Shape抽象类的派生类Line
//方法三:
使用interface接口方法
interfaceShape{
publicvoiddraw();
}//定义一个Shape接口
classCircleimplementsShape{
publicvoiddraw(){
}//基于Shape接口利用implements实现类Circle
classTriangleimplementsShape{
}//基于Shape接口利用implements实现类Triangle
classLineimplementsShape{
}//基于Shape接口利用implements实现类Line
(1)某小型公司,主要有三类人员:
经理、兼职技术人员和兼职推销员。
这三类人员共同拥有的相关属性:
、编号;
相关方法:
获取当月薪水的getPay()方法、显示个人信息的toString()方法。
人员编号基数为1000,每创建一个人员实例对象,其编号属性的值顺序加1。
月薪计算方法:
经理拿固定月薪8000元;
兼职技术人员按每小时100元领取月薪;
兼职推销人员的月薪按当月的销售额的4%提成。
abstractclassEmployee
{Stringname;
longno;
staticlongid=1000;
abstractdoublegetPay();
Employee(Stringname){this.name=name;
id=id+1;
};
classManagerextendsEmployee
doublepay=8000;
doublegetPay(){return8000;
Manager(Stringname)
{super(name);
no=id;
publicStringtoString(){return"
name:
no:
pay:
8000"
classSaleextendsEmployee
{longsaleNum;
doublegetPay(){returnsaleNum*0.4;
Sale(Stringname,longsaleNum)
{super(name);
this.saleNum=saleNum;
{return"
+getPay();
classTechextendsEmployee
{longsalaryHours;
doublegetPay()
{returnsalaryHours*100;
Tech(Stringname,longsalaryHours)
this.salaryHours=salaryHours;
{return"
classEmployApp
Vectorv=newVector();
Employeeem;
doublenum