还剩57页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
Java面向对象编程练习题专题1初识Java
一、选择题1.作为Java应用程序入口的main方法,其声明格式是(B)A.publicstaticintmainStringargs[]B.publicstaticvoidmainStringargs[]C.publicvoidmainStringargs[]D.publicintmainStringargs[]2.下面命令正确的是(B)A.javaAppFirst.javaB.javaAppFirstC.javaappfirst.classD.javacAppFirst3.设有一个Java小程序,源程序名为FirstApplet.java,其HTML文件为FirstApplet.html,则运行该小程序的命令为(D)A.javaFirstAppletB.javacFirstApplet.javaC.appletviewerFirstApplet.javaD.appletviewerFirstApplet.html4.JDK安装完成后,主要的命令如javac、java等,都存放在根目录的(A)文件夹下A.binB.jreC.includeD.doc5.Java语言是一种D语言A.机器B.汇编C.面向过程的D.面向对象的
6、Java程序的最基本组成单位是DA.函数B.过程C.变量D.类
二、简答题1.Java语言有哪些特点?答Java是一种具有“简单、面向对象、分布式、解释型、健壮、安全、与体系结构无关、可移植、高性能、多线程和动态执行”等特点的语言P22.JDK安装完成后,如何设置环境变量?答在桌面上右键单击【我的电脑】,选择【属性】【高级】【环境变量】【系统变量】,选择path,单击【编辑】,在【变量值】栏目的最前面输入“d:\jdk
1.5\bin;”3.简述Java应用程序和小应用程序的区别答Java应用程序是由用户系统就地装入的可独立运行的Java程序,可以是基于窗口或控制台的而Java小应用程序需要嵌入到网页在浏览器中运行java是在控制台上执行,applet是需要网页中执行4.简述Java应用程序的开发过程答
(1)建立源程序
(2)编译源程序
(3)解释运行程序专题2标识符、表达式、数据类型
一、填空题1.Java逻辑常量有两个(ture)和(flase)2.写出下列表达式的运算结果,设a=2b=-4c=true
(1)-a%b++-2
(2)a=1a=10a:b2
(3)c^abfalse
(4)-aa-8
(5)doublea+b/5+a/b-
0.
43、比较两个数相等的运算符是==
4、Java中的八种基本数据类型分别是char、int、long、shoreflaot、double、byte和boolean
二、选择题1.下面这些标识符哪个是错误的(C)A.JavaworldB._sumC.2JavaProgramD.$abc2.下列哪一组运算符的优先级顺序是从高到低排列的(B)A.|、、!B.、^、||C.!、%、++D.、、++
3、下面哪个赋值语句不会产生编译错误(D)A.chara=’abc’;B.byteb=152;C.floatc=
2.0;D.doubled=
2.0;4.下面哪个单词是Java语言的关键字(D)A.FalseB.FORC.ForD.for5.执行下面程序后,哪个结论是正确的(D)intabc;a=1;b=3;c=a+b3++a:b++;A.a的值为2,b的值为3,c的值为1B.a的值为2,b的值为4,c的值为2C.a的值为2,b的值为4,c的值为1D.a的值为2,b的值为3,c的值为26.设各个变量的定义如下,哪些选项的值为trueCinta=3b=3;booleanflag=true;A.++a==bB.++a==b++C.++a==b||flagD.++a==bflag7.表达式int
6.5/
7.5*3的值的类型为(C)A.shortB.intC.doubleD.float8.设abxyz均为int型变量,并已赋值,下列表达式的结果属于非逻辑值的是(D )A.xybaB.-zx-yC.y==++xD.y+x*x++9.下面语句输出的结果为(B)Syste.out.println5^2;A.6B.7C.10D.2510.对下面的语句执行完后正确的说法是(D)intc=’c’/3;System.out.printlnc;A.输出结果为21B.输出结果为22C.输出结果为32D.输出结果为3311.以下选项中变量a已定义类型,合法的赋值语句为(D)A.a=inty;B.a==1;C.a=a+1=3;D.++a;12.执行下列程序段后,ch,x,y的值正确的是(A)intx=3y=4;booleanch;ch=xy||++x==--y;A.true,3,4B.true,4,3C.false,3,4D.false,4,313.下列标识符中,正确的是BA、1_BackB、$_MoneyC、$-moneyD、2-Forward14.现有一个int类型的整数和一个double类型的浮点数,当它们之间做了加法运算之后,得到的结果类型应该是BA、int类型B、double类型C、float类型D、long类型
15、以下程序的运行结果为ApublicclassA{publicstaticvoidmainStringa[]{intx=2y=5;Stringz=5;System.out.printlnx+y;System.out.printlnx+z+x+z;System.out.printlnx+y=+x+y;System.out.printlnx+z=+x+z;}}A.7B.7C.25D.725x+z7x+z25x+z25x+zx+y=25x+y=25x+y=7x+y=25x+z=25x+z=7x+z=25x+z=
716、设有定义inta=12;则执行a*=12;语句后,a的值为AA.144B.12C.24D.
017、下列标识符中,合法的一个是CA.$#@!$B.$我们$C.$22$D.2$$
218、执行下列程序段后,bxy的值分别是Bintx=6y=8;booleanb;b=xy++x==--y;A.true68B.false68C.e77D.false
7719、下列程序运行的结果是DpublicclassA{publicstaticvoidmainStringargs[]{intx=7%3;whilex{x--;}System.out.printlnx;}}A.0B.1C.trueD.编译错误
三、编程题1.使用Math.pow方法,求出2的32次方的值Packagepr1:Publicclasslxl_2_4{PublicstaticvoidmainString[]args{doublevalue;value=Math.pow232;System.out.println“2的32次方是”+value;}}专题3流程控制语句
一、填空题1.在switch语句中的表达式的类型必须是(int型)或者(与int相容的类型【bytechar,longshort】)2.break在循环语句中的作用是(跳出整个循环)3.分支语句包括(if)和(switch)4.while循环语句的循环次数(0或者不限),do-while语句的循环次数(至少一次),for语句的循环次数(0或者不限)
二、选择题1.下面程序片段输出的是什么(C)inta=3b=1;ifa=bSyste.out.println“a=”+a; A.a=1B.a=3C.编译错误,没有输出D.正常运行,但没有输出2.下面语句执行后,x的值为(C)inta=4b=5x=3;if++a==bx=x*a; A.3B.12C.15D.20★3.请看下面的程序代码(B)ifx0{Syste.out.println“first”;}elseifx20{Syste.out.println“second”;}else{Syste.out.println“third”;} 当程序输出“second”时,x的范围是 A.x=0B.x20x=0C.x0D.x=204.请看下面的程序代码switchn{case0:Syste.out.println“first”;case1:case2:Syste.out.println“second”;break;default:Syste.out.println“end”;} 当n为何值时,程序段将输出字符串”second”(D) A.0B.1C.2D.以上都可以★5.下列语句执行后,j的值是(D)intj=3i=3;while--i!=i/jj=j+2; A.4B.5C.6D.76.下列语句执行后,x的值是(C)intx=2;do{x+=x;}whilex17; A.4B.16C.32D.256★7.执行下列语句后,i、j的值是(B)inti=1j=8;do{ifi++--jcontinue;}whilei4; A.i=4j=5B.i=5j=4C.i=5j=5D.i=5j=68.下列语句执行后,k的值是(B)intj=4ik=10;fori=2;i!=j;i++k=k-i; A.4B.5C.6D.79.下列语句执行后,c的值是(C)charc=’\0’;forc=’a’;c’z’;c+=3{ifc=’e’break;} A.‘e’B.’f’C.’g’D.’h’10.若变量都已经正确说明,则以下程序段输出为(B)a=10;b=50;c=30;ifaba=b;b=c;c=a;System.out.println“a=”+a+”b=”+b+”c=”+c; A.a=10b=50c=10B.a=10b=30c=10 C.a=50b=30c=10D.a=50b=30c=30★11.以下程序段输出是(D)intx=1y=0a=0b=0;i=--a==b++--a:++b;j=a++;k=b;System.out.println“i=”+i+”j=”+j+”k=”+k;2-12 A.i=2j=1k=3B.i=1j=1k=2C.i=4j=2k=4D.i=2j=-1k=2★12.以下程序的输出是(B)intx=1y=0a=0b=0;switchx{case1:switchy{case0:a++;break;case1:b++;break;}case2:a++;break;case3:a++;b++;}System.out.println“a=”+a+”b=”+b;20 A.a=1b=0B.a=2b=0C.a=1b=1D.a=2b=213.以下程序段输出是(C)inti=0j=0a=6;if++i0||++j0a++:System.out.println“i=”+i+”j=”+j+”a=”+a; A.i=0j=0a=6B.i=1j=1a=7C.i=1j=0a=7D.i=0j=1a=
714、下列程序运行的结果是DpublicclassA{publicstaticvoidmainStringargs[]{charc=d;forinti=1;i=4;i++{switchi{case1:c=a;System.out.printc;break;case2:c=b;System.out.printc;break;case3:c=c;System.out.printc;default:System.out.print!;}}}}A.!B.dbc!C.abc!D.abc!!专题4数组
一、填空题1.定义一个整型数组y,它有5个元素分别是1,2,3,4,5.用一个语句实现对数组y的声明、创建和赋值(inty[]={12345})2.设有整型数组的定义“intx[][]={{1234}{-5}{326}};”则x.length的值为
(3)3.求取二维数组a[][]的第i行元素个数的表达式是(a[i-1].length)
4、一个一维数组有10个元素,则该数组可用的下标范围是0-
95、StringS[]={“安徽”“江苏”“山东”};则S
[1]的值是江苏
6、当声明一个数据组intarr[]=newint
[5];时,这代表这个数组所保存的变量类型是整形,数组元素下标的使用范围是0-4二.选择题1.设有定义语句“inta[]={668899};”,则以下对此语句的叙述错误的是(C) A.定义了一个名为a的一维数组B.a数组有3个元素 C.a数组的元素的下标为1~3 D.数组中的每个元素是整数2.设有定义“int[]a=newint
[4];”则数组a的所有元素是(B)A.a
0、a
1、a
2、a3B.a
[0]、a
[1]、a
[2]、a
[3]C.a
[1]、a
[2]、a
[3]、a
[4]D.a
[0]、a
[1]、a
[2]、a
[3]、a
[4]3.下面哪个选项正确地声明了一个字符串数组(C)A.char[]strB.char[][]strC.String[]strD.String
[10]str
4、假设有这样的数组创建inta[]={1234567};则该数组长度为DA.4B.5C.6D.
75、下列二维数组的创建中错误的是DA.inta[][]=newint
[3][];B.int[][]a=newint
[3]
[4];C.inta[][]={{12}{34}};D.int[][]a=newint[][];
三、编程题1.编写一个程序,计算一维数组中的最大值、最小值及其差值Packageprl;Publicclasslxl_4_1{PublicstaticvoidmainString[]args{inta[]={3465795030406523810};//数组名.lengtha.lengthintImaxmin;intn=a.length;//a
[0]a
[1]a[n-1]max=a
[0];min=a
[0];fori=1;in;i++{ifmaxa[i]{max=a[i]}elseifmina[i]{min=a[i];}}System.out.println最大数+max+最小数+min+差值+(max-min);}}2.将一个数组中的数逆序重新存放Packageprl;Publicclasslxl_4_2{PublicstaticvoidmainString[]args{inta[]={3152813478952718};intilengthtemp;length=a.length;fori=0;ilength/2;i++{//以下将数组元素a[i]和a[length-1-i]的值互换temp=a[i];a[i]=a[length-1-i];a[length-1-i]=temp;}fori=0;ilength;i++{System.out.printa[i]+:}}}3.已知数组(12,23,26,45,58,60)是有序的,输入一个数x,将它插入到数组中,保证数组仍然是有序的Packageprl;importjava.utilScanner;Publicclasslxl_4_3{PublicstaticvoidmainString[]args{inta[]={1223264558600};intxijn;Scannerscanner=newScannerSystem.in;System.out.println请输入要插入的数x:;x=scanner.nextInt;n=6;fori=0;in;i++{ifxa[i]break;}forj=n;ji;j--{a[j]=a[j-1];}a[i]=x;n++;fori=0;in;i++{System.out.printa[i]+;}}}4.输出杨辉三角形如11112113311464115101051……Packageprl;Publicclasslxl_4_4{PublicstaticvoidmainStringargs[]{inta[][]=newint
[10]
[10];forinti=0;ia.length;i++{a[i]
[0]=a[i][i]=1;forintj=i;ji;j++{a[i][j]=a[i-1][j-1]+a[i-1][j];}}}forinti=0;ia.length;i++{forintj=0;j=i;j++{System.out.printa[i][j]+;}System.out.println;}}}5.求一个二维数组的每行最大数Packageprl;Publicclasslxl_4_5{PublicstaticvoidmainStringargs[]{inta[][]={{34234578}{2241620}{43562212}};intmax;forinti=0;ilength;i++{max=a[i]
[0];forintj=0;ja[i].length;j++{ifmaxa[i][j]max=a[i][j];}System.out.println第+i+行上的最大数为+max;}}}(特别提醒考试内容主要集中在后续章节)**专题5面向对象
一、填空题1.如果一个方法不返回任何值,则该方法的返回值类型为void2.如果子类中的某个方法名、返回值类型和_传递参数__与父类中的某个方法完全一致,则称子类中的这个方法覆盖了父类的同名方法3.接口中所有的属性均为_公有__、__静态_____和_常量__的4.抽象方法是一种仅有方法声明,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义5.在Java程序中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多重继承关系6.一般Java程序的类主体由两部分组成一部分是成员变量(属性),另一部分是成员方法方法7.分别用class关键字来定义类,用new关键字来分配实例存储空间8.当一个类的修饰符为private时,说明该类不能被继承,即不能有子类9.在Java中,能实现多重继承效果的方式是implements
二、选择题1.方法内定义的变量(B)A.一定在方法内所有位置可见B.可能在方法的局部位置可见C.在方法外可以使用D.在方法外可见2.方法的形参(A)A.可以没有B.至少有一个C.必须定义多个形参D.只能是简单变量3.return语句(D)A.不能用来返回对象B.只可以返回数值C.方法都必须含有D.一个方法中可以有多个4.main方法的返回值类型是(C)A.booleanB.intC.voidD.static5.编译并运行下面的程序,运行结果是(A)publicclassA{publicstaticvoidmainStringargs[]{Aa=newA;a.method8;}voidmethodinti{System.out.println“int:”+i;}voidmethodlongi{System.out.println“long:”+i;}A.程序可以编译运行,输出结果为“int:8”B.程序可以编译运行,输出结果为“long:8”C.程序有编译错误,因为两个method方法必须定义为静态(static)的D.程序可以编译运行,但是没有输出6.能作为类及其成员的修饰符是(D)A.interfaceB.classC.protectedD.public7.下列方法定义中,方法头不正确的是(A)A.publicstaticxdoublea{…}B.publicstaticintxdoubley{…}C.voidxdoubled{…}D.publicintx{…}8.构造方法在(D)时被调用A.类定义时B.使用对象的变量时C.调用对象方法时D.创建对象时9.下列哪个类声明是正确的(A)A.publicabstractclassCar{…}B.abstractprivatemove{…}C.protectedprivatenumber;D.abstractfinalclassH1{…}10.下列不属于面向对象程序设计的基本特征的是(D)A.抽象B.封装C.继承D.静态11.请看下面的程序段classPerson{Stringnamedepartment;intage;publicPersonStringn{name=n;}publicPersonStringninta{name=n;age=a;}publicPersonStringnStringdinta{//doingthesameastwoargumentsversionifconstructer}下面那个选项可以添加到//doingthesame……处(C)A.PersonnaB.thisPersonnaC.thisnaD.thisname.age12.请看下面的程序段classTest{privateintm;publicstaticvoidfun{//somecode}}方法fun如何来访问变量m(C)A.将privateintm改成protectedintmB.将privateintm改成publicintmC.将privateintm改成staticintmD.将privateintm改成intm13.有一个类A,对于其构造函数的声明正确的是(B)A.voidAintx{…}B.publicAintx{…}C.AAintx{…}D.intAintx{…}14.请看下面的程序段publicclassTest{longa[]=newlong
[10];pubicstaticvoidmainStringargs[]{System.out.printlna
[6];}}哪一个选项是正确的(B)A.不输出任何内容B.输出0C.当编译时有错误出现D.当运行时有错误出现15.关键字(B)表明一个对象或变量在初始化后不能修改A.extendsB.finalC.thisD.finalize16.声明为static的方法不能访问(C)类成员A.超类B.子类C.非staticD.用户自定义类17.定义类A如下(重要)classA{intabc;publicvoidBintxintyintz{a=x;b=y;c=z;}}下面对方法B的重载哪些是正确的(C)SA.publicvoidAintx1inty1intz1{a=x1;b=y1;c=z1;}B.publicvoidBintx1inty1intz1{a=x1;b=y1;c=z1;}C.publicvoidBintxinty{a=x;b=y;c=0;}D.publicBintxintyintz{a=x;b=y;c=z;}18.编译运行下面的程序,结果是(B)(重要)publicclassA{publicstaticvoidmainStringargs[]{Bb=newB;b.test;}voidtest{System.out.print“A”;}}classBextendsA{voidtest{super.test;System.out.print“B”;}}A.产生编译错误B.代码可以编译运行,并输出结果ABC.代码可以编译运行,但没有输出D.编译没有错误,但会产生运行时异常19.已知类关系如下ClassEmployee{}ClassManagerextendsEmployee{}ClassDirectorextendsEmployee{}则下列语句正确的是(A)A.Employeee=newManager;B.Directord=newManager;C.Directord=newEmployee;D.Managerm=newDirector;20.接口是Java面向对象的实现机制之一,以下说法正确的是(A)A.Java支持多重继承,一个类可以实现多个接口B.Java只支持单重继承,一个类可以实现多个接口C.Java只支持单重继承,一个类可以实现一个接口D.Java支持多重继承,但一个类只可以实现一个接口21.下列方法的声明中不合法的是CA.floatarea{…}B.voidarea{…}C.area{…}D.intareaintr{…}
22、下面哪个包是编程时不需要导入就可以直接使用的BA.java.netB.java.langC.java.sqlD.java.util
23、调用构造方法是在BA.类定义时 B.创建对象时C.调用对象的方法时 D.使用对象的变量时
24、在子类构造方法的哪个地方可以调用其父类的构造方法BA.任何地方B.构造方法的第一条语句C.构造方法的最后一条语句D.无法在子类构造方法中调用父类的构造方法
25、关于Java中的继承,下列说法错误的是DA.继承是面向对象编程的核心特征,通过继承可以更有效地组织程序结构B.继承使得程序员可以在原有类的基础上很快设计出一个功能更强的新类,而不必从头开始,避免了工作上的重复C.每一次继承时,子类都会自动拥有父类的属性和方法,同时也可以加入自己的一些特性,使得它更具体、功能更强大D.继承一般有多重继承和单一继承两种方式,在单一继承中每一个类最多只有一个父类,而多重继承则可以有多个父类Java中的类都采用多重继承
26、当方法中的局部变量与成员变量同名时,必须使用下列哪一个关键字指出成员变量CA.staticB.superC.thisD.new
27、什么样的方法不能被重写BA.私有(private)方法B.最终(final)方法C.受保护(protected)的方法D.以上都不对
28、下列有关抽象类与接口的叙述中正确的是哪一个AA.抽象类中必须有抽象方法,接口中也必须有抽象方法B.抽象类中可以有非抽象方法,接口中也可以有非抽象方法C.含有抽象方法的类必须是抽象类,接口中的方法必须是抽象方法D.抽象类中的变量定义时必须初始化,而接口中不是
29、从下列程序中你发现了几处错误BabstractclassA{abstractvoidf{};publicabstractvoidk;}classBextendsA{protectedvoidf{}voidk{System.out.printIamsubclass;}publicstaticvoidmainString[]args{Aa=newA;a.f;a.k;}}A.1B.2C.3D.
430、下列程序运行的结果是AinterfaceInterfaceA{Strings=good;voidf;}classClassAimplementsInterfaceA{publicvoidf{System.out.prints;}}classClassB{voidgInterfaceAa{a.f;}}publicclassE{publicstaticvoidmainString[]args{ClassBb=newClassB;b.gnewClassA;}}A.goodB.编译正确,但无运行结果C.编译错误b.gnewClassAD.以上都不对
31、下列类的声明中不合法的是AA.classPeople(){…}B.class植物{…}C.classA{…}D.publicclass共有类{…}
32、能作为类的修饰符也能作为类成员的修饰符的是AA.publicB.extendsC.FloatD.static
33、试完成下述程序片段BpublicclassPoint{intxy;publicPointintxinty{=x;=y;}......}A.Point.xPoint.yB.this.xthis.yC.super.xsuper.yD.无解
34、在JAVA中,下列说法正确的是CA.一个子类可以有多个父类,一个父类也可以有多个子类B.一个子类可以有多个父类,但一个父类只可以有一个子类C.一个子类只可以有一个父类,但一个父类可以有多个子类D.上述说法都不对
35、Father和Son是两个java类,下列哪一选项正确的标识出Father是Son的父类?DA.classSonimplementsFatherB.classFatherimplementsSonC.classFatherextendsSonD.classSonextendsFather
36、重载指的是方法具有相同的名字,但这些方法的参数必须不同下列哪种说法不属于方法参数的不同CA.形式参数的个数不同B.形式参数的类型不同C.形式参数的名字不同D.形式参数类型的排列顺序不同
37、下列有关抽象类与接口的叙述中正确的是哪一个A.抽象类中必须有抽象方法,接口中也必须有抽象方法B.抽象类中可以有非抽象方法,接口中也可以有非抽象方法C.含有抽象方法的类必须是抽象类,接口中的方法必须是抽象方法D.抽象类中的变量定义时必须初始化,而接口中不是
38、从下列程序中你发现了几处错误abstractclassA{abstractvoidf{};publicabstractvoidk;}classBextendsA{protectedvoidf{}voidk{System.out.printIamsubclass;}publicstaticvoidmainString[]args{Aa=newA;a.f;a.k;}}A.1B.2C.3D.
439、关于接口的定义和实现,以下描述正确的是AA.接口定义的方法只有定义没有实现B.接口定义中的变量都必须写明final和staticC.如果一个接口由多个类来实现,则这些类在实现该接口中的方法时采用统一的代码D.如果一个类实现接口,则必须实现该接口中的所有方法,但方法未必申明为public
三、阅读程序题
1、写出运行结果Mainbord:华硕,cpu:IntelpublicclassComputer{Stringmainbordcpu;publicComputerStrings1Strings2{mainbord=s1;cpu=s2;}publicstaticvoidmainString[]args{Computerc=newComputer华硕Intel;System.out.printlnmainbord:+c.mainbord+cpu:+c.cpu;}}
2、写出运行结果publicclassExamA{privatestaticintarr[]=newint
[5];publicstaticvoidmainStringargs[]{forinti=arr.length-1;i=0;i--arr[i]=2*i+1;Stringoutput=0;intsum=0;forinti=0;iarr.length;i++{sum+=arr[i];output+=++arr[i];}output+==+sum;System.out.printlnoutput;System.exit0;}}
3、写出运行结果Perteris17yearsold!publicclassPerson{Stringname;intage;publicPersonStringnameintage{this.name=name;this.age=age;}publicstaticvoidmainString[]args{Personc=newPersonPeter17;System.out.printlnc.name+is+c.age+yearsold!;}}
4、写出运行结果a=60b=20c=30publicclassabc{publicstaticvoidmainStringargs[]{SubSubClassx=newSubSubClass102030;x.show;}}ClassSuperClass{intab;SuperClassintaaintbb{a=aa;b=bb;}voidshow{System.out.printlna=+a+b=+b;}}classSubClassextendsSuperClass{intc;SubClassintaaintbbintcc{superaabb;c=cc;}}classSubSubClassextendsSubClass{inta;SubSubClassintaaintbbintcc{superaabbcc;a=aa+bb+cc;}voidshow{System.out.printlna=+a+b=+b+c=+c;}}5.下面是一个类的定义,请将其补充完整class_Student_{Stringname;intage;Student__String____nameinta{_this____.name=name;age=a;}}6.下面是一个类的定义,请将其补充完整class__A___{Strings;__static__inta=3;AStrings{this.s=s;}staticintgetA{returna;}}
四、编程题1.按要求编写一个Java应用程序1定义一个接口CanCry,描述会吼叫的方法publicvoidcry2分别定义狗类(Dog)和猫类(Cat),实现CanCry接口实现方法的功能分别为打印输出“我是狗,我的叫声是汪汪汪”、“我是猫,我的叫声是喵喵喵”3定义一个主类G,
①定义一个voidmakeCryCanCryc方法,其中让会吼叫的事物吼叫
②在main方法中创建狗类对象(dog)、猫类对象(cat)、G类对象(g),用g调用makecry方法,让狗和猫吼叫
2、编写一个Java程序,并满足如下要求1)编写一个Car类,具有属性品牌mark——String类型功能驾驶(voiddrive)2)定义Car类的子类SubCar,具有属性价格(price)、速度(speed)——int型功能变速(voidspeedChangeintnewSpeed),把新速度赋给speed3)定义主类E,在其main方法中创建SubCar类的两个对象aodi和benchi的对象并测试其对象的特性4)输出效果如下3.某公司正进行招聘工作,被招聘人员需要填写个人信息,编写“个人简历”的封装类包括如下属性和对属性进行操作的方法Stringxm;//姓名Stringxb;//性别intnl;//年龄Stringjtzz;//家庭住址Stringxl;//学历4.编写程序,提供实现各种数学计算的方法包括如下几项
(1)两个数的加、减、乘、除
(2)求某数的相反数、倒数、绝对值
(3)取两数中较大的和较小的
(4)对浮点数(double型)的计算功能如给定浮点数d,取大于或等于d的最小整数,取小于或等于d的最大整数,计算最接近d的整数值,计算d的平方根、自然对数logd等
(5)计算以double型数a为底数,b为指数的幂5.编写一个抽象类Shape,声明计算图形面积的抽象方法再分别定义Shape的子类Circle(圆)和Rectangle(矩形),在两个子类中按照不同图形的面积计算公式,实现Shape类中计算面积的方法6.定义一个接口,接口中有3个抽象方法如下
(1)“longfactintm;”方法的功能为求参数的阶乘
(2)“longintPowerintmintn;”方法的功能为求参数m的n次方
(3)“booleanfindFactorintmintn;”方法的功能为判断参数m加上参数n的和是否大于100定义类实现该接口,编写应用程序,调用接口中的3个方法,并将调用方法所得的结果输出7.创建一个接口IShape,接口中有一个求取面积的抽象方法“publicdoublearea”定义一个正方形类Square,该类实现了IShape接口Square类中有一个属性a表示正方形的边长,在构造方法中初始化该边长定义一个主类,在主类中,创建Square类的实例对象,求该正方形对象的面积8.定义一个人类,包括属性姓名、性别、年龄、国籍;包括方法吃饭、睡觉,工作
(1)根据人类,派生一个学生类,增加属性学校、学号;重写工作方法(学生的工作是学习)
(2)根据人类,派生一个工人类,增加属性单位、工龄;重写工作方法(工人的工作是……自己想吧)
(3)根据学生类,派生一个学生干部类,增加属性职务;增加方法开会
(4)编写主函数分别对上述3类具体人物进行测试专题6字符串、日期时间类
一、填空题1.已知String对象s=”hello”,运行语句“System.out.printlns.concat“World!”;”后,s的值为(helloWorld!)2.使用+=将字符串s2添加到字符串s1后的语句是(S1+=S2)3.比较s1种的字符串和s2种的字符串的内容是否相等的表达式是(s
1.equalss2)4.已知sb为StringBuffer的一个实例,且sb=”abcde”,则sb.reverse后sb的值为(edcba)5.获取当前系统时间(DataFormat.getDataInstance.formatdata.getTime)6.已知StringBuffersb=newStringBufferabc,则sb.reverse后,sb的值为cha
7、Strings1=“China”;intn=s
1.length;n的值为5二.选择题1.已知String对象s=”abcdefg”,则s.substring25的返回值为(C)A.”bcde”B.”cde”C.”cdef”D.”def”2.若有下面的代码Strings=”people”;Stringt=”people”;Charc[]={‘p’‘e’‘o’‘p’‘l’‘e’};下面哪一选项的语句返回值为假(B)?A.s.equalstB.t.equalscC.s==tD.t.equalsnewString“people”3.已知s为一个String对象,s=”abcdefg”,则s.charAt1的返回值为(B)A.aB.bC.fD.g4.若有下面的代码Strings=”good”;下面选项语句书写不正确的是(B)A.s+=”student”;B.charc=s
[1];C.intlen=s.lengthD.Stringt=s.toLowerCase;
5、假设Strings=Nicetomeetyou,则下面返回to的语句为CA.s.substring68;B.s.substring59;C.s.substring57;D.s.substring67;
6、调用下面哪个方法时会改变原有对象A.String的trimB.String的lengthC.StringBuffer的reverseD.StringBuffer的length
7、已知inti=123,通过以下哪种方式可以得到字符串123BA.Integer.parseInti;B.String.valueOfi;C.Long.parseLongi;D.Float.parseFloati;
8、由a.compareTob得到的数值CA.0B.=0C.0D.不确定
9、已知Strings=Thisisastring,则s.indexOfis的值为BA.1B.2C.3D.
410、已知inti=123,通过以下哪种方式可以得到字符串123BA.Integer.parseInti;B.String.valueOfi;C.Long.parseLongi;D.Float.parseFloati;
11、以下程序段执行的结果为BStringstr1str2;str1=Byebye;str2=Byebye;System.out.printstr
1.equalsstr2;System.out.printlnstr1==str2;A.truefalseB.truetrueC.falsetrueD.falsefalse
12、已知StringBuffersb=newStringBufferabcde,则sb.delete12后sb的值为CA.abcB.abdeC.acdeD.ade
三、编程题1.实现把“ILoveJava!”的字符全部转换为小写并输出到控制台2.使用String类中的split函数,统计出“thisismyhomework!Imustfinishit!”中单词的个数(注意单词之间用一个空格来分隔)3.给出两个日期,计算它们之间相隔的天数4.实现将当前日期信息以4位年份、月份全称、两位日期形式输出专题7异常处理1.填空题1.一个try语句块后必须跟(catch)语句块,(finally)语句块可以没有2.自定义异常类必须继承(Exception)类及其子类3.异常处理机制允许根据具体的情况选择在何处处理异常,可以在(try)捕获并处理,也可以用throws子句把他交给(上层)处理二.选择题
1.finally语句块中的代码(A)A.总是被执行B.当try语句块后面没有catch时,finally中的代码才会执行C.异常发生时才执行D.异常没有发生时才被执行
2.抛出异常应该使用的关键字是(A)A.throwB.catchC.finallyD.throws
3.自定义异常类时,可以继承的类是(C)A.ErrorB.AppletC.Exception及其子类D.AssertionError
4.在异常处理中,将可能抛出异常的方法放在(B)语句块中A.throwsB.catchC.tryD.finally
5.对于try{……}catch子句的排列方式,下列正确的一项是(A)A.子类异常在前,父类异常在后B.父类异常在前,子类异常在后C.只能有子类异常D.父类异常与子类异常不能同时出现
6.使用catchExceptione的好处是(D)A.只会捕获个别类型的异常B.捕获try语句块中产生的所有类型的异常C.忽略一些异常D.执行一些程序三.简答题1.try/catch/finally如何使用?Try:将可能出现异常的语句放在此处Catch:当出现异常时在此处捕获异常Finally:无论是否出现异常都要执行2.Throw/throws有什么联系和区别?Throw在语句中抛出异常Throws在方法中出现异常之后抛到调用方法中处理联系都是对于异常的处理3.如何自定义异常类?4.谈谈final、finally的区别和作用Final修饰变量是定义常量,修饰类是不允许继承,修饰方法是不允许复写Finally使用在异常处理中,无论是否出现异常都要执行5.如果try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行?会运行6.Error和Exception有什么区别?(重要)当程序出现错误的时候就会抛出异常,异常需要被用户所捕获Error一般是出现的编译器的异常,不可以恢复Exception一般是出现的代码异常,是可以被处理的,可以被恢复的7.什么是RuntimeException?列举至少4个RuntimeException的子类ArithmeticExceptionArrayStoreExceptionArrayIndexOUtOfBoundsExceptionClassCastException四.编程题1.编写程序,要求输入若干整数,输入的同时计算前面输入各数的乘积,若乘积超过100000,则认为是异常,捕获并处理这个异常,输出信息2.编写一个登录界面,要求帐户名只能由1至10位数字组成,密码只能有6位,任何不符合帐户名和密码要求的情况都视为异常,必须捕获并处理异常3.设计自己的异常类表示对负数求平方根的错误;在类Test的主方法中,从键盘输入一个数,若输入的数不小于0,则输出它的平方根;若小于0,则抛出自定义异常;在程序中处理异常并输出提示信息“输入错误,不能对负数求平方根”专题8多线程
一、填空题1.Java语言实现多线程的方法有两种,它们是(自己创建的线程子类)和(实现一个接口Runnable)2.线程有5种状态,它们是(新建)、(就绪)、(运行)、(阻塞)和(死亡)3.在java中,线程同步是通过(Thread)5.当一个线程睡眠时,sleep方法不消耗()时间二.选择题
1.一个Java程序运行后,在系统中这个程序便可以作为一个(A)A.线程B.进程C.进程或线程D.不可预知
2.设已经编好了一个线程类MyThread,要在main中启动该线程,需使用以下哪个方法(BD)A.newMyThreadB.MyThreadmyThread=newMyThread;myThread.start;C.MyThreadmyThread=newMyThread;myThread.run;D.newMyThread.start;
3.以下哪个方法不能使线程进入阻塞状态(D)A.sleepB.waitC.suspendD.stop
4.可以使用(B)方法设置线程的优先级A.getPriorityB.setPriorityC.yieldD.wait
5.线程是Java的(D)机制A.检查B.解释执行C.并行D.并发
6.以下方法用于定义线程执行体的是(C)A.startB.initC.runD.main
7.一个线程如果调用了sleep方法,能唤醒它的方法是(D)A.notifyB.resumeC.runD.以上都不是
三、编程题1.设计四个线程对象对同一个数据进行操作,两个线程执行减操作,两个线程执行加操作2.制作两个线程对象,要求用同步块的方式使第一个线程运行2次,然后将自己阻塞起来,唤醒第二个线程,第二个线程再运行2次,然后将自己阻塞起来,唤醒第一个线程……两个线程交替执行专题9图形用户界面编程一.填空题1.AWT的组件库被更稳定、通用、灵活的库取代,该库称为(SWING)2.(布局管理器)用于安排容器上的GUI组件3.设置容器的布局管理器的方法是(setLayout)4.当释放鼠标按键时,将产生(MouseEvent)事件5.Java为那些声明了多个方法的Listener接口提供了一个对应的(抽象类),在该类中实现了对应接口的所有方法6.ActionEvent事件的监听器接口是(ActionListener),注册该时间监听器的方法名是(addActionListener),事件处理方法名是(actionPerformed)7.图形用户界面通过(时间机制)相应用户和程序的交互,产生事件的组件称为(事件源)8.Java的Swing包中定义菜单的类是(JMenuBar)9.向容器内添加组件使用(add)方法10.对话框有两种类型,分别是(模式对话框)和(非模式对话框)11.工具栏一般放在窗口的(顶层)位置12.若要使表格具有滚动条,需要将表格添加到(JScrollBar)组件中13.paint方法的参数是(Graphics)类的实例14.drawRectintx1inty1intx2inty2中,x2和y2分别代表矩形的(高)和(宽)二.选择题1.窗口JFrame使用(C)方法可以将jMenuBar对象设置为主菜单A.setHelpMenujMenuBarB.addjMenuBarC.setJMenuBarjMenuBarD.setMenujMenuBar2.下面属于容器类的是(C)A.Color类B.JMenu类C.JFrame类D.JTextField类3.使用(B)类创建菜单对象A.DimensionB.JMemuC.JMenuItemD.JTextArea4.使用(D)方法创建菜单中的分隔条A.setEditableB.ChangeListenerC.addD.addSeparator5.JPanel和JApplet的默认布局管理器是(B)A.CardLayoutB.FlowLayoutC.BorderLayoutD.GridLayout6.JFrame的默认布局管理器是(C)A.CardLayoutB.FlowLayoutC.BorderLayoutD.GridLayout7.按钮可以产生ActionEvent事件,实现哪个接口可以处理此事件(C)A.FocusListenerB.ComponentListenerC.ActionListenerD.WindowListener8.容器使用(B)方法将组件添加到容器A.addComponentB.addC.setComponentD.Add9.向JTextArea的(A)方法传递false参数可以防止用户修改文本A.setEditableB.changeListenerC.addD.addSeparator
10.为了能够通过选择输入学生性别,使用组件的最佳选择是(B)A.JCheckBoxB.JRadioButtonC.JComboBoxD.JList10.当选中一个复选框,即在前面的方框上打上对勾,引发的事件是(C)A.ActionEventB.ItemEventC.SelectEventD.ChangeEvent11.窗口关闭时会触发的事件是(C)A.ContainerEventB.ItemEventC.WindowEventD.MouseEvent
12.下面哪种对话框可以接受用户输入(B)A.showConfirmDialogB.showInputDialogC.showMessageDialogD.showOptionDialog12.addActionListenerthis方法中的this参数表示的意思是(B)A.当有事件发生时,应该使用this监听器B.this对象类会处理此事件C.this事件优先于其他事件D.只是一种形式
13.以下类中,具有绘图能力的类是(B)A.ImageB.GraphicsC.FontD.Color
14.Graphics类中提供的绘图方法分为两类一类是绘制图形,另一类是绘制(B)A.屏幕B.文本C.颜色D.图像
三、编程题1.设计一个图形界面的猜数字游戏程序2.设计一个将华氏温度转换为摄氏温度的程序,按钮完成温度的转换公式摄氏温度=华氏温度-32*5/93.设计一个C/S考试系统的界面(如下图),单击“确认”按钮后,使“开始考试”按钮可用,并使“学号”、“姓名”后的文本框及“确认”按钮不可用;单击“开始考试”按钮后使“下一题”按钮可用,同时设置“开始考试”按钮不可用4.设计一个窗口,里面有两个文本框和一个按钮,在第一个文本框中输入一个数,当单击按钮时,在另一个文本框中显示该数字的平方根,要求能处理异常5.下面的程序实现了在窗口中绘制一个以
(7070)为圆心,50为半径,边框是绿色的圆,圆心是红色的请将程序补充完整classExamextendsFrame{publicvoidpaintGraphicsg{g.setColorColor.green;g.drawOval2020100100;g.setColorColor.red;__________________;}}6.下面的程序实现了在窗体的坐标
(5050)处以红色显示“红色文字”,请将程序补充完整classExamextendsFrame{publicvoidpaintGraphicsg{_____________________;g.drawString“红色文字”5050;}}专题10(模块7)输入输出
一、填空题1.根据流的方向,流可以分为两类(输入流)和(输出流)2.根据操作对象的类型,可以将数据流分为(字节流)和(字符流)两种
3.在java.io包中有4个基本类InputStream、OutputStream、Reader和(Writer)类4.在Java语言中,实现多线程之间通信的流是(PipedInputStream和PipedOutputStream)5.(文件)类是java.io包中一个非常重要的非流类,封装了操作文件系统的功能6.()类用于将Java的基本数据类型转换为字符串,并作为控制台的标准输出7.Java包括的两个标准输出对象分别是标准输出对象(标准输出对象)和标准错误输出8.FileInputStream实现对磁盘文件的读取操作,在读取字符的时候,它一般与(InputStreamReader)和(BufferReader)一起使用二.选择题1.Java语言提供处理不同类型流的类所在的包是(D)A.java.sqlB.java.utilC.java.mathD.java.io2.创建一个DataOutputStream的语句是(D)A.newDataOutputStream“out.txt”B.newDataOutputStreamnewFile“out.txt”;C.newDataOutputStreamnewWriter“out.txt”;D.newDataOutputStreamnewOutputStream“out.txt”;3.下面语句正确的是(A)A.RandomAccessFileraf=newRandomAccessFile“myfile.txt””rw”;B.RandomAccessFileraf=newRandomAccessFilenewDataInputStream;C.RandomAccessFileraf=newRandomAccessFile“myfile.txt”;D.RandomAccessFileraf=newRandomAccessFilenewFile“myfile.txt”;4.下面哪个方法返回的是文件的绝对路径(B)A.getCanonicalPathB.getAbsolutePathC.getCanonicalFileD.getAbsoluteFile5.在File类提供的方法中,用语创建目录的方法是(A)A.mkdirB.mkdirsC.listD.listRoots6.程序如果要按行输入/输出文件中的字符,最合理的方法是采用(A)A.BufferedReader和BufferedWriter类B.InputStream和OutputStream类C.FileReader和FileWriter类D.File_Reader和File_Writer类7.RandomAccessFile类的(C)方法可用于设置文件定位指针在文件中的位置A.readIntB.readLineC.seekD.close8.下面哪个流类使用了缓冲区技术(A)A.BufferadOutputStreamB.FileInputStreamC.DataOutputStreamD.FileReader
三、编程题1.编写一段代码,实现的功能是统计一个文件中字母“A”和“a”出现的总次数2.使用随机文件流类RandomAccessFile将一个文本文件倒置读出3.编写一个Java应用程序,可以实现Dos中的type命令,并加上行号即将文本文件在控制台上显示出来,并在每一行的前面加上行号专题11(模块8)数据库JDBC同颜色部分考试涉及较少一.简答题1.说明ODBC数据源创建的步骤
1.在windows的“控制面板”中找到【数据源(ODBC)】图标双击之,弹出【ODBC数据源管理器】对话框,然后单击【添加】按钮,弹出“创建新数据源”对话框
2.选中MicrosoftAccessDriver项,然后单击【完成】按钮,弹出“ODBCMicrosoftAccess安装”对话框在此对话框中,输入数据源名称后,单击【选择】按钮,指出创建好的Access数据库的存放路径
3.在对话框中单击【确定】按钮,返回“ODBC数据管理器”对话框,新添加的用户数据源将出现在此对话框中,单击【确定】按钮,新用户数据源创建完成创建好用户数据源后,便可对这个数据源进行数据表的创建、修改、记录的添加、修改删除等数据库操作2.JDBC提供了哪几种连接数据库的方式?(重要)Oracle.DB
2.SqlServer.Sybase.Informix.MySQL.PostgreSQL七种3.SQL语言包括哪几种基本语句来完成数据库的基本操作?六种
1.select语句用来对数据库进行查询并返回符合用户查询标准的基本操作
2.createtable语句用来建立新的数据表
3.insert语句向数据表中插入或添加新的数据行
4.updata语句:更新或修改符合规定条件的记录
5.delete语句删除数据表中的行或记录
6.droptable语句删除某个数据表以及该表中的所有记录4.写出装载驱动程序的代码5.说明Statement和PreparedStatement的不同,都用在什么场合?
1.PreparedStatement是预编译的对于批量处理可以大大提高效率.也叫JDBC存储过程
2.使用Statement对象在对数据库只执行一次性存取的时侯,用Statement对象进行处理PreparedStatement对象的开销比Statement大,对于一次性操作并不会带来额外的好处
3.statement每次执行sql语句,相关数据库都要执行sql语句的编译,preparedstatement是预编译得preparedstatement支持批处理二.选择题1.下面方法中,可以用来加载JDBC驱动程序的是(D)A.类java.sql.DriverManager的getDriver方法B.类java.sql.DriverManager的getDrivers方法C.类java.sql.Driver的connect方法D.类java.lang.Class的forName方法2.下面方法中,可以用来建立数据库连接的是(A)A.类java.sql.DriverManager的getConnection方法B.类javax.sql.DataSource的getConnection方法C.类javax.sql.DataSource的connection方法D.类java.sql.Driver的getConnection方法3.一个(C)对象用于向数据库提交查询A.ResultSetB.ConnectionC.StatementD.Applet4.JDBCAPI主要定义在下面哪个包中(A)A.java.sqlB.java.ioC.java.awtD.java.util5.Statement类的executeQuery方法返回的数据类型是(D)A.Statement类的对象B.Connection类的对象C.DatabaseMetaData类的对象D.ResultSet类的对象
三、编程题1.创建一个图书数据库,包含书号、书名、作者、出版社、出版日期、数量等字段,分别用两种方法连接该数据库2.对上题中创建的图书数据库编写一个按照指定关键字查找图书信息的应用程序3.使用预编译的SQL语句对图书信息进行查询、插入、修改和删除操作专题12(模块)网络编程
一、填空题1.一个URL地址是由(协议名称、主机名称、端口号、文件名)几部分组成的2.URL类中返回URL端口号的方法是(publicgetPort)3.一个Socket由一个(IP)地址和一个(端口号)唯一确定4.目前最广泛使用的网络协议是Internet上使用的(TCP/IP)协议5.TCP/IP协议的两种通信协议是(TCP)协议和(UDP)协议6.常用的变成模式有客户端/(服务器)模式和B/S模式7.套接字是一个特定机器上被编号的(通信结构),用户可用的端口号是(大于1023的数),系统可用的端口号是(0`1023)8.服务器端套接字类是(ServerSocket)二.选择题1.关于协议下面说法正确的是BA.TCP/IP协议由TCP协议和IP协议组成B.TCP和UDP都是TCP/IP协议传输层的子协议C.Socket是TCP/IP协议的一部分D.主机名的解析是TCP/IP的一部分2.TCP协议栈的4层结构中不包括(D)A.应用层B.传输层C.网络层D.会话层3.下面服务中使用TCP协议的是(A)A.HTTPB.FTPC.SMTPD.NEWS4.HTTP服务的端口号是(A)A.80B.21C.23D.1205.下面URL合法的是(A)A.http://
92.
168.
1.59/index.htmlB.ftp://19216811/incomingC.ftp://
192.
168.
1.1:-1D.http://
192.
168.
1.
1.26.下面方法表示本机的是(C)A.localhostB.
255.
255.
0.0C.
127.
0.
0.1D.
123.
456.
789.07.一个Socket由(A)唯一确定A.一个IP地址和一个端口号B.一个IP地址和一个主机名C.一个主机号和一个端口号D.一个IP地址8.获取本机地址可以使用下面哪个方法(B)A.getHostNameB.getLocalHostC.getByNameD.getHostAddress9.以下(A)方法可以获取指定URL的协议名A.publicStringgetProtocolB.publicStringgetHostC.publicfinalObjectgetContentD.publicintgetPort10.下面创建Socket的语句中正确的是(B)A.Socketa=newSocket80;B.Socketb=newSocket“
130.
3.
4.5”80;C.ServerSocketc=newSocket80;D.ServerSocketd=newSocket“
130.
3.
4.5”80;三.简答题1.什么叫套接字?它的作用是什么?网络上的两个程序通过一个双向的通信连接实现数据的交换,这个双向链路的一端称为一个socketSocket是TCP/IP协议的一个十分流行的编程接口,一个Socket由一个IP地址和一个端口号唯一确定P2412.建立Socket连接时,客户端和服务器端有什么不同?客户端的Socket对象是显式地调用new完成的,而服务器端的Socket是调用ServerSocket的Accept方法产生的P2423.基于UDP的通信和基于TCP的通信有什么不同?TCP是一种面向连接的保证可靠传输的协议通过TCP协议传输,得到的是一个顺序的无差错的数据流UDP是一种无连接的协议(没有三次握手过程),每个数据包都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的地,能否到达目的地,到达的时间以及内容的正确性都不能被保证P236—2374.客户端的套接字对象和服务器端的套接字对象是如何进行通信的?服务端客户端SocketSocket()Bindbind读数据服务请求阻塞,等待客户数据发送数据处理服务请求服务应答发送数据读数据Close()close()四.编程题1.编写一个程序,利用URL类来获取某一网站主页的HTML文件2.编写一对客户机/服务器程序,利用数据报将一个文件从一台机器传到另一台机器上此后为一些程序,考试中的程序主要从后续内容中选出【练习题】
01.类的成员变量猜数字游戏一个类A有一个成员变量v有一个初值100定义一个类对A类的成员变量v进行猜如果大了则提示大了小了则提示小了等于则提示猜测成功importjava.util.*;publicclasslianxi{publicstaticvoidmainString[]dsa{Aa=newA;Scannerinput=newScannerSystem.in;while1==1{System.out.println请猜测数字;inti=input.nextInt;ifia.v{System.out.println小了;continue;}elseifia.v{System.out.println大了;continue;}else{System.out.println恭喜你猜对了!;break;}}}}classA{publicintv=100;}【练习题】
02.类的成员变量请定义一个交通工具Vehicle的类其中有:属性速度speed体积size等等方法移动move设置速度setSpeedintspeed加速speedUp减速speedDown等等.最后在测试类Vehicle中的main中实例化一个交通工具对象并通过方法给它初始化speedsize的值并且通过打印出来另外调用加速减速的方法对速度进行改变publicclassVehicle{privateintspeed;privateStringsize;publicvoidmove{System.out.printlnimmoving;}publicvoidsetSpeedintspeed{System.out.printlnnowimrunningwith+speed+perhour;}publicvoidspeedUp{Vehiclev=newVehicle;v.setSpeed1000;}publicvoidspeedDown{Vehiclev=newVehicle;v.setSpeed20;}publicstaticvoidmainString[]dsa{Vehiclev=newVehicle;v.speed=100;v.size=50/m^3;System.out.printlntheinitialspeedis+v.speed+andmysizeis+v.size;v.speedUp;v.speedDown;}}【练习题】
03.类的成员变量与方法、构造方法在程序中经常要对时间进行操作但是并没有时间类型的数据那么我们可以自己实现一个时间类来满足程序中的需要定义名为MyTime的类其中应有三个整型成员时hour分minute秒second为了保证数据的安全性这三个成员变量应声明为私有为MyTime类定义构造方法以方便创建对象时初始化成员变量再定义diaplay方法用于将时间信息打印出来为MyTime类添加以下方法addSecondintsecaddMinuteintminaddHourinthousubSecondintsecsubMinuteintminsubHourinthou分别对时、分、秒进行加减运算publicclassMyTime{privateinthour;privateintminute;privateintsecond;publicMyTimeintxintyintz{this.hour=x;this.minute=y;this.second=z;}publicvoiddisplay{System.out.printlnthetimeis+this.hour+:+this.minute+:+this.second;}publicvoidaddHourinthou{this.hour=this.hour+hou;}publicvoidaddSecondintsec{this.second=this.second+sec;}publicvoidaddMinuteintmin{this.minute=this.minute+min;}publicvoidsubHourinthou{this.hour=this.hour-hou;}publicvoidsubMinuteintmin{this.minute=this.minute-min;}publicvoidsubSecondintsec{this.second=this.second-sec;}}【练习题】
04.构造方法编写Java程序模拟简单的计算器定义名为Number的类其中有两个整型数据成员n1和n2应声明为私有编写构造方法赋予n1和n2初始值再为该类定义加addition、减subtration、乘multiplication、除division等公有成员方法分别对两个成员变量执行加、减、乘、除的运算在main方法中创建Number类的对象调用各个方法并显示计算结果publicclassNumber{privateintx;privateinty;publicNumberintxinty{this.x=x;this.y=y;}publicvoidplus{System.out.printlntheresultis:+this.x+this.y;}publicvoidexcept{System.out.printlntheresultis:+this.x-this.y;}publicvoidmultiplication{System.out.printlntheresultis:+this.x*this.y;}publicvoiddivision{System.out.printlntheresultis:+this.x/this.y;}publicstaticvoidmainString[]dsa{Numberlian=newNumber44;lian.plus;lian.except;lian.multiplication;lian.division;}}【练习题】
05.构造方法编写Java程序用于显示人的姓名和年龄定义一个人类Person该类中应该有两个私有属性姓名name和年龄age定义构造方法用来初始化数据成员再定义显示display方法将姓名和年龄打印出来在main方法中创建人类的实例然后将信息显示publicclasslianxi{privateStringname;privateintage;publiclianxiStringnameintage{this.name=name;this.age=age;}publicvoiddisplay{System.out.printlnname:+name+\tage:+age;}publicstaticvoidmainString[]dsa{lianxilian=newlianxiwing29;lian.display;}}【练习题】
06.get方法和set方法定义一个类该类有一个私有成员变量通过构造方法将其进行赋初值并提供该成员的getXXX和setXXX方法提示假设有privateStringname;则有publicvoidsetNameStringname{this.name=name;}publicStringgetName{returnthis.name;}publicclasslianxi{privateinti;publiclianxiinti{lianxilian=newlianxi;lian.setii;lian.geti;System.out.printlni=+i;}publiclianxi{}publicintgeti{returni;}publicvoidsetiinti{this.i=i;}publicstaticvoidmainString[]dsa{lianxilian=newlianxi3;}}【练习题】
07.构造方法与重载为“无名的粉”写一个类classWuMingFen要求
1.有三个属性面码:StringtheMa粉的分量两intquantity是否带汤booleanlikeSoup
2.写一个构造方法以便于简化初始化过程如WuMingFenf1=newWuMingFen牛肉3true;
3.重载构造方法使得初始化过程可以多样化WuMingFenf2=newWuMingFen牛肉2;
4.如何使得下列语句构造出来的粉对象是酸辣面码、2两、带汤的WuMingFenf3=newWuMingFen;
5.写一个普通方法check用于查看粉是否符合要求即将对象的三个属性打印在控制台上publicclassWuMingFen{privateStringtheMa;privateintquantity;privatebooleanlikeSoup;publicWuMingFenStringsintibooleanb{this.theMa=s;this.quantity=i;this.likeSoup=b;}publicWuMingFenStringsinti{this.theMa=s;this.quantity=i;}publicWuMingFenStringsbooleanbinti{this.theMa=s;this.quantity=i;this.likeSoup=b;ifb==true{Stringb1=带汤的;System.out.printlntheMa+quantity+两+b1;}}publicvoidcheck{iflikeSoup==true{Stringb1=带汤的;System.out.println面码+theMa+\n分量+quantity+\n+b1;}else{Stringb1=不带汤的;System.out.println面码+theMa+\n分量+quantity+\n+b1;}}publicstaticvoidmainString[]args{WuMingFenlian=newWuMingFen沙茶面2true;lian.check;}}【练习题】
08.构造方法的重载定义一个名为Vehicles交通工具的基类该类中应包含String类型的成员属性brand商标和color颜色还应包含成员方法run行驶在控制台显示“我已经开动了”和showInfo显示信息在控制台显示商标和颜色并编写构造方法初始化其成员属性编写Car小汽车类继承于Vehicles类增加int型成员属性seats座位还应增加成员方法showCar在控制台显示小汽车的信息并编写构造方法编写Truck卡车类继承于Vehicles类增加float型成员属性load载重还应增加成员方法showTruck在控制台显示卡车的信息并编写构造方法在main方法中测试以上各类publicclassVehicles{publicStringbrand;publicStringcolor;publicvoidrun{System.out.printlniamrunning;}publicVehiclesStringbStringb1{this.brand=b;this.color=b1;}publicvoidshowInfo{System.out.printlnbrand:+this.brand+\tcolor:+this.color;}publicstaticvoidmainString[]dad{Vehicleslian=newVehiclesLamborgihiniyellow;lian.showInfo;carc=newcarAventadorgreen6;c.showCar;Truckt=newTruckDongfangxuetielongBule12;t.showTruck;}}classcarextendsVehicles{publicintseat;publicvoidshowCar{System.out.printlniama+this.brand+mycoloris+this.color+ihave+this.seat+seats~;}publiccarStringbStringb1ints{superbb1;this.seat=s;}}classTruckextendsVehicles{publicfloatload;publicvoidshowTruck{System.out.printlniama+this.brand+mycoloris+this.color+icanstand+this.load+tonsofmaterials;}publicTruckStringbStringb1floatf{superbb1;this.load=f;}}【练习题】
09.构造方法与重载定义一个网络用户类要处理的信息有用户ID、用户密码、email地址在建立类的实例时把以上三个信息都作为构造函数的参数输入其中用户ID和用户密码时必须的缺省的email地址是用户ID加上字符串@gameschool.compublicclassUerInfo{privateintid;privateStringpwd;privateStringe_add;publicUerInfointiStringsStrings1{this.id=i;this.pwd=s;this.e_add=s1;System.out.printlnid+\n+pwd+\n+e_add;}publicUerInfointiStrings{this.id=i;this.pwd=s;this.e_add=id+@gameschool.com;System.out.printlnid+\n+pwd+\n+e_add;}publicstaticvoidmainString[]dsa{UerInfouer=newUerInfo1201012204dwajldwajlj1111111111@gameschool.com;UerInfou=newUerInfo1201012204dwijadiwjal;}}【练习题】
10.构造方法与重载、包编写Addition类该类中应包含一组实现两数相加运算的重载方法实现加法运算的方法应接受两个参数即加数和被加数方法将两个参数进行加法运算后返回相加结果考虑可能针对不同的数据类型进行计算重载一组方法包括整型、长整型、浮点型、双精度浮点型、还有字符串在main方法中创建Addition类的实例分别调用重载方法测试其效果应将Addition类打入到包中以自己名字的拼音为包命名packagecj.lian;publicclasslianxi{publicvoidadditionIntintxinty{intsum=x+y;System.out.printlnsum=+sum;}publicvoidadditionLonglongxlongy{longsum=x+y;System.out.printlnsum=+sum;}publicvoidadditionFloatfloatxfloaty{floatsum=x+y;System.out.printlnsum=+sum;}publicvoidadditionDoubledoublexdoubley{doublesum=x+y;System.out.printlnsum=+sum;}publicvoidadditionStringStringxStringy{Stringsum=x+y;System.out.printlnsum=+sum;}publicstaticvoidmainString[]dsa{lianxilian=newlianxi;lian.additionInt12;lian.additionString12;}}【练习题】
11.构造方法与重载将上次练习题三中编写的MyTime类打到以自己名字的拼音命名的包中并为该类重载一组构造方法以方便使用者能够以多种形式初始化该类的实例packagejava.time;publicclassMyTime{privateinthour;privateintminute;privateintsecond;publicMyTimeintxintyintz{this.hour=x;this.minute=y;this.second=z;}publicMyTime{}publicvoiddisplay{System.out.printlnthetimeis+this.hour+:+this.minute+:+this.second;}publicvoidaddHourinthou{this.hour=this.hour+hou;}publicvoidaddSecondintsec{this.second=this.second+sec;}publicvoidaddMinuteintmin{this.minute=this.minute+min;}publicvoidsubHourinthou{this.hour=this.hour-hou;}publicvoidsubMinuteintmin{this.minute=this.minute-min;}publicvoidsubSecondintsec{this.second=this.second-sec;}publicstaticvoidmainString[]das{MyTimet=newMyTime;t.display;}}编译包javac-d.MyTime.java【练习题】
12.构造方法与重载建立一个汽车类包括轮胎个数汽车颜色车身重量等属性并通过不同的构造方法创建事例至少要求汽车能够加速减速停车要求命名规范代码体现层次有友好的操作提示publicclasscar{privateintlunzi;privateStringcolor;privatedoubleweight;publiccar{}publiccarintiStringsdoubled{this.lunzi=i;this.color=s;this.weight=d;}publicvoidSpeedUp{System.out.printlniamspeedingup~;}publicvoidSpeedDown{System.out.printlniamspeedingdown~;}publicvoidStop{System.out.printlnihavestopped;}publicstaticvoidmainString[]das{carc=newcar;carc1=newcar4yellow
1.45;c.SpeedUp;c.SpeedDown;c.Stop;}}【练习题】
13.构造方法与重载创建一个类为该类定义三个构造函数分别执行下列操作
1、传递两个整数值并找出其中较大的一个值
2、传递三个double值并求出其乘积
3、传递两个字符串值并检查其是否相同
4、在main方法中测试构造函数的调用publicclasslianxi{publiclianxiintxinty{ifxy{System.out.printlnThemaxis+x;}elseSystem.out.printlnThemaxis+y;}publiclianxidoubled1doubled2doubled3{doubleji=d1*d2*d3;System.out.printlnThemultiplyresultis+ji;}publiclianxiStrings1Strings2{booleanb;ifs
1.equalss2{b=true;System.out.printlnb;}else{b=false;System.out.printlnb;}}publicstaticvoidmainString[]dasd{lianxic=newlianxi12;lianxic1=newlianxi123;lianxic2=newlianxinihaonihao;}}【练习题】
14.Static关键字与普通变量的区别创建一个名称为StaticDemo的类并声明一个静态变量和一个普通变量对变量分别赋予10和5的初始值在main方法中输出变量值publicclassStaticDemo{privatestaticinti=10;privateinty=5;publicstaticvoidmainString[]das{StaticDemos=newStaticDemo;System.out.printlnThestaticdigitis+car.i+\nandthenormaldigitis+s.y;}}【练习题】
15.继承创建一个名称为MainPackage的包使它包含MainClass和MainSubClass类MainClass类应当包含变量声明其值从构造函数中输出MainSubClass类从MainClass派生而来试执行下列操作创建一个名称为SamePackage的类使它导入上述包并创建一个MainSubClass类的对象创建MainClass包--packageMainPackage.Main;publicclassMainClass{publicinti=10;publicMainClass{System.out.printlni;}}创建MainSubClass包--packageMainPackage.Main;publicclassMainSubClassextendsMainClass{publicMainSubClass{}}创建SamePackage类---importMainPackage.Main.MainSubClass;publicclassSamePackage{publicstaticvoidmainString[]da{MainSubClassm=newMainSubClass;}}【练习题】
16.包、继承、构造函数创建一个名称为MainPackage的包使它包含MainClass和MainSubClass类MainClass类应当包含变量声明其值从构造方法中输出MainSubClass类从MainClass派生而来试执行下列操作创建一个名称为SamePackage的类使它导入上述包并创建一个MainSubClass类的对象创建MainClass包--packageMainPackage.Main;publicclassMainClass{publicinti=10;publicMainClass{System.out.printlni;}}创建MainSubClass包--packageMainPackage.Main;publicclassMainSubClassextendsMainClass{publicMainSubClass{}}创建SamePackage类---importMainPackage.Main.MainSubClass;publicclassSamePackage{publicstaticvoidmainString[]da{MainSubClassm=newMainSubClass;}}【练习题】
17.继承创建一个父类和子类父类有一个数据成员子类继承父类的该数据成员通过构造函数初始化并显示该数据成员的值classFather{publicinti=10;}classSonextendsFather{publiclianxi{System.out.printlni;}publicstaticvoidmainString[]dsa{Sons=newSon;}}【练习题】
18.覆盖、继承建立一个汽车Auto类包括轮胎个数汽车颜色车身重量、速度等成员变量并通过不同的构造方法创建实例至少要求汽车能够加速减速停车再定义一个小汽车类Car继承Auto并添加空调、CD等成员变量覆盖加速减速的方法publicclassAuto{publicintluntai;publicStringcolor;publicdoubleweight;publicintspeed;publicAuto{}publicvoidjiasu{System.out.printlnwozaijiasu;}publicvoidjiansu{System.out.printlnwozaijiansu;}publicvoidtingzhi{System.out.printlnwobukaile;}publicstaticvoidmainString[]dsa{carc=newcar;c.jiasu;c.jiansu;}}classcarextendsAuto{publicStringair_condition;publicStringcd;publicvoidjiasu{System.out.printlnwoshijiaochewozaijiasu;}publicvoidjiansu{System.out.printlnwoshijianchewozaijiansu;}}【练习题】
19.抽象类与继承设计一个能细分为矩形、三角形、圆形和椭圆形的“图形”类使用继承将这些图形分类找出能作为基类部分的共同特征如校准点和方法如画法、初始化并看看这些图形是否能进一步划分为子类本题只考虑实现思想不考虑具体实现的细节实现方式可自由发挥abstractclasstuxing{publictuxing{System.out.printlniamtuxing;}publicstaticvoidmainString[]dsa{juxingj=newjuxing;circlec=newcircle;tuoyuant=newtuoyuan;}}classjuxingextendstuxing{publicjuxing{System.out.printlniamjuxing;}}classcircleextendstuxing{publiccircle{System.out.printlniamcircle;}}classtuoyuanextendscircle{publictuoyuan{System.out.printlniamtuoyuan;}}【练习题】
20.抽象类创建一个Vehicle类并将它声明为抽象类在Vehicle类中声明一个NoOfWheels方法使它返回一个字符串值创建两个类Car和Motorbike从Vehicle类继承并在这两个类中实现NoOfWheels方法在Car类中应当显示“四轮车”信息而在Motorbike类中应当显示“双轮车”信息创建另一个带main方法的类在该类中创建Car和Motorbike的实例并在控制台中显示消息publicclasslianxi{publicstaticvoidmainString[]dsa{Carc=newCar;c.NoOfWheels;Motorbikem=newMotorbike;m.NoOfWheels;}}abstractclassVehicle{publicvoidNoOfWheels{}}classCarextendsVehicle{publicvoidNoOfWheels{System.out.println四轮车;}}classMotorbikeextendsVehicle{publicvoidNoOfWheels{System.out.println双轮车;}}【练习题】
21.抽象类创建一个Vehicle类并将它声明为抽象类在Vehicle类中声明一个NoOfWheels方法使它返回一个字符串值创建两个类Car和Motorbike从Vehicle类继承并在这两个类中实现NoOfWheels方法在Car类中应当显示“四轮车”信息而在Motorbike类中应当显示“双轮车”信息创建另一个带main方法的类在该类中创建Car和Motorbike的实例并在控制台中显示消息publicclasslianxi{publicstaticvoidmainString[]dsa{Carc=newCar;c.NoOfWheels;Motorbikem=newMotorbike;m.NoOfWheels;}}abstractclassVehicle{publicvoidNoOfWheels{}}classCarextendsVehicle{publicvoidNoOfWheels{System.out.println四轮车;}}classMotorbikeextendsVehicle{publicvoidNoOfWheels{System.out.println双轮车;}}【练习题】
22.接口创建一个名称为Vehicle的接口在接口中添加两个带有一个参数的方法start和stop在两个名称分别为Bike和Bus的类中实现Vehicle接口创建一个名称为interfaceDemo的类在interfaceDemo的main方法中创建Bike和Bus对象并访问start和stop方法publicinterfaceVehicle{publicvoidstart;publicvoidstop;}//借口类publicclassinterfaceDemo{publicstaticvoidmainString[]dsa{Bikebike=newBike;bike.start;bike.stop;Busbus=newBus;bus.start;bus.stop;}}classBikeimplementsVehicle{publicvoidstart{System.out.printlniambikeiamrunning;}publicvoidstop{System.out.printlniambkeiamstop;}}classBusimplementsVehicle{publicvoidstart{System.out.printlniambusiamrunning;}publicvoidstop{System.out.printlniambkeiamstop;}}【练习题】
23.接口创建一个名称为Vehicle的接口在接口中添加两个带有一个参数的方法start和stop在两个名称分别为Bike和Bus的类中实现Vehicle接口创建一个名称为interfaceDemo的类在interfaceDemo的main方法中创建Bike和Bus对象并访问start和stop方法publicinterfaceVehicle{publicvoidstart;publicvoidstop;}//借口类publicclassinterfaceDemo{publicstaticvoidmainString[]dsa{Bikebike=newBike;bike.start;bike.stop;Busbus=newBus;bus.start;bus.stop;}}classBikeimplementsVehicle{publicvoidstart{System.out.printlniambikeiamrunning;}publicvoidstop{System.out.printlniambkeiamstop;}}classBusimplementsVehicle{publicvoidstart{System.out.printlniambusiamrunning;}publicvoidstop{System.out.printlniambkeiamstop;}}【练习题】
24.抽象类、继承、接口综合设计一个系统XXX门的实现过程流程设计一张抽象的门Door那么对于这张门来说就应该拥有所有门的共性开门openDoor和关门closeDoor然后对门进行另外的功能设计防盗--theftproof、防水--waterproof、防弹--bulletproof、防火、防锈……要求利用继承、抽象类、接口的知识设计该门接口ImenpublicinterfaceImen{publicvoidthrefproof;publicvoidwaterproof;publicvoidfireproof;publicvoidbulletproof;publicvoidrustproof;}-----publicclasslianxi{publicstaticvoidmainString[]args{menm=newmen;m.opendoor;m.closedoor;}}abstractclassDoor{publicvoidopendoor{};publicvoidclosedoor{};}classmenextendsDoorimplementsImen{publicvoidopendoor{System.out.printlnicanopenthedoor;}publicvoidclosedoor{System.out.printlnicanclosethedoor;}publicvoidthrefproof{System.out.printlnicanthrefproof;}publicvoidwaterproof{System.out.printlnicanwaterproof;}publicvoidfireproof{System.out.printlnicanfireproof;}publicvoidbulletproof{System.out.printlnicanbulletproof;}publicvoidrustproof{System.out.printlnicanrustproof;}}【练习题】
25.抽象类、继承、接口综合设计一个系统xxx纯净水生产线目前流程是从某个地方把水取出来然后经过缓冲过滤加热和放糖的步骤abstract水{publicvoid水;}interface过滤{}interface缓冲{}interface加热{}interface放糖{}class纯净水1extends水imps过滤缓冲{}class纯净水2extends水imps缓冲{}class纯净水2extends水imps过滤{}(重复上题的方法)【练习题】
26.综合题定义一个抽象的Role类有姓名年龄性别等成员变量
1.要求尽可能隐藏所有变量能够私有就私有能够保护就不要公有再通过GetXXX和SetXXX方法对各变量进行读写具有一个抽象的play方法该方法不返回任何值同时至少定义两个构造方法Role类中要体现出this的几种用法
2.从Role类派生出一个Employee类该类具有Role类的所有成员构造方法除外并扩展salary成员变量同时增加一个静态成员变量“职工编号ID”同样要有至少两个构造方法要体现出this和super的几种用法还要求覆盖play方法并提供一个finalsing方法
3.Manager类继承Employee类有一个final成员变量vehicle
4.在main方法中制造Manager和Employee对象并测试这些对象的方法abstractclassRole1{protectedStringname;protectedintage;protectedStringsex;publicabstractvoidplay;publicRole1{}publicRole1StringsintiStrings1{this.name=s;this.age=i;this.sex=s1;}publicstaticvoidmainString[]dsa{Employeee=newEmployee;e.id=1201012204;e.salary=15000;e.name=youxiao;e.age=20;e.sex=Man;e.play;e.sing;Managerm=newManager;System.out.printlne.id;System.out.printlne.salary;System.out.printlne.name;System.out.printlne.age;System.out.printlne.sex;System.out.printlnm.vehicle;}}classEmployeeextendsRole1{protectedintid;protectedintsalary;publicEmployee{}publicEmployeeStringsintiStrings1intidintsalary{supersis1;this.id=id;this.salary=salary;}publicvoidplay{System.out.printlnicanpaly;}publicfinalvoidsing{System.out.printlnicansing;}}classManagerextendsEmployee{protectedfinalStringvehicle=Lamborghini;}}classDrinkNotFoundExceptionextendsException{publicDrinkNotFoundException{super;}publicDrinkNotFoundExceptionStringmrg{supermrg;}}。