一选择题1.下面方法定义中,正确的是:A)int x(int a,b){return a-b;}B)double x(int a,int b){int w;w=a-b;}C)double x(a,b){return b;}D)int x(int a,int b){return a-b;}2.下面方法定义中,不正确的是:A)float x(int a,int b){return a-b;}B)int x(int a,int b){return a-b;}C)int x(int a,int b){return a*b;}D)int x(int a,int b){return 1.2*(a-b);}3下面方法定义中,正确的是:A)int x(){char ch='a';return (int)ch;}B)void x(){return true;}C)int x(){return true;}D)int x(int a,b){return a-b;}4设X 、Y 均为已定义的类名,下列声明类X的对象x1的语句中正确的是?X x1=new X(); B)X x1= X ( );C)X x1=new Y( ); D)int X x1;5设A为已定义的类名,下列声明并创建A 类的对象a的语句中正确的是?A)A a=new A( ); B)public A a=A( );B)C)A a=new class( ); D)a A;6下面类的定义中结构正确的是?A)class A B)class 2A C)int class A D)public class A ()7下面关于类的结构的说法正确的是?A)类只能包含一个构造方法B)类可以没有属性C)类只能包含方法D)类只能包含属性8下面哪个关键字在定义类头时用不到?A)class B)public C)extends D)int339 this在程序中代表的是?A)类的对象B)属性C)方法D)父类10下列对构造方法的调用方式的描述中正确的是?A)使用new调用B)使用类名调用C)使用对象名调用D)调用方法为对象名.方法名()11 以下关于构造函数的描述错误的是?A)构造函数的返回类型只能是void型B)构造函数是类的一种特殊函数,它的方法名必须与类名相同C)构造函数的主要作用是完成对类的对象的初始化工作D)一般在创建新对象时,系统会调用构造函数12下列构造方法的调用方式中,正确的A)按照一般方法调用B)由用户直接调用C)只能通过new自动调用D)不用调用,自动执行13有一个类A,以下为其构造方法的声明,其中正确的是?A) v oid A(int x)B)A(int x)C)a(int x)D)void a(int x)14设i , j为类X中定义的int型变量名,下列X类的构造方法中不正确的是( )。
A) void X(int k ){ i=k; }B) X(int k ){ i=k; }C) X(int m, int n ){ i=m; j=n; }D) X( ){i=0;j=0; }15.有一个类A,以下为其构造方法的声明,其中正确的是( )。
A)public A(int x){...}B)static A(int x){...}C)public a(int x){...} D)void A(int x){...}16.下面关于get和set方法的叙述,正确的是()A)两个方法一般都有返回值B)两个方法一般都没有返回值C)get方法一般有返回值D)set方法一般有返回值二填空:1.下面程序的功能是通过调用方法max()求给定的三个数的最大值,请将其补充完整。
public class Class1{public static void main( String args[] ) {int i1=1234,i2=456,i3=-987;int MaxValue;MaxValue=max(i1,i2,i3)_;System.out.println("三个数的最大值:"+MaxValue);}public ___static____ int max(int x,int y,int z){ int temp1,max_value;temp1=x>y?x:y;max_value=temp1>z?temp1:z;return max_value;}}2. 创建一个Dog类,此类中包括1个姓名属性name。
在main方法中创建Dog类的对象d,并设置其姓名为“XiaoBai”。
public class Dog {String name;public static void main(String[] args){____Dog d=new Dog();_____________________=”XiaoBai”;____________________ }3.创建一个Telephone类,属性有电话号码number,还有2个构造方法,其中一个没有参数,一个带参数。
public class Telephone {String number;_Telephone()_{number="2";}Telephone(String number){____this.number_=_number;_______}4.创建一个Employee类,属性有员工姓名name,还有2个构造方法,其中一个没有参数,一个带参数。
public class Employee {String name;_Employee ()_{name=”LiuYang”;}Employee (String name){__=name;____}三.程序阅读题(1)下列程序的输出结果是什么?public class Foo{static int i=0;static int j=0;public static void main(String[] args) {int i=2;int k=3;{int j=3;System.out.println(“i + j is ”+ i + j);}k = i +j;System.out.println(“k is ”+k);System.out.println(“j is ”+ j);}}(2)下面代码是否正确?如果正确,运行后输出什么?否则请解释出现错误的原因?1 public class Test {2 public static void main(String args[]) {3 MyClass a = new MyClass(3);4 int b=1;5 add(a,b);6 System.out.println("a is "+ a.v +"; b is " + b);7 }8 static void add (MyClass a , int b) {9 b++;10 a.v=b;11 }12 }13 class MyClass{14 int v ;15 MyClass(int v){ this.v = v; }16 }(3)下面代码是否正确?如果正确,运行后输出什么?否则请解释出现错误的原因?//这是Test1.java程序1 package test1;2 public class Test1 {3 public static int x = 42;4 }1 package test2;2 import test1.Test1;3 public class Test2 {4 public static void main(String[] args) {5 System.out.println("x = " + Test1.x);6 }7 }四编程题:1.创建类Student,属性有平时成绩(pingshi),期末成绩(qimo);带参数的构造方法,方法有计算并输出总成绩的方法calculateScore(),计算方式为:总成绩=平时成绩+期末成绩的1/2;创建测试类,创建Student对象s,然后调用calculateScore()方法来输出总成绩。
2、定义一个图书类Book,要求如下:(a)属性包括:书名name(String类型)、作者author (String类型),单价price(double类型),数量amount (int类型),并且所有属性为私有。
(b)提供一个为书名name、作者author、单价price 和数量amount指定初值的构造方法。
(c)为私有属性提供访问器方法,但要求书名和作者一旦初始化后不能更改。
(d)提供计算图书总价的方法totalPrice方法,图书总价=单价×数量定义测试类BookTest,在其main方法中创建一个书名为“Java”、作者为“张三”,单价为30,数量为2000的图书。
并计算输出该图书的总价。
3.编写一个类Teacher,描述教师的课时数量和课时系数,均为double类型。
所有教师的课时系数相同。
Teacher类有一个初始化课时数量的构造方法,一个计算课时当量的courseCompute方法(课时当量=课时量*系数),返回值类型为double。
1)编写一个测试类进行测试。
创建两个教师对象,课时量分别为96和64,教师的课时系数为1.2,输出两位老师的课时当量。
2)在上题中的Teacher类中添加一个int型的静态属性num(初始值为0),用来统计创建教师对象的个数。
修改上述程序,当创建多个教师对象时,能够在控制台打印输出创建教师对象的人数。