1、JAVA习题集习题二一、判断题 1一个类定义了一个或多个构造方法,则 Java 不提供默认的构造方法。 ( )2如果定义的类中没有给出构造方法,系统也不会提供构造方法。 ( )3可以通过类名直接访问类变量。 ( )4非 static 修饰的方法既能被对象调用,又能用类名直接调用。 ( ) 5 static 修饰的类方法既能被对象调用,又能用类名直接调用。 ( ) 6一个类的所有对象共享 static 修饰的类变量。 ( ) 7类由两部分组成,一部分是变量的定义,一部分是方法的定义。 ( )8方法的定义由方法的声明和方法体等两部分组成。 ( )9方法中的形参可以和方法所属类的属性 (域)同名。
2、( )10 package 语句只能放到 Java 源程序除注释之外的第一行位置。 ( ) 11 Java 应用程序的人口 main 方法只有一种定义。 ( ) 12静态成员域具有全局作用域范围。 ( )13类成员变量可无须初始化,由系统自动进行初始化。 ( )14在类体部分定义时, 类的构造方法、 成员域和成员方法的出现顺序在语法上有严格限制。 ( ) 15类的实例对象的生命周期包括实例对象的创建、使用、废弃、垃圾的回收。 ( )二、选择题 1下述哪个说法是不正确的 ( )A 局部变量在使用之前无须初始化,因为有该变量类型的默认值B 类成员变量由系统自动进行初始化C 参数的作用域就是所在的方
3、法D for 语句中定义的变量,当 for 语句执行完时,该变量就消亡了 2下述哪一个关键字不是类及类成员的访问控制符 ( )A public B private C static D protected 3考虑以下的方法头声明:public void myMethod(int num , char letter) 下列哪个描述是正确的 ( )A.这个方法有个 int 型的参数,它的形式参数是 letter B 这个方法有个 int 型的参数,它的形式参数是 num C 这个方法有个 char 型的参数,它的实际参数是 myMethod D 这个方法是一个构造方法4假设有个类已经定义了下述的变
4、量: int num1=10 ; int num2=20 ;, int x ,int y)String word=new String(exam) double answer=25 5; 另外定义了下列方法头:public int stuff(String s以下哪个是正确的方法调用 ( )A num1=stuff ( ”hell o”, num1, num1);B , answer=stuff (word , answer , num2);C num2=stuff ( ”hell o”, num1,answer) ;D num1=stuff(num1 , num2, word) ; 5下面哪
5、一项不是构造方法的特点 ( )A 构造方法名必须与类名相同B 构造方法不具有任何返回类型C 任何一个类都含有构造方法D 构造方法修饰词只能是 public10给定如下代码:class CircleString name, radius;int r;public Circle (String n)name=n;public Circle (String n,int a) name=n;r=a;)public Circle (String n,String d, int a)radius=d;这行代码应该是要在第三个构造方法的空白处填上一行代码使之能够调用第二个构造方法,( ) 。A.Circle
6、(n,a); B. this(Circle(n,a);C.this(n,a); D. this(name,a);11下面哪个代码片段是错误的 ( )A. package mypackage; public class Rectangle B.import .*; package mypackage; public class Rectangle import .*; class Circle public class Rectangle .D.import .*; import .*; public class Rectangle .12下列选项中,用于声明包名的关键字是 ( ) 。A imp
7、ort B package C interface D protected13下列各种 Java 类的定义,哪些是错误的 ( )A. class MyClass private int Val; public int getVal() return Val;B.class MyClass private static int Val; public int getVal() return val;C.class MyClass private int Val; public static int getVal() return Val;D.class MyClassprivate static
8、 int Val;public static int getVal()return Val;14某类的成员方法只能被自己调用,修饰该方法的是 ( ) 。A public B protected C private D 无修饰符 15另外的类要获取以下 MyClass 类中的 member的值,采用的语句是 ( ) 。 public class MyClassprivate static int member=1;public static int getMember()return member;A. B. new myClass().memberC.() D. myClass().getMe
9、mber()16下面关于变量的说法,哪个是不正确的 ( )A 实例变量是类的成员变量B 实例变量用关键字 static 声明C 在方法中定义的局部变量在该方法被执行时创建D 局部变量在使用前必须被初始化17在 Java 中,以下哪一个关键字使类不能派生出子类 ( )A final B public C private D volatile18关于 public static void main 方法的参数描述不正确的是 ( ) 。A String args B String args C String a D String args19下列整型的最终属性i 的定义中,正确的是 ( ) 。A f
10、inalB static int i;C static final int i234;D final float i314f;20类方法的修饰符是 () 。A static B class C public D void22类 Line 的定义如下:class Lineprivate int a , b ;public Line(int x , int y)=x ;=y ;其中的this 代表 ( ) 。A类名Line B父类的对象C. Line类实例的当前对象引用D this 指针23以下程序片段,下列哪个选项插入到第 2 行将引起编译错误 ( )1.package mypackage;2.
11、3.class MyClass4.A. public class MainClass B. package mypackage1;C. class B D. import java. util.*;24以下程序代码,无法通过编译的是 ( ) 。A. class A int i=O;public void method()(i); B.class A int i=0; class B public void method()C.class Apublic int i=0;public static void method() System. (newA() .i);D.class Apublic
12、 static int i=0;public static void method()(i);)25下列代码在编译时会发生错误,下面哪种修改可以更正错误 ( )class Test private int m;public static void fun()A将 private int m 改为 protected int m三、程序阅读题1阅读下面的程序,程序保存为 Test java :1.public class Test2.short mValue;3.public static void main(String args)4.int a=32;5.int b=56;6.Test os
13、=new Test (a+b);7.();8.9.protected Test (short aValue) 10.mValue= aValue;11.12.public void Show() 13.System. out .println (mValue);14.15.上面的程序编译是否成功如果编译出错,指出哪行出错,并说明理由;如果编译正确, 运行结果是什么2阅读下面的程序:1public class Test2public static void main (String argv ) 3Bird b=new Bird();4b. fly (3);567class Bird8.stat
14、ic int Type=2;9.private void fly(int an_Type) 10.Type= an_Type;11.System. out .println ( + Type);12.13.上面的程序编译是否成功如果编译出错,指出哪行出错,并说明理由;如果编译正确, 运行结果是什么3、仔细阅读下面的程序代码,若经编译和运行后,请写出打印结果。 class StaticTest static int x=1;int y;StaticTest () y+;public static void main (String args ) StaticTest st=new StaticT
15、est();(x=+ x);(=+;st=new StaticTest();x=+ x);=+;static x+; 4写出下列程序代码的运行结果。public class PassTestfloat ptValue;public void changeInt(int value)value=il;public void changeStr(String value) value=new String(hey);public void changeObjValue( PassTest ref)=22;public static void main(String args )String str
16、;int val;PassTest pt=new PassTest(); val=33;(val);Int value is: +val); str=new String (Hi); (str);System. (Str value is: +str);=44;(pt);Pt value is: +5写出下列程序代码的运行结果:class Test public static String ss = 杭州电子科技大 public String ms = 计算机学院 ;public void printInfo() ss= + ss + ms= + ms);public static void
17、main(String args) Test obj1, obj2;obj1 = new Test();obj2 = new Test();= 浙江工业大学 ;= 软件学院 ;();();6阅读以下程序,回答问题。package package1; class ClassApublic void printInfo()(I am ClassA. );package package2; import ;public class ClassBpublic static voidmain(String args) new ClassA().printInfo();(1)上面两个类是在同一个源程序文件
18、中吗(2)以上程序编译是否正常若编译正常则运行结果是什么1. class Person2.String name;3.int age;4.String sex;5.public Person(String name,int age,String sex)6.=name;7.=age;8.=sex;9.10.public void toString()11.return name :+name+ age: + age+ sex:+ sex;12.13.14.public class TestPerson15.public static void main(String args)16.Perso
19、n p=new Person();17.= 张三 ;18.=20;20.System. ();21.22.8写出下列程序代码的运行结果。public class Test(int x=4;public static void main (String argv ) Test t=new Test ();+;change (t);static void change (Test m) +=2;四、编程题1编写一个 Java 程序,定义两个整型变量 a 和 b,使用构造方法初始化 a 为 10 ,b 为 5, 并定义求出 a 与 b 的和 ( 方法名为 AddAB)、差( 方法名为 SubAB)、
20、积( 方法名为 MultiAB) 、商(方法名为 DivAB)的方法。用另一个 Java 程序测词定义的方法,并在屏幕上输出结果。2创建一个名为 Rectangle 的类来表示一个使用宽度和高度来改变量的矩形,矩形的宽度 和高度由构造方法来确定。为 Rectangle 类创建下列方法:getArea 返回矩形的面积,要求长和高的范围为 0-50 ; getPerimeter 返回矩形的周长; draw 使用星号 (*) 作为描绘字符画出该矩形 ( 假设宽度和高度为整数 ) ; 在另一个类 TestRectangle 中编写 main 方法来测试 Rectangle 类。3根据以下的设计要求编写
21、 Java 源代码。类名: Student变量( 访问权限均为 private) :name , / 表示为姓名,类型为 Stringage , / 表示年龄,类型为 int 方法如下。(1) 构造方法 ( 没有参数,设置姓名为“无名氏” ,年龄为 20) 。(2)setName( 有一个名为 name的 String 型参数,将 name的值设为这个新值 ) 。(3)getName( 没有参数,返回姓名 ) ;(4)setAge( 有一个名为 age 的 int 型参数,将 age 的值设为这个新值 ) 。(5)getAge( 没有参数,返回年龄 ) 。(6)isSameAge( 有一个参数
22、 s ,是另一个 Student 对象的引用,如果两个 Student 对 象的 age 相同,则返回 true ,否则返回 false) 。4编写一个复数类 Complex 验证两个复数 1+2i 和 3+4i 相加产生一个新的复数 4+6i 。复数 类 Complex 必须满足如下要求。(1) 复数类 Complex 的属性如下。realPart 是 int 型,代表复数的实数部分。 imaginPart 是 int 型,代表复数的虚数部分。(2) 复数类 Complex 的方法如下。Complex() 构造方法,将复数的实部和虚数都置 0。Complex(int r , int i) 构
23、造方法,形参 r 为实部的初值, i 为虚部的初值。Complex complexADD(Complex a) 将当前复数对象与形参复数对象相加,所得的结果仍 是一个复数值,将其返回给此方法的调用者。String toString() 把当前复数对象的实部、虚部组合成 a+bi 的字符串形式,其中, a和 b 分别为实部和虚部的数据。5编写一个表示二维平面上的点的类 MyPoint ,满足以下条件。(1) 定义 private 的成员变量 x 和 y ,表示点的 x 和 y 坐标,类型为整数。(2) 定义两个 MyPoint 的构造方法,一个构造方法不带参数,且 x 和 y 的初始值为 0 ,
24、 另一个构造方法有两个参数,参数名为 x 和 y ,类型为整数,用这两个参数分别作为初始 x和 y 的坐标。(3)定义一个 getD 方法,功能为返回两个坐标点 ( 由 MyPoint 定义 ) 距离,值为 float 类型。(4)编写 main 方法,打印坐标点 (2,3) 到点 (4,5) 的距离。6。编写一个公共 (public) 类,类名为 AccountUtil ,该类属于 account 包,类中包含一个 公用静态方法 toSeparateNumber ,该方法以一个十进制字符串为参数,返回用逗号隔开的 数字字符串,分隔从右边开始,每三个数字用一个逗号隔开。例如,若参数为 2367
25、548,则 返回 2, 367, 548。若参数为小数,则分隔从小数点开始,例如,若参数为 236754885,则返回 2,367, 54885。根据以下说明,编写一个银行账户类 Account ,并编写一个 main 方法,对 Account 类进行 测试,在 main 方法中要调用 Account 的所有方法,发生异常时,要打印异常信息。该类的 成员变量如下表所示 ( 访问权限均为 private) 。7编写两个类, classA 属于包 package1 , classA 中有一个方法 methodA() ; classB 属于 包 package2 ,在 classB 的方法 methodB() 中调用 classA 的 methodA() 方法。每个方法简单 地输出方法名即可。8编写一个三角形类,能根据 3 个实数构造三角形对象,如果 3 个实数不满足三角形的条 件,则自动构造以最小值为边的等边三角形。输入任意 3 个数,输出构造的三角形面积。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1