当前位置:文档之家› 第4章 类与对象2

第4章 类与对象2

一、选择题1定义类头时,不可能用到的关键字是()。

A) class B)private C)extends D)public2.下列类定义中,不正确的是()。

A) class x { .... }B) class x extends y { .... }C) static class x implements y1,y2 { .... }D) public class x extends Applet { .... }3.下列类头定义中,错误的是()。

A)public x extends y {...}B) public class x extends y {...}C)class x extends y implements y1 {...}D)class x {...}4.设A为已定义的类名,下列声明A类的对象a的语句中正确的是( )。

A) float A a; B) public A a=A( );C) A a=new int( ); D) static A a=new A( );5.设A为已定义的类名,下列声明A类的对象a的语句中正确的是()。

A) public A a=new A( ); B) public A a=A( );C) A a=new class( ); D) a A;6.设X 、Y均为已定义的类名,下列声明类X的对象x1的语句中正确的是()。

A) public X x1= new Y( ); B) X x1= X ( );C) X x1=new X( ); D) int X x1;7.设X 、Y为已定义的类名,下列声明X类的对象x1的语句中正确的是()。

A) static X x1; B) public X x1=new X(int 123);C) Y x1; D) X x1= X( );8.通过类MyClass中的不含参数的构造方法,生成该类的一个对象obj,可通过以下语句实现:_______________________________。

9. 设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; }10. 有一个类A,以下为其构造方法的声明,其中正确的是( )。

A)public A(int x){...} B)static A(int x){...}C)public a(int x){...} D)void A(int x){...}11.有一个类A,以下为其构造方法的声明,其中正确的是( )。

A)void A(int x){...} B)A(int x){...}C)a(int x){...} D)void a(int x){...}12.设i、j、k为类X中定义的int型变量名,下列类X的构造方法中不正确的是( )。

A) X( int m){ ... } B) void X( int m){ ... }C) X( int m, int n){ ... } D) X( int h,int m,int n){ ... }13. 设i , j为类X中定义的double型变量名,下列X类的构造方法中不正确的是( )。

A) double X(double k ){ i=k; return i; } C) X( ){i=6;j=8; }B) X(double m, double n ){ i=m; j=n; } D) X(double k ){ i=k; }二、填空题1.下面是一个类的定义,请完成程序填空。

public class ____________{int x, y;Myclass ( int i, _______) // 构造方法{x=i; y=j;}}14. 下面是一个类的定义,请将其补充完整。

class _____{String name;int age;Student( _____ s, int i){name=s;age=i;}}2.下面是一个类的定义,请将其补充完整。

class ____________ // 定义名为myclass的类{__________ int var=666;static int getvar(){ return var; }}3.下面程序的功能是通过调用方法max()求给定的三个数的最大值,请将其补充完整。

public class Class1{public static void main( String args[] ){int i1=1234,i2=456,i3=-987;int MaxValue;MaxValue=____________;System.out.println("三个数的最大值:"+MaxValue);}public ______ 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;}}4.下面是一个类的定义,请将其补充完整。

___________ A{ String s;_____ int a=666;A(String s1) { s=s1; }static int geta( ) { return a; }}三、程序阅读题1.下面是一个类的定义,根据题目要求回答以下问题.class B{private int x;private char y;public B(int i,char j){x=i; y=j;}public void show(){System.out.println("x="+x+"; y="+y);}public void methodC(int x){this.x=this.x+x;y++;show();}}(1)定义类B的一个对象b,将类中的变量x初始化为10、变量y初始化为’A’,请写出相应的语句。

(2)若在(1)问基础上有方法调用语句:b.show();则输出如何?(3)若在(1)问基础上增加语句: b.methodC(1); 则输出为何?2.阅读程序,回答问题。

public class Test52{static String str1="Hello, Java world! \t";static String str2="Hello, students! ";public static void main(String args[]){ System.out.print(str1); System.out.println(str2); } }问题:1)这是哪种形式的java 程序?2)程序的输出是什么?3. 写出下列程序的输出结果public class Test{public static void main(String[] args){Count myCount = new Count();int times = 0;for(int i=0;i<100;i++)increment(myCount , times);System.out.println(“count is” + myCount.count);System.out.println(“time is”+ times);}public static void increment(Count c , int times){c.count++;times++;}}class Count{public int count;Count(int c){count =c;}Count(){count =1;}}4.写出下列程序的输出结果:public class Test{public static void main(String[] args){Cirecle circle1 = new Circle(1);Cirecle circle2 = new Circle(2);// Attempt to swap circle 1 with circle2System.out.println(“Before swap:circle1 = ”+circle1.radius+”circle2 = ”+circle2.radius);swap(circle1,circle2);System.out.println(“After swap: circle1 = ”+circle1.radius+”circle2 = ”+circle2.radius);}public static void swap(Circle x , Circle y){System.out.println(“Before swap: x = ”+x.radius+”y = ”+y.r adius);Circle temp = x;x = y;y = temp;System.out.println(“Before swap: x = ”+x.radius+”y = ”+y.radius);}}答案:5.阅读下面程序,回答问题:public class Foo{int i;static String s;void imethod(){}static void smethod(){}}设f是Foo的一个实例,下列语句正确吗?System.out.println(f.i);System.out.println(f.s);f.imethod();f.smethod();System.out.println(Foo.i);System.out.println(Foo.s);Foo.imethod();Foo.smethod();6.下列程序的输出结果是什么?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);}}答案:7. 根据下面的程序,指出下面每个元素的作用域(类作用域或块作用域)a)变量xb)变量yc)方法cuded)变量ie)变量yPospublic class CubeTest{int x;public void print(){int yPos = 10;for(x=1;x<=10;x++){System.out.println(cude(x));for(int i=1;i<=yPos;i++)System.out.println(" ");}}public int cude (int y){return y*y*y;}}答案:四、简答题1. 面向对象的软件开发方法用什么把数据和基于数据的操作封装在一起?(2. 在一个类定义中,用什么描述对象的状态? 用什么描述对象的行为?3. 什么方法是一个特殊的方法,用于对对象进行初始化?4.一个源程序文件中,能有多于一个的public 类吗?5. 构造方法的方法名可由编程人员任意命名吗?6.类的构造方法名必须和类名相同吗?7.构造函数有返回值吗?8. 构造函数可以重载吗?9. 如果一个类定义中没有定义构造方法,该类有构造函数吗?10. 如果一个类定义中已经定义了构造方法,java还会给它定义缺省的构造方法吗?11. 类的访问控制权有哪两种?12. 用什么修饰符修饰的方法称为静态方法? 用什么修饰符修饰的属性称为静态属性?13.静态属性和静态方法仅属于类的一个具体对象吗?它属于谁?14. static 变量能是private 变量吗?15. 使用静态成员都能以什么做前缀?16. static方法中能有this引用吗?17. 非static方法中可以有this引用吗?18.static方法能处理非static成员吗?19.非static方法能处理static成员吗?五、编程题1、//基本类定义编写一个类,描述学生的学号、姓名、成绩。

相关主题