《Java 2简明教程-第2版 程序举例源代码.docx》由会员分享,可在线阅读,更多相关《Java 2简明教程-第2版 程序举例源代码.docx(85页珍藏版)》请在课桌文档上搜索。
1、/3IDl-lpublicclasshellopublicstaticvoidmain(Stringargs)System,out.printin(zHelloJava!);)/程序l-2importjava.awt.Graphics;/指明要使用GraPhiCS类,类似于CC+中的#19111(12语句importjava,applet.Applet;/指明要使用APPlet类publicclasssayhelloextendsAppletpublicvoidpaint(Graphicsg)g.drawString(HelloJava!”,35,30);)/3IDd1-3publicclas
2、snewPrintpublicstaticvoidmain(Stringargs)inti=100;charch,A,;doubled=9.8999;Strings=ABCD;System,out.printf(z,%d%c%f%s”,i,ch,d,s);)/程序l-4importjava.awt.Graphics;/程序要应用GraPhiCS类importjava.applet.Applet;/程序要应用系统提供的APPIet类/此处的空行是为了使程序显得条理分明publicclasssayhelloextendsAppletpublicvoidpaint(Graphicsg)intXPoS
3、=40,YPoS=40;定义输出信息的X坐标和Y坐标/此处的空行是为了使程序显得条理分明g.drawString(zzHelloJava!”,XPos,YPos);/程序2-1publicclassTest_Int/测试整型变量的最大最小值publicstaticvoidmain(Stringargs)System,out.printin(,zbyte最大值-,z+Byte.N1AX_VA1.UE);System,out.printin(,byte最小值-z,+Byte.MIN_VA1.UE);+Short.MX-VA1.UE);,z+Short.MIN_VA1.UE);System.out.
4、println(z,short最大值System.out.println(zzshort最小值System,out.println(zzintSystem,out.println(z*int最大值=+Integer.MXJA1.UE);最小值=+Integer.MIN_VA1.UE);System,out.PrintIn(longSystem,out.PrintIn(long)最大值=+1.ong.MAX_VA1.UE);最小值=+1.ong.MIN_VA1.UE);/程序2-2publicclassTest_char/测试字符型变量的最大最小值publicstaticvoidmain(Str
5、ingargs)System,out.printin(z,char最大值二zz+(int)Character.MAXVA1.UE);System.out.printin(z,char最小值二,z+(int)Character.MIN_VA1.UE);最大值二最小值二正无限大/程序2-3publicclassTest_Floatpublicstaticvoidmain(StringSystem,out.printin(,fIoatSystem,out.println(,fIoatSystem,out.printin(Afloat+Float.PoSITlVE_INFINITY);System,o
6、ut.printin(,zfIoat“+Float.NEGATIVE_INFINITY);System,out.printin(z,doubleSystem,out.println(z,doubleSystem,out.println(zzdouble+Double.POSITIVEINFINITY);/测试浮点型变量的最大最小值args)最大值=+Float.MAX_VA1.UE);最小值=+Float.MIN_VA1.UE);正无限大=负无限大二“+Double.MAX_VA1.UE);+Double.MIN_VA1.UE);System,out.printin(,double负无限大=+
7、Double.NEGATIVE_INFINITY);/程序2-4classTest/定义一个类intValue;类中的变量未赋值,默认就是0publicclassTestVarpublicstaticvoidmain(Stringargs)intx=100;此处的X必须赋值,否则无法通过编译Testobj=newTest();/为对象赋值,后续章节将讲解该处代码的含义System,out.println(z,obj.Value=+obj.Value+x=+x);)/3ID2-5publicclassTest_Arraypublicstaticvoidmain(Stringargs)inta=1
8、,2,3,b;b=a;for(intfor(inti=0;i3;i+)i=0;i3;i+)bi+;System,out.println(ai);/程序2-6publicclassTest_Array_lenpublicstaticvoidmain(Stringargs)inta=newint6;6个元素的空间SyStem.out.println(数组长度=+a.length);/分配了/数组长度为6for(inti=0;ia.length;i+)System,out.print(ai+zz);/程序2-7publicclassTest_Array2publicstaticvoidmain(St
9、ringargs)inta;a=newint2;a0-newint3;al-newint6;System,out.println(z,aSystem,out.printin(zza0System,out.println(zzal/定义一个引用a/产生a0和al两个引用/给引用a0产生对象/给引用al产生对象的长度=zz+a.length);的长度二+a0.length);的长度二+al.length);/程序2-8classtestintx;publicclassTest_Paras/测试参数传递问题statictestfun(testo,inty)/对象类型按引用传递,原子类型变量按值传递o
10、.x=20;/修改了对象的数据成员y=l;/修改了y的值returno;)publicstaticvoidmain(Stringargs)testobjl,obj2;intVal=3;objl=newtest();/产生一个对象objl.x=100;/将对象x的值设置为100obj2=fun(objl,Val);System.out.println(,objl.x=+Objl.x+“obj2.x=+obj2.x+Val=,+Val);)/程序2-9publicclassTest_Operatorpublicstaticvoidmain(Stringargs)intiOne,iTwo;doubl
11、ed_0ne,d_Two;i_0ne=2;i_Two-i_0ne+;d_0ne=6.3;d_Two二d_0ne%2;/浮点数据取模运算System,out.printin(i-0ne+,z+i_Two+/z+d_Two);/程序2-10classnumberintx;/关系运算符用于原子类型变量和对象类型变量publicclassFelationalOperatorpublicstaticvoidmain(Stringargs)numbernl,n2;nl=newnumber();/生成对象nln2=newnumber();/生成对象n2nl.x=l;n2.x=l;if(nl.x=n2.x)/
12、关系运算符用于原子类型变量System.out.Println(对象的数据成员X相等!);if(nl-n2)/关系运算符也能用于对象System,out.printin(z,nl和n2是一个对象!”);elseSystem,out.printin(z,nl和n2不是一个对象!”);/程序2T1publicclassshortcutstaticbooleantestne(intSystem,out.printin(x+zzreturnx1;/测试逻辑表达式短路问题x)+1+(l);/注意此表达式staticbooleantestTwo(intx)System,out.printin(x+z,+1
13、+(x2);returnx30;c=(char)(chl);/必须执行类型强制转换System,out.println(,a=+b+c=+c);)/程序2-13publicclasstestcommpublicstaticvoidmain(Stringargs)intval=-2;System,out.printin(val0?1:NO);/此行无法通过编译/程序3-1importjava.awt.*;importjava,applet.*;publicclassCompareNumbersextendsApplet1.abellabl,lab2;TextFieldinputl,input2;
14、intnuml,num2;publicvoidinit()labl=new1.abe1(输入第1个整数);/产生第1个标签对inputl=newTextField(IO);/产生第1个文本框对象lab2=new1.abe1(输入第2个整数);input2=newTextField(IO);add(Iabl);/将标签Iabl对象放到网页上add(input1);/将文本框inputl对象放到网页上add(lab2);add(input2);)publicbooleanaction(Evente,Objecto)if(e.target=inputl;e.target=input2)numl=In
15、teger.parselnt(inputl.getText();/获取文本框中的数值num2=Integer.parselnt(input2.getText();if(numlnum2)showStatus(numl+num2)showStatus(numl+z,+num2);elseshowStatus(numl+z,=,+num2);)returntrue;)/程序3-2publicclassjustVoweIs/判断一个字母是否为元音publicstaticvoidmain(Stringargs)charc;for(inti=0;i100;i+)/随机产生100个字母,进行判断c=(ch
16、ar)(Math,random()*26,a,);System,out.print(c);switch(c)casea,:casee,:case,i,:case,o,:case,u,:System,out.PrintIn(是元音);break;casey,:case;break;break;System,out.PrintIn(有时是元音)default:System,out.PrintIn(不是元音);/程序3-3importjava.awt.*;importjava,applet.*;publicclassScoreConvertextendsApplet1.abelprompt;Text
17、Fieldinput;intExcellent,Good,Middle,Pass,Failure;publicvoidinit()prompt=new1.abel(输入成绩”);input=newTextField(2);add(prompt);add(input);)publicvoidpaint(Graphicsg)g.drawString(各等级的人数25,40);,z+Excellent,25,55);“+Good,25,70);+Middle,25,85);+Pass,25,100);,+Failure,25,115);g.ClraWString(优秀g.CIraWString(良好
18、g.drawString(中等g.drawString(及格g.drawString(不通过publicbooleanaction(Evente,Objecto)/从当前引发事件的对象。获取一个整数intScore=Integer.parselnt(o.toString();ShowStatus(z,z);input.setText(,z,z);switch(score/10)case10:case9:Excellent+;break;case8:Good+;break;case7:Middle+;break;case6:Pass+;break;case5:case4:case3:case2:
19、case1:case0:Failure+;break;default:ShOwStatUS(输入有误,请重新输入!);显示错误信息)repaint();/注意:容易忘记的地方returntrue;)/程序3-4publicclassGenerateNumbers/产生10个60100之间的随机整数publicstaticvoidmain(Stringargs)inti=0,Intval=0;while(i10)Int_val=(int)(Math,random()*(100-60)+60);System,out.printin(Int_val);i+;)/程序3-5publicclassGen
20、erateDoub1eNumbers/产生一个大于0.9的随机数为止publicstaticvoidmain(Stringargs)doubled;dod=Math.random();System,out.println(d);while(d=1;row)xpos=25;ypos+=15;for(intcolumn=l;column=row;column+)g.drawString(zz*zz,xpos,ypos);xpos+=7;)/程序3-7publicclassbreakNDcontinue/break语句和COntinUe语句基本功能publicstaticvoidmain(Strin
21、gargs)for(inti=l;i20;i+)if(i%9=0)break;if(i%3=l)continue;System,out.print(i+,tz,);)/程序3-8publicclasshellopublicstaticvoidmain(Stringargs)inti,j=0;outer:for(i=0;i3;i+)for(j=0J=0&h=0&m-0&s60)?s:O);returnthis;Stringtostring()returnhour+”:+min+”:SeC;publicclasstimeToStringextendsApplet/程序的主类privatetimet
22、;publicvoidinit()t-newtime();)publicvoidpaint(Graphicsg)t.setHour(18).setMin(30).setSec(20);/典型的级联调用g.drawString(z,timez+t.tostring(),25,45);)/程序4-8classpointintx,y;point(intx,inty)/POint类构造函数this,x=x;this,y=y;System.out.Println(父类构造函数被调用!);)classcircleextendspointintradius;circle(intr,intx,inty)/子类
23、构造函数super(x,y);SUPer必须写在构造函数的第一行radius=r;System.out.Println(子类构造函数被调用!);)publicclasstestinherencepublicstaticvoidmain(Stringargs)circlecl;cl=newcircled,1,1);/程序4-9classpointintx,y;point()this(0,0);point(intx,inty)this,x=x;this,y=y;doublearea()return0;area)classcircleextendspointintradius;circle(intr
24、,intx,inty)/Point类定义了求面积的方法/定义子类CirCIesuper(x,y);radius=r;/子类中定义的方法area与父类的area特征一样,即覆盖了父类的area()doublearea()returnMath.PI*radius*radius;/Math.PI是的一个double类型的常量)publicclasstestOverWritepublicstaticvoidmain(Stringargs)circlecl;cl=newcircled,1,1);System,out.printin(cl.area();/程序4-10classpointintx,y;po
25、int()this(0,0);point(intx,inty)this,x-x;this,y=y;doublearea()return0;/注意父类中的这个方法classcircleextendspointintradius;circle(intr,intx,inty)super(x,y);radius=r;doublearea(doublepi)/方法特征与父类中的不同returnpi*radius*radius;)publicclasstestOverWritepublicstaticvoidmain(Stringargs)circlecl;cl=newcircled,1,1);Syste
26、m,out.printin(cl.area();/程序4T1classpoint/默认情况下父类是ObjCCt类intx,y;point()this(0,0);point(intx,inty)this,x=x;this,y=y;doublearea()return0;/Point类定义了area方法)classcircleextendspoint/CirCIe类的父类是Point类intradius;circle(intr,intx,inty)super(x,y);radius=r;doublearea()/子类覆盖了父类的area方法returnMath.PI*radius*radius;publicclassdynamicalCallpublicstaticvoidmain(Stringargs)pointp=newpoint(2,2),newcircled,1,1);/注意这一行for(inti=0;i0&m13)?m:1;day=checkday(d);/设置变量day)intcheckday(intd)intdaydisp=0,31,28,31,3