Java面向对象复习题_第1页
Java面向对象复习题_第2页
Java面向对象复习题_第3页
Java面向对象复习题_第4页
Java面向对象复习题_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java面向对象编程 练习题专题1初识Java一、选择题.作为Java应用程序入口的main方法,其声明格式是(B)publicstaticintmain(Stringargs[])publicstaticvoidmain(Stringargs[])publicvoidmain(Stringargs[])publicintmain(Stringargs[]).下面命令正确的是(B)A.javaAppFirst.java B.javaAppFirstC.javaappfirst.class D.javacAppFirst3.设有一个Java小程序,源程序名为FirstApplet.java,其HTML文件为FirstApplet.html,则运行该小程序的命令为(D)A.javaFirstApplet B.javacFirstApplet.javaC.appletviewerFirstApplet.javaD.appletviewerFirstApplet.htmlJDK安装完成后,主要的命令如javac、java等,都存放在根目录的(A)文件夹下。D.docD.面向对象的D.D.docD.面向对象的D.类Java语言是一种(D)语言。A.机器 B.汇编 C.面向过程的6、Java程序的最基本组成单位是(D)。A.函数 B.过程 C.变量二、简答题.Java语言有哪些特点?.JDK安装完成后,如何设置环境变量?.简述Java应用程序和小应用程序的区别。.简述Java应用程序的开发过程专题2标识符、表达式、数据类型一、填空题TOC\o"1-5"\h\z.Java逻辑常量有两个:(ture)和(£^0 )。.写出下列表达式的运算结果,设a=2,b=-4,c=true。-a%b++ -2a>=1&& a <=10?a:b 2cA(a>b) false(-a)<<a -8(double)(a+b)/5+a/b -0.43、比较两个数相等的运算符是:== 。4、Java中的八种基本数据类型分别是:char、int、long、shore、float、double>byte和booleano二、选择题.下面这些标识符哪个是错误的(C)A.Javaworld B. _sum C.2JavaProgram D. $abc.下列哪一组运算符的优先级顺序是从高到低排列的(B)A.I、&、! B. &、a、||C.!、%、++ D. <、<<、++3、下面哪个赋值语句不会产生编译错误(C)A. char a=’abc’; B. byte b=152; C. floatc=2.0;D. doubled=2.0;.下面哪个单词是Java语言的关键字(D)A. False B. FOR C. For D. for.执行下面程序后,哪个结论是正确的(D)int a,b, c;a=1; b=3; c=(a+b>3 ? ++a :b++);A. a的值为2,b的值为3,c的值为1 B. a的值为2, b的值为4,c的值为2C. a的值为2,b的值为4,c的值为1 D. a的值为2, b的值为3,c的值为2.设各个变量的定义如下,哪些选项的值为true(C)inta=3,b=3;booleanflag二true;A.++a==bB.++a==b++C.(++a==b)IlflagD.(++a==b)&flag.表达式(int)6.5/7.5*3的值的类型为(C)A.short B.int C.double D.float.设a,b,x,y,z均为int型变量,并已赋值,下列表达式的结果属于非逻辑值的是(D)A.x>y&&b<a B.-z>x-y

C.y==++x D.y+x*x++.下面语句输出的结果为(B)Syste.out.println(5A2);A.6 B.7 C.10 D.25.对下面的语句执行完后正确的说法是:(D)intc=’c’/3;System.out.println(c);A.A.输出结果为21B.输出结果为22C.输出结果为32 D.输出结果为33.以下选项中变量a已定义类型,合法的赋值语句为(D)A.a=int(y);B.a==1; C.a=a+1=3;D.++a;.执行下列程序段后,ch,x,y的值正确的是:(A)intx=3,y=4;booleanch;ch=x<yII++x==--y;A. true,3, 4B.true,4,3 C. false,3, 4D. false,4,3.下列标识符中,正确的是 (B) 。A、1_Back B、$_Money C、$-moneyD、2-Forward.现有一个int类型的整数和一个double类型的浮点数,当它们之间做了加法运算之后,得到的结果类型应该是(B)A、int类型BA、int类型C、float类型 D、10ng类型15、以下程序的运行结果为(A)。publicclassA{publicstaticvoidmain(Stringa[]){intx=2,y=5;Stringz="5";System.out.println(x+y);System.out.println(x+z+"x+z");System.out.println("x+y="+x+y);System.out.println("x+z="+(x+z));))A.7 B.7 C.25 D.725x+z 7x+z25x+z 25x+zx+y=25x+y=25x+z=25x+y=25 x+y=7 x+y=25x+z=7 x+z=25 x+z=7A)02$$216、设有定义inta=12;则执行a*=12;语句后,aA)02$$2TOC\o"1-5"\h\zA. 144 B. 12 C. 24 D17、下列标识符中,合法的一个是 (C)。A. $#@!$ B. $我们$ C. $22$ D18、执行下列程序段后,b,x,y的值分别是(B)。intx=6,y=8;booleanb;b=x>y&&++x=--y;A. true, 6, 8 B.false ,6, 8C. e,7, 7 D.false, 7,719、下列程序运行的结果是(D)。publicclassA{publicstaticvoidmain(Stringargs[]){intx=7%3;while(x){x--;)System.out.println(x);))A.0B.1C.trueD.编译错误专题3流程控制语句一、填空题.在switch语句中的表达式的类型必须是(int型)或者(Boolean)。.break在循环语句中的作用是(跳出整个循环)。.分支语句包括(双重分支.分支语句包括(双重分支)和(.while循环语句的循环次数(不限次),for语句的循环次数(不限二、选择题多重分支)。),do-while语句的循环次数(至少一)。Syste.out.println(“a=”+a);B.a=3Syste.out.println(“a=”+a);B.a=3C.编译错误,没有输出.下面语句执行后,x的值为(Cinta=4,b=5,x=3;if(++a==b)x=x*a;A.3 B.12.请看下面的程序代码:D.正常运行,但没有输出)C.15 D.20.下面程序片段输出的是什么(Cinta=3,b=1;if(a=b)A.a=1if(x<0){Syste.out.println(“first”);}elseif(x<20){Syste.out.println(“second”);}else{Syste.out.println("third");}当程序输出“second”时,x的范围是(B)A.x<=0 B.x<20&&x>=0C.x>0 D.x>=204.请看下面的程序代码:switch(n){case0:Syste.out.println(“first”);Syste.out.println("second");break;

default:Syste.out.println(“end”);当n为何值时,程序段将输出字符串"second”(DA. 0 B.1 C.2.下列语句执行后,j的值是(D)intj=3,i=3;while(--i!=i/j)j=j+2;A. 4 B.5 C.6.下列语句执行后,x的值是(D)intx=2;do{x+=x;}while(x<17);A. 4 B.16 C.32.执行下列语句后,i、j的值是(B)inti=1,j=8;do{if(i++>--j)continue;}while(i<4);A. i=4,j=5 B.i=5,j=4C.i=5,j=5 D.i=5,j=68.下列语句执行后,k的值是(Bintj=4,i,k=10;for(i=2;i!=j;i++)k=k-i;D.D.D.以上都可以256A. 4 B.5 C.6D.9.下列语句执行后,c的值是(Ccharc=’\0’;for(c=’a’;c<’z’;c+=3){if(c>=’e’)break;}’h’A. ’e’ B.f C.’g' D.’h’10.若变量都已经正确说明,则以下程序段输出为(Aa=10;b=50;c=30;if(a>b)a=b;b=c;c=a;System.out.println("a="+a+”b="+b+” c="+c);

B.a=10 b=30 c=10D.a=50 b=30 c=30,j="+j+” ,k=”+k);BB.a=10 b=30 c=10D.a=50 b=30 c=30,j="+j+” ,k=”+k);B.i=1,j=1,k=2D.i=2,j=-1,k=2C.a=50 b=30 c=10.以下程序段输出是(D )intx=1,y=0,a=0,b=0;i=(--a==b++)?--a:++b;j=a++;k=b;System.out.println(“i=”+i+”A.i=2,j=1,k=3C.i=4,j=2,k=4.以下程序的输出是(B)intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;b++;break;)a++;break;a++;b++;)System.out.println(“a=”+a+”,b=”+b);D.a=2,b=2A.a=1,b=0B.a=2,b=0CD.a=2,b=213.以下程序段输出是(C)inti=0,j=0,a=6;if((++i>0)||(++j>0))a++:System.out.println(“i=”+i+”,j=”+j+”,a="+a);A.i=0,j=0,a=6 B.i=1,j=1,a=7C.i=1,j=0,a=7 D.i=0,j=1,a=714、下列程序运行的结果是(C)。publicclassA{publicstaticvoidmain(Stringargs[]){charc='d';for(inti=1;i<=4;i++){switch(i){case1:

c='a';System.out.print(c);break;c='b';System.out.print(c);break;c='c';System.out.print(c);default:System.out.print("!");A.!B.dbc!C.abcD.abc!!专题4数组一、填空题.定义一个整型数组y,它有5个元素分别是1,2,3,4,5.用一个语句实现对数组y的声明、创建和赋值:(inty[]={1,2,3,4,5} )。.设有整型数组的定义:“intx[][]={{12,34},{-5},{3,2,6}};”则x.length的值为(9).求取二维数组a[][]的第i行元素个数的表达式是()。4、一个一维数组有10个元素,则该数组可用的下标范围是0-95、String S[]={“安徽”,“江苏”,“山东”卜则S[1]的值是: 江苏6、当声明一个数据组intarr[]=newint[5];时,这代表这个数组所保存的变量类型是整形,数组元素下标的使用范围是 0-4―二.选择题1.设有定义语句“inta[]={66,88,99};",则以下对此语句的叙述错误的是(C)A.定义了一个名为a的一维数组 B.a数组有3个元素C.a数组的元素的下标为1〜3D.数组中的每个元素是整数.设有定义“int[]a=newint[4];”则数组a的所有元素是(B)A.a0、a1、a2、a3 B.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].下面哪个选项正确地声明了一个字符串数组 (C)A. char[] str B.char[][]str C. String[]strD. String[10]str4、假设有这样的数组创建:inta[]={1,2,3,4,5,6,7};则该数组长度为D。A. 4 B.5 C. 6 D. 75、下列二维数组的创建中错误的是(A)。inta[][]=new int[3][];int[][] a=new int[3][4];inta[][]={{1,2},{3,4}};int[][]a=newint[][];三、编程题.编写一个程序,计算一维数组中的最大值、最小值及其差值。.将一个数组中的数逆序重新存放。.已知数组(12,23,26,45,58,60)是有序的,输入一个数x,将它插入到数组中,组仍然是有序的。.输出杨辉三角形。如:保证数111111123451316411010515.求一个二维数组的每行最大数。(特别提醒:考试内容主要集中在后续章节)**专题5面向对象一、填空题.如果一个方法不返回任何值,则该方法的返回值类型为 void.如果子类中的某个方法名、返回值类型和—传递参数与父类中的某个方法完全一致,则称子类中的这个方法覆盖了父类的同名方法。.接口中所有的属性均为—公有__、_静态和_常量 的. 抽象方法是一种仅有方法声明,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。.在Java程序中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多重继承关系。.一般Java程序的类主体由两部分组成:一部分是成员变量,另一部分是成员方法.分别用class关键字来定义类,用new关键字来分配实例存储空间。.当一个类的修饰符为 private时,说明该类不能被继承,即不能有子类。.在Java中,能实现多重继承效果的方式是 接口。二、选择题方法内定义的变量(B二、选择题方法内定义的变量(B)。A.一定在方法内所有位置可见C.在方法外可以使用.方法的形参(A)。A.可以没有C.必须定义多个形参.return语句(D)。A.不能用来返回对象B.可能在方法的局部位置可见D.在方法外可见B.至少有一个D.只能是简单变量B.只可以返回数值C.方法都必须含有 D.一个方法中可以有多个.main()方法的返回值类型是(C)。A.booleanB.int C.void D.static.编译并运行下面的程序,运行结果是()。publicclassA{publicstaticvoidmain(Stringargs[]){Aa=newA();a.method(8);)voidmethod(inti){System.out.println(“int: "+i);)voidmethod(longi){System.out.println("long: "+i);)A.程序可以编译运行,输出结果为:“int:8”B.程序可以编译运行,输出结果为:“long:8”C.程序有编译错误,因为两个method()方法必须定义为静态(static)的D.程序可以编译运行,但是没有输出.能作为类及其成员的修饰符是()。A.interfaceB.class C.protectedD.public.下列方法定义中,方法头不正确的是()。A.A.publicstaticx(doublea){…}C.voidx(doubled){…}.构造方法在(D)时被调用。A.类定义时C.调用对象方法时.下列哪个类声明是正确的(A)。publicabstractclassCar{…}publicstaticintx(doubley){.D.publicintx(){…}B.使用对象的变量时D.创建对象时B.abstractprivatemove(){…}C.protectedprivatenumber;D.abstractfinalclassH1{…}.下列不属于面向对象程序设计的基本特征的是(D)。A.抽象 B.封装 C.继承 D.静态.请看下面的程序段classPerson{Stringname,department;

intage;publicPerson(Stringn){name=n;}publicPerson(Stringn,inta){name=n;age二a;}publicPerson(Stringn,Stringd,inta){//doingthesameastwoargumentsversionifconstructer}下面那个选项可以添加到〃doingthesame 处(C)A.Person(n,a)B.this(Person(n,a))C.this(n,a) D.this(name.age).请看下面的程序段classTest{privateintm;publicstaticvoidfun(){//somecode}}方法fun()如何来访问变量m(C)A.将private int m 改成 protected int mB.将privateintm改成publicintmC.将private int m 改成 staticint mD.将private int m 改成 intm.有一个类A,对于其构造函数的声明正确的是(B)。voidA(intx){voidA(intx){…}C.AA(intx){…}14.请看下面的程序段publicA(intx){…}D.intA(intx){…}publicclassTest{longa[]=newlong[10];pubicstaticvoidmain(Stringargs[]){System.out.println(a[6]);}}B.输出0D.当运行时有错误出现哪一个选项是正确的(C)。B.输出0D.当运行时有错误出现.关键字(B)表明一个对象或变量在初始化后不能修改。A.extends B.A.extends B.finalC.thisD.finalize.声明为static的方法不能访问(C)类成员。A.超类 B.子类 C.非staticD.用户自定义类.定义类A如下:classA{inta,b,c;publicvoidB(intx,inty,intz){a=x;b=y;c=z;})17.下面对方法B的重载哪些是正确的(C)。public void A(int x1,int y1, intz1){a=x1;b=y1;c=z1;}public void B(int x1,int y1, intz1){a=x1;b=y1;c=z1;}public void B(int x,int y){ a=x;b=y;c=0;}D.publicB(intx,inty,intz){18.编译运行下面的程序,结果是D.publicB(intx,inty,intz){18.编译运行下面的程序,结果是(B)。publicclassA{publicstaticvoidmain(StringBb=newB();b.test();}voidtest(){System.out.print(“A”)}}classBextendsA{voidtest(){super.test();System.out.print(“B”)}}A.产生编译错误C.代码可以编译运行,但没有输出19.已知类关系如下:ClassEmployee{}ClassManagerextendsEmployee{}ClassDirectorextendsEmployee{}则下列语句正确的是:(A)。a=x;b=y;c=z;}args[]){B.代码可以编译运行,并输出结果:ABD.编译没有错误,但会产生运行时异常Employeee=new Manager();Directord=new Manager();Directord=new Employee();Managerm=new Director();.接口是Java面向对象的实现机制之一,以下说法正确的是()。Java支持多重继承,一个类可以实现多个接口Java只支持单重继承,一个类可以实现多个接口Java只支持单重继承,一个类可以实现一个接口Java支持多重继承,但一个类只可以实现一个接口.下列方法的声明中不合法的是(C)。A.floatarea(){…} B.voidarea(){…}C.area{…} D.intarea(intr){…}22、下面哪个包是编程时不需要导入就可以直接使用的(B)。A.A. B.java.lang23、调用构造方法是在(B)。A.类定义时C.调用对象的方法时C.java.sql D.java.utilB.创建对象时D.使用对象的变量时24、在子类构造方法的哪个地方可以调用其父类的构造方法(B)。A.任何地方B.构造方法的第一条语句C.构造方法的最后一条语句D.无法在子类构造方法中调用父类的构造方法25、关于Java中的继承,下列说法错误的是(D)。A.继承是面向对象编程的核心特征,通过继承可以更有效地组织程序结构。B.继承使得程序员可以在原有类的基础上很快设计出一个功能更强的新类,而不必从头开始,避免了工作上的重复。C.每一次继承时,子类都会自动拥有父类的属性和方法,同时也可以加入自己的一些特性,使得它更具体、功能更强大。D.继承一般有多重继承和单一继承两种方式,在单一继承中每一个类最多只有一个父类,而多重继承则可以有多个父类。Java中的类都采用多重继承。26、当方法中的局部变量与成员变量同名时,必须使用下列哪一个关键字指出成员变量(C)。A.static B.super C.this D.new27、什么样的方法不能被重写(B)。A.私有(private)方法 B.最终(final)方法C.受保护(protected)的方法D.以上都不对28、下列有关抽象类与接口的叙述中正确的是哪一个(C)。A.抽象类中必须有抽象方法,接口中也必须有抽象方法B.抽象类中可以有非抽象方法,接口中也可以有非抽象方法C.含有抽象方法的类必须是抽象类,接口中的方法必须是抽象方法D.抽象类中的变量定义时必须初始化,而接口中不是29、从下列程序中你发现了几处错误(C)。abstractclassA{abstractvoidf(){};publicabstractvoidk();}classBextendsA{protectedvoidf(){}voidk(){System.out.print("Iamsubclass");}publicstaticvoidmain(String[]args){Aa=newA();a.f();a.k();}}A.1 B.2 C.3 D.430、下列程序运行的结果是(A)。interfaceInterfaceA{Strings="good";voidf();)classClassAimplementsInterfaceA{publicvoidf(){System.out.print(s);))classClassB(voidg(InterfaceAa){a.f();)

)publicclassE{publicstaticvoidmain(String[]args){ClassBb=newClassB();b.g(newClassA());))A.goodC.编译错误:b.g(newClassA())31、下列类的声明中不合法的是(A)。A.classPeople(){…}B.编译正确,但无运行结果D.以上都不对B.class植物{…}B.编译正确,但无运行结果D.以上都不对B.class植物{…}D.publicclass共有类{…}A.public B.extends C.Float33、试完成下述程序片段B。publicclassPoint{intx,y;publicPoint(intx,inty){( )=x;( )=y;}}A.Point.xPoint.y B.this.xC.super.xsuper.y D.无解34、在JAVA中,下列说法正确的是(C)。D.staticD.staticthis.y一个子类可以有多个父类,但一个父类只可以有一个子类一个子类只可以有一个父类,但一个父类可以有多个子类D.上述说法都不对A.classSonimplementsFatherC.classFatherextendsSon36、重载指的是方法具有相同的名字,不属于方法参数的不同C。A.形式参数的个数不同。B.A.classSonimplementsFatherC.classFatherextendsSon36、重载指的是方法具有相同的名字,不属于方法参数的不同C。A.形式参数的个数不同。B.classFatherimplementsSonD.classSonextendsFather但这些方法的参数必须不同。下列哪种说法B.形式参数的类型不同。C.形式参数的名字不同。 D.形式参数类型的排列顺序不同。37、关于接口的定义和实现,以下描述正确的是D。A.接口定义的方法只有定义没有实现B.接口定义中的变量都必须写明final和staticC.如果一个接口由多个类来实现,则这些类在实现该接口中的方法时采用统一的代码D.如果一个类实现接口,则必须实现该接口中的所有方法,但方法未必申明为public三、阅读程序题1、写出运行结果:mainbord:华硕,cpu:Intel 。publicclassComputer{Stringmainbord,cpu;publicComputer(Strings1,Strings2){mainbord二s1;cpu=s2;)publicstaticvoidmain(String[]args){Computerc=newComputer("华硕","Intel");System.out.println("mainbord:"+c.mainbord+”,cpu:"+c.cpu);))2、写出运行结果:0+1+3+5+7+9=25。publicclassExamA{privatestaticintarr[]=newint[5];publicstaticvoidmain(Stringargs[]){for(inti=arr.length-1;i>=0;i--)arr[i]=2*i+1;Stringoutput="0";intsum=0;for(inti=0;i<arr.length;i++){sum+=arr[i];output+="+"+arr[i];)output+="="+sum;System.out.println(output);System.exit(0);)3、写出运行结果:Peteris17yearsold!。publicclassPerson{Stringname;intage;publicPerson(Stringname,intage){二name;this.age二age;)publicstaticvoidmain(String[]args){Personc=newPerson("Peter”,17);System.out.println(+"is"+c.age+"yearsold!");))4、写出运行结果:a=60 b=20 c=30 。publicclassabc(publicstaticvoidmain(Stringargs[]){SubSubClassx=newSubSubClass(10,20,30);x.show();))classSuperClass(inta,b;SuperClass(intaa,intbb){a=aa;b=bb;)voidshow(){System.out.println("a="+a+"b="+b);))classSubClassextendsSuperClass(intc;SubClass(intaa,intbb,intcc){super(aa,bb);c=cc;))classSubSubClassextendsSubClass(inta;SubSubClass(intaa,intbb,intcc){super(aa,bb,cc);a=aa+bb+cc;)voidshow(){System.out.println("a="+a+" b="+b+" c="+c);)).下面是一个类的定义,请将其补充完整class_Student{Stringname;intage;Student(_Stringname,inta){_二name;age=a;)).下面是一个类的定义,请将其补充完整class_A{Strings;static_inta=3;A(Strings){this.s二s;)staticintgetA(){returna;))四、编程题1.按要求编写一个Java应用程序:(1)定义一个接口CanCry,描述会吼叫的方法publicvoidcry()。(2)分别定义狗类(Dog)和猫类(Cat),实现CanCry接口。实现方法的功能分别为:打印输出“我是狗,我的叫声是汪汪汪"、“我是猫,我的叫声是喵喵喵”。(3)定义一个主类G,①定义一个voidmakeCry(CanCryc)方法,其中让会吼叫的事物吼叫。②在main方法中创建狗类对象(dog)、猫类对象(cat)、G类对象(g),用g调用makecry方法,让狗和猫吼叫。interfaceCanCry(publicvoidcry();)classDogimplementsCanCry(publicvoidcry(){System.out.println("我是狗,我的叫声是汪汪汪");))classCatimplementsCanCry(publicvoidcry(){System.out.println("我是猫,我的叫声是喵找喵");))publicclassG{staticvoidmakeCry(CanCryc){c.cry();)publicstaticvoidmain(String[]args){Dogdog=newDog();Catcat=newCat();makeCry(dog);makeCry(cat);))2、编写一个Java程序,并满足如下要求:1)编写一个Car类,具有:属性:品牌(mark) String类型功能:驾驶(voiddrive())2)定义Car类的子类SubCar,具有:属性:价格(price)、速度(speed) int型功能:变速(voidspeedChange(intnewSpeed)),把新速度赋给speed3)定义主类E,在其main方法中创建SubCar类的两个对象:aodi和benchi的对象并测试其对象的特性。4)输出效果如下:

本车的品牌是奥迪奥迪车的价格是5口奥迪车原来的速度是E口本车正在驾驶奥迪车现在的速度是工如奔驰车原来的速度是HU本车正在驾驶classCar(奔驰车原来的速度是HU本车正在驾驶classCar(Stringmark;publicCar(Stringmark奔驰车现在的速度是12口this.mark=mark;System.out.println("\n本车的品牌是"+mark);)voiddrive(){})classSubCarextendsCar(intprice,speed;publicSubCar(Stringmark,intp,ints){super(mark);price=p;speed=s;System.out.println(mark+"的价格是"+price);}voiddrive(){System.out.println(mark+"原来的速度是"+speed);voidspeedChange(intnewSpeed){speed=newSpeed;System.out.println(mark+"现在的速度是"+speed);publicclassEx5_4_2{publicstaticvoidmain(String[]args){SubCaraodi,benchi;aodi=newSubCar("奥迪",50,80);aodi.drive();aodi.speedChange(120);benchi=newSubCar("奔驰",100,90);benchi.drive();benchi.speedChange(120);}).某公司正进行招聘工作,被招聘人员需要填写个人信息,编写“个人简历”的封装类。包括如下属性和对属性进行操作的方法。Stringxm;//姓名Stringxb;//性别intnl;//年龄Stringjtzz;//家庭住址Stringxl;//学历classResume(privateStringxm,xb,jtzz,xl;privateintnl;publicStringgetXM(){returnxm;)publicStringgetXB(){returnxb;)publicStringgetJTZZ(){returnjtzz;)publicStringgetXL(){returnxl;)publicintgetNL(){returnnl;)publicvoidsetXM(Stringxm){this.xm=xm;)publicvoidsetXB(Stringxb){this.xb=xb;)publicvoidsetXL(Stringxl){this.xl=xl;)publicvoidsetJTZZ(Stringjtzz){this.jtzz=jtzz;)publicvoidsetNL(intnl){this.nl=nl;)).编写一个抽象类Shape,声明计算图形面积的抽象方法。再分别定义Shape的子类Circle(圆)和Rectangle(矩形),在两个子类中按照不同图形的面积计算公式,实现Shape类中计算面积的方法。abstractclassShape(finaldoublepi=3.1415926;protecteddoublea,b;abstractpublicdoublegetArea();)classCircleextendsShape(publicCircle(doubler){a=r;b=0;)publicdoublegetArea(){returnpi*a*a;))classRectangleextendsShape(publicRectangle(doublea,doubleb){this.a=a;this.b=b;)publicdoublegetArea(){returna*b;))publicclassEx5_4_4{publicstaticvoidmain(Stringargs[]){Shaper=newRectangle(3,4);System.out.println("边长为3和4的矩形的面积是"+r.getArea());r=newCircle(3);System.out.println("半径为3圆的面积是"+r.getArea());)).定义一个接口,接口中有3个抽象方法如下。“longfact(intm);"方法的功能为求参数的阶乘。“longintPower(intm,intn);”方法的功能为求参数m的n次方。“booleanfindFactor(intm,intn);"方法的功能为判断参数m加上参数n的和是否大于100。定义类实现该接口,编写应用程序,调用接口中的3个方法,并将调用方法所得的结果输出。interfaceinterface1{longfact(intm);longintPower(intm,intn);booleanfindFactor(intm,intn);)classEximplementsinterface1{publiclongfact(intm){if(m==0||m==1)return1;returnfact(m-1)*m;)publiclongintPower(intm,intn){if(n==0)return1;returnintPower(m,n-1)*m;)publicbooleanfindFactor(intm,intn){returnm+n>100;))publicclassEx5_4_5{publicstaticvoidmain(String[]args){Exex=newEx();System.out.println("5!="+ex.fact(5));System.out.println("5的3次方是"+Power(5,3));System.out.println("76和35的和大于100是"+ex.findFactor(76,35));)).创建一个接口IShape,接口中有一个求取面积的抽象方法“publicdoublearea()”。定义一个正方形类Square,该类实现了IShape接口。Square类中有一个属性a表示正方形的边长,在构造方法中初始化该边长。定义一个主类,在主类中,创建Square类的实例对象,求该正方形对象的面积。interfaceIShape(publicdoublearea();)classSquareimplementsIShape(privatedoublea;publicSquare(doublea){this.a=a;)publicdoublearea(){returna*a;))publicclassEx_5_4_6{publicstaticvoidmain(String[]args){System.out.println("边长为5的正方形的面积是"+newSquare(5).area());).定义一个人类,包括属性:姓名、性别、年龄、国籍;包括方法:吃饭、睡觉,工作。(1)根据人类,派生一个学生类,增加属性:学校、学号;重写工作方法(学生的工作是学习)。(2)根据人类,派生一个工人类,增加属性:单位、工龄;重写工作方法(工人的工作是……自己想吧)。(3)根据学生类,派生一个学生干部类,增加属性:职务;增加方法:开会。(4)编写主函数分别对上述3类具体人物进行测试。classMankind{Stringname;Stringsex;Stringcountry;intage;publicMankind(Stringn,Strings,Stringc,inta){name=n;sex=s;country=c;age=a;)voidEat(){System.out.println("吃饭中...");)voidSleep(){System.out.println("睡觉中...”);)voidWork(){System.out.println("工作中...”);)voiddisplay(){System.out.println("此人的信息如下:");System.out.println("姓名:"+name);System.out.println("性别:"+sex);System.out.println("国籍:"+country);System.out.println("年龄:"+age);))classStudent1extendsMankind{Stringschool;StringsID;publicStudent1(Stringn,Strings,Stringc,inta,Stringsch,Stringsid){super(n,s,c,a);school=sch;sID=sid;)voidWork(){System.out.println("学生的工作是学习");)voiddisplay(){super.display();System.out.println("他是个学生,他所在学校是"+school+"他的学号是:"+sID);))classWorkerextendsMankind{Stringdw;intgl;publicWorker(Stringn,Strings,Stringc,inta,Stringsch,intsid){super(n,s,c,a);dw=sch;gl=sid;)voidWork(){System.out.println("工人的工作是干活");)voiddisplay(){super.display();System.out.println("他是个工人,他所在单位是"+dw+"他的工龄是:"+gl);))classXSGBextendsStudent1(Stringrank;publicXSGB(Stringn,Strings,Stringc,inta,Stringsch,Stringsid,Stringrank){super(n,s,c,a,sch,sid);this.rank=rank;)voidMeeting(){System.out.println("开会中...");)voiddisplay(){super.display();System.out.println("他还是名学生干部,职位是"+rank);))publicclassEx_5_4_7{publicstaticvoidmain(String[]args){Mankindm=newStudent1("张三","男","中国",20,"清华大学","15060002");m.display();m.Eat();m.Sleep();m.Work();m=newWorker("张三","男","中国",20,"三一重工”,20);m.display();m.Eat();m.Sleep();m.Work();XSGBm1=newXSGB("张三","男","中国",20,"清华大学",”15060002”,”学生会主席”);m1.display();m1.Eat();m1.Sleep();m1.Work();m1.Meeting();))专题6字符串、日期时间类一、填空题.已知String对象s="hello”,运行语句“System.out.println(s.concat("World!"));"后,s的值为(helloWorld!).使用十=将字符串s2添加到字符串s1后的语句是(s1+=s2).比较s1种的字符串和s2种的字符串的内容是否相等的表达式是:(s1.equals(s2)).已知sb为StringBuffer的一个实例,且sb="abcde",则sb.reverse()Bsb的值为:(edcba).获取当前系统时间(System.currentTimeMillis()).已知StringBuffersb二newStringBuffer("abc"),则sb.reverse()后,sb的值为 o7、Strings1=“China”;intn=s1.length();n的值为(10)。二.选择题.已知String对象s=”abcdefg”,则s.substring(2,5)的返回值为(B)。A."bcde" B."cde”C."cdef” D."def”.若有下面的代码:Strings=”people”;Stringt=''people”;Charc[]={‘p',‘e’,‘o’,‘p’,T,‘e’};下面哪一选项的语句返回值为假(C)?A. s.equals(t) B. t.equals(c)C. s==t D. t.equals(newString("people")).已知s为一个String对象,s="abcdefg",则s.charAt(1)的返回值为(B)。A.a B.bC.f D.g.若有下面的代码:Strings="good”;下面选项语句书写正确的是:(AD)。A.s+=''student”; B.charc=s[1];C.intlen二s.length D.Stringt=s.toLowerCase();5、假设Strings="Nicetomeetyou",则下面返回"to"的语句为C。A.s.substring(6,8); B.s.substring(5,9);C.s.substring(5,7); D.s.substring(6,7);6、调用下面哪个方法时会改变原有对象A。A. String的trim() B. String的length()C. StringBuffer的reverse() D. StringBuffer的length()7、已知inti=123,通过以下哪种方式可以得到字符串"123"工。A. Integer.parseInt(i); B. String.valueOf(i);C. Long.parseLong(i); D. Float.parseFloat(i);8、由"a".compareTo("b")得到的数值C。A.>0 B.=0 C.<0 D.不确定9、已知Strings="Thisisastring",则s.indexOf("is")的值为B。A.1 B.2 C.3 D.410、以下程序段执行的结果为 A。Stringstr1,str2;str1="Byebye";str2="Byebye";System.out.print(str1.equals(str2));System.out.println(str1==str2);A.truefalse B.truetrue C.falsetrue D.falsefalse12、已知StringBuffersb=newStringBuffer("abcde"),则sb.delete(1,2)^sb的值为C。A.abc B.abde C.acde D.ade三、编程题.实现把“ILoveJava!”的字符全部转换为小写并输出到控制台。publicclassEx_6_3_1{publicstaticvoidmain(String[]args){System.out.println("ILoveJava!".toLowerCase());)).使用String类中的split()函数,统计出“thisismyhomework!Imustfinishit!”中单词的个数。(注意:单词之间用一个空格来分隔。)publicclasswordCount{privatestaticfinalStringstr=newString("thisismyhomework!Imustfinishit!");publicstaticvoidmain(String[]args){System.out.println("\""+str+"\"contains"+str.split("").length+"words");)).给出两个日期,计算它们之间相隔的天数。publicclassEx6_3_2{publicstaticvoidmain(Stringargs[])throwsParseException(Stringdate1="2016-01-1223:59:59";Stringdate2="2016-01-1300:00:00";SimpleDateFormatdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");DatebeginDate=df.parse(date1);DateendDate=df.parse(date2);longbetweenDate=(endDate.getTime()-beginDate.getTime())/(1000*60*60*24);System.out.println("开始日期:"+beginDate);System.out.println("结束日期:"+endDate);System.out.println("相关天数:"+betweenDate);)).实现将当前日期信息以4位年份、月份全称、两位日期形式输出。publicclassEx6_3_2{publicstaticvoidmain(Stringargs[])throwsParseException(Calendarcd=Calendar.getInstance();SimpleDateFormatdf=newSimpleDateFormat("yyyy年MMMdd日");System.out.println(df.format(cd.getTime()));专题7 异常处理一.填空题.一个try语句块后必须跟( )语句块,( )语句块可以没有.自定义异常类必须继承(Exception)类及其子类.异常处理机制允许根据具体的情况选择在何处处理异常,可以在(方法内部)捕获并处理,也可以用throws子句把他交给(上层方法)处理二.选择题1.finally语句块中的代码(A)A.总是被执行B.当try语句块后面没有catch时,finally中的代码才会执行C.异常发生时才执行D.异常没有发生时才被执行2.抛出异常应该使用的关键字是(A)throwcatchC.finallyD.throws.自定义异常类时,可以继承的类是(C)ErrorAppletException及其子类D.AssertionError.在异常处理中,将可能抛出异常的方法放在(C)语句块中A.throwsB.catchC.tryD.finally5.对于try{ }catch子句的排列方式,下列正确的一项是(A)A.子类异常在前,父类异常在后B.父类异常在前,子类异常在后C.只能有子类异常D.父类异常与子类异常不能同时出现6.使用catch(Exceptione)的好处是(B)A.只会捕获个别类型的异常B.捕获try语句块中产生的所有类型的异常C.忽略一些异常D.执行一些程序三.简答题.try/catch/finally如何使用?.Throw/throws有什么联系和区别?.如何自定义异常类?.谈谈final、finally的区别和作用.如果g{}里有一个return语句,那么紧跟在这个try后的自皿叼{}里的代码会不会被执行?.Error和Exception有什么区别?(重要).什么是RuntimeException?列举至少4个RuntimeException的子类四.编程题.编写程序,要求输入若干整数,输入的同时计算前面输入各数的乘积,若乘积超过100000,则认为是异常,捕获并处理这个异常,输出信息。classoverFlowextendsException(publicoverFlow(Stringmsg){super(msg);System.out.println(msg);))publicclassEx7_4_1{publicstaticintintMul()throwsoverFlow{ints=1;Scannerinput=newScanner(System.in);System.out.println("请输入若干整数:”);while(true){if(s>100000)(thrownewoverFlow("输入整数的乘积大于100000");}else(s*=input.nextInt();System.out.println("当前乘积是"+s);publicstaticvoidmain(Stringargs[]){try{intMuL();}catch(overFlowe)(})voidtest(){System.out.print("A");}}.设计自己的异常类表示对负数求平方根的错误;在类Test的主方法中,从键盘输入一个数,若输入的数不小于0,则输出它的平方根;若小于0,则抛出自定义异常;在程序中处理异常并输出提示信息“输入错误,不能对负数求平方根”classSqrtByNegextendsException(publicSqrtByNeg(Stringmsg){super(msg);System.out.println(msg);}}publicclasswordCount{publicstaticdoubleTestException()throwsSqrtByNeg{doubles;Scannerinput=newScanner(System.in);System.out.println("请输入1个整数:");s=input.nextDouble();if(s<0){thrownewSqrtByNeg("输入错误,不能对负数求平方根");}else(returnMath.sqrt(s);}}publicstaticvoidmain(Stringargs[]){try(System.out.println(TestException()+"");}catch(SqrtByNege){}

专题8多线程一、填空题.Java语言实现多线程的方法有两种,它们是(继承Thread类)和(实现Runnable接口).线程有5种状态,它们是(创建)、(可运行)、(运行)、(阻塞)和(死亡).在java中,线程同步是通过(synchronized)关键字实现的.新创建的线程默认的优先级是(NORM_PRIORITY).当一个线程睡眠时,sleep()方法不消耗(CPU)时间二.选择题一个Java程序运行后,在系统中这个程序便可以作为一个(A)A.线程B.进程C.进程或线程 D.不可预知.设已经编好了一个线程类MyThread,要在main()中启动该线程,需使用以下哪个方法(B)newMyThreadMyThreadmyThread=newMyThread();myThread.start();MyThreadmyThread=newMyThread();myThread.run();newMyThread.start();.以下哪个方法不能使线程进入阻塞状态(D)A.sleep().可以使用(B)A.getPriority().A.sleep().可以使用(B)A.getPriority().线程是Java的B.wait()C.suspend()D.stop()A.检查B.方法设置线程的优先级B.setPriority()(D)机制解释执行C.并行C.yield()D.wait()D.并发.以下方法用于定义线程执行体的是(C)A.start()BA.start()B.init()C.run()D.main().一个线程如果调用了sleep()方法,能唤醒它的方法是(DA.notify()BA.notify()B.resume()C.run()D.以上都不是专题9图形用户界面编程一.填空题.AWT的组件库被更稳定、通用、灵活的库取代,该库称为( ).( )用于安排容器上的GUI组件.设置容器的布局管理器的方法是( ).当释放鼠标按键时,将产生( )事件.Java为那些声明了多个方法的Listener接口提供了一个对应的( ),在该类中实现了对应接口的所有方法.ActionEvent事件的监听器接口是( ),注册该时间监听器的方法名是TOC\o"1-5"\h\z( ),事件处理方法名是( ).图形用户界面通过( )相应用户和程序的交互,产生事件的组件称为().Java的Swing包中定义菜单的类是( ).向容器内添加组件使用( )方法.对话框有两种类型,分别是( )和( ).工具栏一般放在窗口的( )位置.若要使表格具有滚动条,需要将表格添加到( )组件中。.paint()方法的参数是()类的实例.drawRect(intx1,inty1,intx2,inty2)中,x2和y2分别代表矩形的()和()二.选择题1.窗口JFrame使用( )方法可以将jMenuBar对象设置为主菜单A.A.setHelpMenu(jMenuBar)B.add(jMenuBar)D.D.setMenu(jMenuBar))B.JMenu类D.JTextField类B.JMemuD.JTextAreaC.setJMenuBar(jMenuBar).下面属于容器类的是(A.Color类C.JFrame类.使用()类创建菜单对象A.DimensionC.JMenuItem.使用( )方法创建菜单中的分隔条A.setEditableBA.setEditableC.add D.addSeparator.JPanel和JApplet的默认布局管理器是( )A.CardLayout B.FlowLayoutC.BorderLayout D.GridLayout.JFrame的默认布局管理器是( )A.CardLayout B.FlowLayoutC.BorderLayout D.GridLayout7.按钮可以产生ActionEvent事件,实现哪个接口可以处理此事件(A. FocusListener B. ComponentListenerC. ActionListener D. WindowListener8.容器使用( )方法将组件添加到容器A. addComponent() B. add()C. setComponent() D. Add()9.向JTextArea的( )方法传递false参数可以防止用户修改文本A. setEditable B. changeListenerC. add D. addSeparator为了能够通过选择输入学生性别,使用组件的最佳选择是(A. JCheckBox B. JRadioButtonC. JComboBox D. JList当选中一个复选框,即在前面的方框上打上对勾,引发的事件是(A. ActionEvent B. ItemEventC.SelectEvent D.ChangeEvent窗口关闭时会触发的事件是( )A.ContainerEvent B.ItemEventC. WindowEvent D. MouseEvent下面哪种对话框可以接受用户输入( )A.showConfirmDialog B.showInputDialogC.showMessageDialog D.showOptionDialogaddActionListener(this)方法中的this参数表示的意思是(A.当有事件发生时,应该使用this监听器this对象类会处理此事件this事件优先于其他事件D.只是一种形式以下类中,具有绘图能力的类是( )A.Image B.GraphicsC.Font D.ColorGraphics类中提供的绘图方法分为两类:一类是绘制图形,另一类是绘制( )A.屏幕B.文本C.颜色D.图像专题10(模块7) 输入输出一、填空题.根据流的方向,流可以分为两类:(输入流)和(输出流).根据操作对象的类型,可以将数据流分为(字节流)和(字符流)两种.在java.io包中有4个基本类:InputStream、OutputStream、Reader和(Writer)类.在Java语言中,实现多线程之间通信的流是(管道流).(File)类是java.io包中一个非常重要的非流类,封装了操作文件系统的功能。.(System)类用于将Java的基本数据类型转换为字符串,并作为控制台的标准输出.Java包括的两个标准输出对象分别是标准输出对象(System.out)和标准错误输出System.err.FileInputStream实现对磁盘文件的读取操作,在读取字符的时候,它一般与(InputStreamReader)和(BufferdReader

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论