min=x[i];
}
System.out.println(min);
A)125B)5C)98D)168
若inta[3][2]={{123,345},{34,56},{34,56}},则a[2][1]=__56____。
设有整型数组的定义:
“intx[][]={{12,34},{-5},{3,2,6}};”则x.length的值为(9)
第三章面向对象(上)
1.java的面向对象的特点:
封装继承多态。
P7879
java的特性中体现对数据的保护的是()
A.抽象性B.封装性
C.继承性D.多态性
java的特性中体现代码重用的是()
A.抽象性B.封装性
C.继承性D.多态性
2.几个关键字:
extendsimplementsabstractinterface
类的创建,接口,抽象类创建的写法。
所有类的父类是Object类。
Java中用 关键字定义继承(接口,抽象类 )。
Java语言中,①是所有类的根类。
1Object②Root③Thread④Applet
下面是类A的构造方法声明,其中正确的是②
1voidA(intx){...}②A(intx){...}③a(intx){...}④voida(intx){...}
下列类定义中不正确的是
3publicclassAextendsB{}②publicclassAextendsB,D{}
2publicclassAimplementsB,D{}④publicclassAextendsBimplementsC,D,E{}
下列哪个类声明是正确的()。
A.publicabstractclassCar{…}B.abstractprivatemove(){…}
C.protectedprivatenumber;D.abstractfinalclassH1{…}
请看下面的程序段
publicclassTest{
longa[]=newlong[10];
pubicstaticvoidmain(Stringargs[]){
System.out.println(a[6]);
}
}
哪一个选项是正确的()。
A.不输出任何内容B.输出0
C.当编译时有错误出现D.当运行时有错误出现
定义类A如下:
classA{
inta,b,c;
publicvoidB(intx,inty,intz){a=x;b=y;c=z;}
}
下面对方法B的重载哪些是正确的()。
A.publicvoidA(intx1,inty1,intz1){a=x1;b=y1;c=z1;}
B.publicvoidB(intx1,inty1,intz1){a=x1;b=y1;c=z1;}
C.publicvoidB(intx,inty){a=x;b=y;c=0;}
D.publicB(intx,inty,intz){a=x;b=y;c=z;}
下列方法的声明中不合法的是。
A.floatarea(){…}B.voidarea(){…}
C.area{…}D.intarea(intr){…}
下面哪一个是正确的类的声明?
A、publicvoidHH{…}B、publicclassMove(){…}
C、publicclassvoidnumber{}D、publicclassCar{…}
3.类的设计与封装(属性,方法,继承,接口,抽象类) 程序题
所谓类的封装是指在定义一个类时,将类中的属性私有化,即用private关键字来修饰,私有属性智能在它所在的类中被访问。
4. 构造方法:
方法与类名相同,方法名前面没有返回值类型,在方法中不能使用
return语句返回一个值,当创建对象时调用,可以重载。
构造函数在一个类中肯定存在,如果不定义也不会报错,会有一个默认无参数构造函数,该函数函数体为空,如自己定义则无参数构造函数就没有了。
下列关于构造方法错误的是()
A.java语言中构造方法名必须与类名相同
B.java语言中构造方法没有返回值,所以用void声明
C.java语言构造函数可以重载
D.java语言构造函数是在创建对象时自动调用。
构造函数何时被调用()
A、创建对象时B、类定义时
C、使用对象的方法时D、使用对象的属性时
以下关于构造函数的描述错误的是。
A、构造函数的返回类型只能是void型。
B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。
C、构造函数的主要作用是完成对类的对象的初始化工作。
D、一般在创建新对象时,系统会自动调用构造函数。
在Java中,关于构造方法,下列说法错误的是()
A、构造方法的名称必须与类名相同
B、构造方法可以带参数
C、构造方法不可以重载
D、构造方法绝对不能有返回值
下面是类A的构造方法声明,其中正确的是
A.voidA(intx){...}B.A(intx){...}
C.a(intx){...}D.voida(intx){...}
有一个类A,对于其构造函数的声明正确的是()。
A.voidA(intx){…}B.publicA(intx){…}
C.AA(intx){…}D.intA(intx){…}
以下关于构造函数的描述错误的是()。
A、构造函数的返回类型只能是void型。
B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。
C、构造函数的主要作用是完成对类的对象的初始化工作。
D、一般在创建新对象时,系统会自动调用构造函数。
5. static关键字(静态)
在定义一个类时,只是在描述某类事物的特征和行为,并没有产生具体的数据。
只有通过new关键字创建类的实例对象后,系统才会为对象分配空间,存储各自的数据。
有时候,我们希望某些特定的数据在内存中只有一份,而且能够被一个类的实例对象所共享。
静态变量:
Static修饰的变量被称为静态变量,静态变量被所有实例共享,可以使用类名.变量名访问。
静态方法:
有时我们希望不创建对象的情况下可以调用某给方法,也就是说方法不必和对象绑在一起。
用static修饰的方法是静态方法,可以用类名.方法名调用,也可以用实例对象访问。
在一个静态方法中只能访问用static修饰的成员,原因是没有被static修饰的成员需要先创建对象才能访问,而静态方法在被调用时可以不创建任何对象。
假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?
()
classA
{inti;
staticStrings;
voidmethod1(){}
staticvoidmethod2(){}
}
A、System.out.println(a.i);B、a.method1();
C、A.method1();D、A.method2()
下面程序中类ClassDemo中定义了一个静态变量sum,分析程序段的输出结果。
()
classClassDemo{
publicstaticintsum=1;
publicClassDemo(){
sum=sum+5;}
}
publicclassClassDemoTest{
publicstaticvoidmain(Stringargs[]){
ClassDemodemo1=newClassDemo();
ClassDemodemo2=newClassDemo();
System.out.println(demo1.sum);}
}
A.0B.6C.11D.2
请看下面的程序段
classTest{
privateintm;
publicstaticvoidfun(){
//somecode
}
}
方法fun()如何来访问变量m()
A.将privateintm改成protectedintmB.将privateintm改成publicintm
C.将privateintm改成staticintmD.将privateintm改成intm
声明为static的方法不能访问()类成员。
A.超类B.子类
C.非staticD.用户自定义类
第四章面向对象(下)
1.继承extends
只有单继承,
在Java语言中,下列关于类的继承的描述,正确的是()。
A、一个类可以继承多个父类
B、一个类可以具有多个子类
C、子类可以使用父类的所有方法
D、子类一定比父类有更多的成员方法
Java中,如果类C是类B的子类,类B是类A的子类,那么下面描述正确的是()
A、C不仅继承了B中的成员,同样也继承了A中的成员
B、C只继承了B中的成员
C、C只继承了A中的成员
D、C不能继承A或B中的成员
Java语言中对父类和子类关系描述正确的是
A.一个子类可以有多个父类一个父类也可以有多个子类
B.一个子类可以有多个父类但一个父类只可以有一个子类
C.一个子类可以有一个父类但一个父类可以有多个子类
D.上述说法都不对
有两个类定义:
classA{voidwho(){System.out.print("A");}}
classBextendsA{voidwho(){System.out.print("B");}}
则顺序执行如下语句后输出的结果为③。
Aa=newB();Bb=newB();
a.who();b.who();
①AA②AB③BB④BA
已知类关系如下:
ClassEmployee{}
ClassManagerextendsEmployee{}
ClassDirectorextendsEmployee{}
则下列语句正确的是:
()。
A.Employeee=newManager();B.Directord=newManager();
C.Directord=newEmployee();D.Managerm=newDirector();
关于Java中的继承,下列说法错误的是。
A.继承是面向对象编程的核心特征,通过继承可以更有效地组织程序结构。
B.继承使得程序员可以在原有类的基础上很快设计出一个功能更强的新类,而不必从头开始,避免了工作上的重复。
C.每一次继承时,子类都会自动拥有父类的属性和方法,同时也可以加入自己的一些特性,使得它更具体、功能更强大。
D.继承一般有多重继承和单一继承两种方式,在单一继承中每一个类最多只有一个父类,而多重继承则可以有多个父类。
Java中的类都采用多重继承。
2.Super关键字:
调用父类的方法。
编译运行下面的程序,结果是()。
publicclassA{
publicstaticvoidmain(Stringargs[]){
Bb=newB();
b.test();
}
voidtest(){
System.out.print(“A”);
}
}
classBextendsA{
voidtest(){
super.test();
System.out.print(“B”);
}
}
A.产生编译错误
B.代码可以编译运行,并输出结果:
AB
C.代码可以编译运行,但没有输出
D.编译没有错误,但会产生运行时异常
ClassParent{
VoidprintMe(){
System.out.println(“parent");
}
}
classChildextendsParent{
voidprintMe(){
System.out.println("child");
}
voidprintAll(){
super.printMe();
this.printMe();
printMe();
}
}
publicclassA{
publicstaticvoidmain(Stringargs[]){
ChildmyC=newChild();
myC.printAll();
}
}
运行结果是:
3.Final关键字可用于修饰类、变量和方法,它有“这是无法改变的”或者“最终”的含义,因此被final修饰的类、变量和方法将具有以下特性:
1、final修饰的类不能被继承。
2、final修饰的方法不能被子类重写。
3、final修饰的变量(成员变量和局部变量)是常量,只能赋值一次。
在Java中关于final关键字的说法不正确的是。
A.如果修饰变量则一旦赋了值就等同一个常量。
B.如果修饰类则该类只能被一个子类继承。
C.如果修饰方法则该方法不能在子类中被覆盖。
D.如果修饰类则该类不能被继承。
什么样的方法不能被重写。
A.私有(private)方法B.最终(final)方法
C.受保护(protected)的方法D.以上都不对
4.抽象类和接口
定义方法时不写方法体,不包含方法体的方法为抽象方法,抽象方法必须使用abstract关键字来修饰,具体示例如下:
当一个类中包含了抽象方法,该类必须使用abstract关键字来修饰,使用abstract关键字修饰的类为抽象类,具体示例如下:
如果一个抽象类中的所有方法都是抽象的,则可以将这个类用另外一种方式来定义,即接口。
在定义接口时,需要使用interface关键字来声明。
对抽象类的描述错误的是②
①必须被继承使用②方法必须被覆盖③不能实例化④用abstract修饰符修饰
下列关于接口的叙述中,④是正确的。
1接口与抽象类是相同的概念②接口之间不能有继承关系
3个类只能实现一个接口④接口中只含有抽象方法和常量
接口是Java面向对象的实现机制之一,以下说法正确的是()。
A.Java支持多重继承,一个类可以实现多个接口
B.Java只支持单重继承,一个类可以实现多个接口
C.Java只支持单重继承,一个类只可以实现一个接口
D.Java支持多重继承,但一个类只可以实现一个接口
下列有关抽象类与接口的叙述中正确的是哪一个。
A.抽象类中必须有抽象方法,接口中也必须有抽象方法
B.抽象类中可以有非抽象方法,接口中也可以有非抽象方法
C.含有抽象方法的类必须是抽象类,接口中的方法必须是抽象方法
D.抽象类中的变量定义时必须初始化,而接口中不