java面向对象编程、类的封装、接口和基本类库练习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7.new操作符动态地为对象按其指定的类型分配内存,并返回该类型的一个引用。()
8.类的方法通常设为public,而类的实例变量一般也设为public。()
9.构造方法在创建对象时被调用。()
10.通过点运算符与类对象的引用相连,可以访问此类的成员。()
11.声明为protected的类成员只能被此类中的方法访问。()
16.在Java中,方法main()将返回一个()值。
A String
Bint
C char
D void
17.有一个类A,对于其构造函数的声明正确的是()
A void A(intx){…}
B public A(intx){…}
C AA(intx){…}
DintA(intx){…}
18.请看下面的程序段
面向对象编程基本知识练习
一、判断题
1.不需要定义类,就能创建对象。()
2.构造方法用于给类的private实例变量赋值。()
3.对象一经声明就可以立即使用。()
4.在定义变量和方法时,必须清楚地在其面前标上访问权限修饰符。()
5.Java程序中的参数传递都是把参数值传递给方法定义中的参数。()
6.在类定义中,成员访问权限修饰符不能多次出现。()
{inta,b,c;
public void B(intx,inty,intz){a=x; b=y; c=z; }
}
下面对方法B()的重载哪些是正确的:()
A public void A(intxl,intyl,intz1){ a=x; b=y; c=z; }
B public void B(intx1,intyl,intz1){ a=x; b=y; c=z;}
C doubleGetSort(intx,inty){returnx+y; }
D都不能
3.下列对继承的说法,哪个是正确的:()
A子类只能继承父类public方法和状态
B子类能继承父类的非私有方法和状态
C子类能继承父类的所有方法和状态
D子类只能继承父类的方法,而不继承状态
4.定义类A如下:
class A
B private protected
C protected static
D static private
13.继承性使▁▁成为可能,它不仅节省开发时间,而且也鼓励人们使用已经验证无误和调
试过的高质量软件。()
A节省时间
B软件复用
C软件管理
D延长软件生命周期
14.编译运行下面的程序,结果是()。
Public class A
public class Test {
long a[ ] = new long[10];
public static void main(Stringarg[ ]) {
System .out .println(a[6]);
}
}
那一个选项是正确的:()
A不输出任何内容
B输出0
C当编译时有错误出现
D当运行时有错误出现
//including assignment name=n,age=a
}
}
下面那一选项可以添加到“//doing the same……”处:()
A Person(n,a)
B this(Person(n,a))
C this(n,a)
D this(name.age)
13.()是一个特殊的方法,用于对类的实例变量进行初始化。
}
}
A产生编译错误
B代码可以编译运行,并输出结果:AB
C代码可以编译运行,但没有输出
D编译没有错误,但会产生运行时异常
15.已知类关系如下:
class Employee;
class Manager extendsEmployeer;
class Director extends Employee;
B子类必须通过super关键字调用父类有参数的构造函数
C如果子类的构造没有通过super调用父类构造函数,那么子类会先调用子类自己的构造函数,再调用父类不含参数的构造函数。
D创建子类的对象时,先调用子类自己的构造函数,然后调用父类的构造函数
10.构造方法何时被调用?()
A类定义时
B使用对象的变量时
C调用对象方法时
B abstract private move(){…}
C protected private number;
D abstract final class Hl{…}
11.下列不属于面向对象程序设计的基本特征的是:()
A抽象
B封装
C继承
D静态
12.请看下面的程序段
class Person {
Stringname,department;
19.关键字()表明一个对象或变量在初始化后不能修改。
A extends
B final
C this
Dfinalizer
20.声明为static的方法不能访问()类成员。
A超类
B子类
C非static
D用户自定义类
类的封装练习
一、判断题
1.在子类中可以用完全相同的signature重新定义一个超类方法,这称为方法的覆盖
{
public static void main(String[]args)
{
B b=new B();
b.test();
}
void test()
{
System.out.print(“A”);
}
}
class B extends A
{
27 void test()
{
super.test();
System.out.println(“B”);
A操作是对象的动态属性
B任何对象都必须有继承性
C对象间的通讯靠消息传递
D对象是属性和方法的封装体
2.编译并运行下面的程序,运行结果为:( )
public class A
{
public static void main(String[]args)
{
A a=new A();
a.method(8);
}
void method(inti)
6.在类的定义中如果不明确给出超类,那么默认超类就是Object类。()
7.protected类型的实例变量或方法只能由声明该变量或方法的类本身及其子类访问。()
8.Java的每个子类的构造函数都要显式的调用它的直接超类的构造函数。()
9.超类对象的集合通常比它的任何一个子类对象集合大。()
10.子类可以从多个超类中派生出来。()
12.同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间。()
13.类的成员变量可以放在类体的任意位置。()
14.声明为protected的类成员可以被此类作用域中的任何对象访问。()
15.没有返回值的方法可以用void来表示,也可以不加。()
二、选择题
1.下面对对象概念描述错误的是:( )
D重载就是一个类中有多个同名但不同形参和方法体的方法
8.关于构造函数的说法正确的是:()
A一个类只能有一个构造函数
B一个类可以有多个不同名的构造函数
C构造函数与类同名
D构造函数必须自己定义,不能使用父类的所有构造函数
9.下面是有关子类调用父类构造函数的描述正确的是:()
A子类定义了自己的构造函数,就不会调用父类的构造函数
二、选择题
1.为了区分重载多态中同名的不同方法,要求:()
A参数名不同
B返回值类型不同
C采用不同的形式参数列表
D选项A B C都对
2.在某个类中定义一个方法:voidGetSort(intx),以下关于能否作为这个方法的重载错
误的是:()
A voidGetSort(float x){x*=x;}
BintGetSort(double y){ return(int)(2*y); }
{
System.out.println(“int:“+i);
}
void method(longi)
{
System.out.println(“long:“+i);
}
}
A程序可以编译运行,输出结果为int:8
B程序可以编译运行,输出结果为long:8
C程序有编译错误,因为两个method()方法必须定义为静态(static)的
A al=new(); a2=new();
B al=A new(); a2=A new();
C al,a2=new A();
D al=new A(); a2=new A();
9.构造方法何时被调用?()
A类定义时
B使用对象的变量时
C调用对象方法时
D创建对象时
10.下列哪个类声明是正确的?()
A public abstract class Car{…}
intage;
public Person(String n) { name = n; }
public Person(Stringn,inta) { name = n; age = a; }
public Person(Stringn,Stringd,inta) {
//doing the same as two arguments version of constructer
public static void fun(){
//some code…
}
}
方法fun()如何来访问变量m:()
A将privateintm改成protectedintm
B将privateintm改成publicintm
C将privateintm改成staticintm
D将privateintm改成intm
(override)。()
2.final修饰的方法是不能被子类覆盖的,只能被重载。()
3.声明为final的类不能是超类。()
4.当一个超类成员不适合该子类时,子类会以恰当的方式重新定义它。()
5.对子类实例化对象需要调用超类的构造函数进行初始化工作,完成对子类中的超类实例变量的初始化,则子类可以继承超类的构造函数。()
D程序可以编译运行,但没有输出
3.下面关于类的说法不正确的是:()
A类是Java语言中的一种复合数据类型
B类中不包含数据变量和方法
C类是对所有具有一定共性的对象的抽象
D Java语言的类只支持单继承
4.能作为类及其成员的修饰符是:()
A interface
B class
C protected
D public
D创建对象时
11.如果超类不允许其通过继承的方式产生的子类访问它的某些成员,那么它必须以什么方
式声明该成员。()
A public
B private
Crotected
D stຫໍສະໝຸດ Baidutic
12.声明为final的变量不能在子类中覆盖,声明为()和()的方法是隐式的final。()
A public private
5.设x、y均为已定义的类名,下列声明对象x1的语句不可能正确的是:()
A public x xl=new y();
B public y xl=new x();
C x xl=new x();
D x xl=x();
6.面向对象程序设计技术的特点是:()
A可重用性
B可维护性
C表示方法的一致性
D可重用性、可维护性、表示方法的一致性
A终止函数
B构造函数
C重载函数
D初始化函数
14.关于变量和它们范围的说法,正确的是:()
A实例变量是类的成员变量
B实例变量要用关键字static来声明
C在一个方法执行时,定义在该方法的局部变量才被创建
D局部变量必须在它们使用前初始化
15.请看下面的程序段
class Test{
privateintm;
7.下列方法定义中,方法头不正确的是:()
A public static x(double a){…}
B public staticintx(double y){…}
C void x(double d)
D publicintx(){…}
8.设已声明了一个类A的两个对象al、a2,为了初始化a1和a2,下面语句正确的是:()
this.j=j;
}
}
classMainStrange{
public static void main(string[]args){
Strange funny=new Strange();
System.out.println(“j=“+funny.j);
}
}
A j=2
B j=4
C j=6
D j=7
6.下列说法正确的是:()
A Java中允许一个子类有多个父类
B某个类是一个类的子类,它仍有可能成为另一个类的父类
C一个父类只能有一个子类
D继承关系最多不能超过4层
7.下列说法正确的是:()
A子类只能覆盖父类的方法,而不能重载
B子类只能重载父类的方法,而不能覆盖
C子类不能定义和父类同名同形参的方法,否则,系统将不知道使用哪个方法。
C public void B(intx,inty){ a=x; b=y; c=0;}
D public B(intx,inty,intz){a=x; b=y; c=z; }
5.下列程序的结果输出为:()
class Strange{
intj;
Strange(){
this(4);
}
Strange(intj){
相关文档
最新文档