java 小练习

1.为了让同一个包内其它类有权访问一个类的成员,以下哪个访问控制符最适合?
A.public
B.private
C.protected
D.没有访问控制符
D

2.下面哪个方法声明可以让同一包的成员访问,而且不需要类的实例?
A.abstract public void methoda();
B.public abstract double methoda();
C.static void methoda(double d1){}
D.public native double methoda(){}
C


3.下面哪个阻止创建子类?
A.static class FooBar{}
B.private class Foobar{}
C.abstract class FooBar{}
D.final publiclass FooBar{}
D
4.面向对象的软件开发过程顺序为(  B    )。
A.OOA---OOP---OOB
B.OOA---OOD---OOP
C.OOB---OOP---OOA
D.OOA---OOB---OOP

5.Test类中存在一个无参数无返回值的方法way(),下面哪个方法能够Test.way()直接调用该方法。
A.static  void  way( )
B.public  void  way( )
C.final  void  way( )
D.abstract  void  way( )
A
6.当一个程序中含有下列语句,那个必须放在程序第一行(     )。
A.package aa;
B.import java.io.*;
C.class Exam
D.以上语句可以随意放置,没有一定的顺序
A
7.在现在的一个类设计中,其中的一些类成员变量需要保证只能够被相同的包中的其他类访问,应该用什么访问说明符?
A private
B protected
C public
D friendly

D

8.下列哪一个选项编译没有错误?
A      import java.awt.*;
       package Mypackage;
       class myclass{}

B      class myclass()
       package mypackage;

C      package mypackage;
       import java.awt.*;
       class myclass{}

D      class myclass{}
       import java.awt.*;
C
9. 定义类如下:
class A
{
int a,b,c;
public void B(int x,int y,int z)
{ a=x;b=y;c=z; }
}
下面对方法B()的重载( )是正确的?
A.public void A(int x1,int y1,int z1) {a=x;b=y;c=z;}
B.public void B(int x1,int y1,int z1) {a=x;b=y;c=z;}
C.public void B(int x,int y) {a=x;b=y;c=0;}
D.public int B(int x,int y,int z) {a=x;b=y;c=z; return a+b+c;}
 
C

10. main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的( )?
A.public static void main( )
B.public static void main( String args[] )
C.public static int main(String [] arg )
D.public void main(String arg[] )

 b

11. 对于构造函数,下列叙述不正确的是( )。
A.构造函数是类的一种特殊函数,它的方法名必须与类名相同。
B.构造函数的返回类型只能是Stirng型。
C.构造函数的主要作用是完成对类的对象的初始化工作。
D.一般在创建新对象时,系统会自动调用构造函数。
 
b
12. 用于定义基本数据类型的一组关键字是( )。

A.Student,float,main,public
B.byte,boolean,int,float
C.long,extends,float,double
D.class,float,short,import
 
b
13

{
1. class Super
2. {
3.     public float getNum(){return 3.0f;}
4. }
5. public class Su extends Super
6. {
7.
8. }

下面的哪个方法放在第 7 行将引起编译错误?
}
A.public float getNum(){return 4.0f;}
B.public void getNum(){}
C.public void getNum(double d){}
D.public double getNum(float d){return 4.0d;}
b
14.{
class EnclosingOne
{
 public class InsideOne{}
}
public class InnerTest
{
 public static void main(String args[])
 {
  EnclosingOne eo=new EnclosingOne();
  //在这插入代码
 }
}
应将哪行代码插入代码块中?
}
A.InsideOne ei=eo.new InsideOne();
B.eo.InsideOne ei=eo.new InsideOne();
C.InsideOne ei=EnclosingOne.new InsideOne();
D.InsideOne ei=eo.new InsideOne();
E.EnclosingOne.InsideOne ei=eo.new InsideOne();
e

15.{
class A{
public int getNumber(int a){
return a+1;
}
}
class B extends A{
7)  public int getNumber(int a, char c){
return a+2;
}
public static void main(String[] args){
B b=new B();
12)   System.out.println(b.getNumber(0));
}
}
上面代码的结果是什么?
}
A.编译成功,打印出 1
B.编译成功,打印出 2
C.第 7 行出现编译错误
D.第 12 行出现编译错误


16.{
class Super{
public int i=0;
public Super(String text){
i=1;
}
}
public class Sub extends Super{
public Sub(String text){
i=2;
}
public static void main(String args[]){
Sub sub=new Sub("Hello");
System.out.println(sub.i);
}
}
结果是什么?
}
A.编译失败
B.编译成功,打印出"0"
C.编译成功,打印出"1"
D.编译成功,打印出"2"
a

17.关于匿名内部类,下面哪个是正确的?
A.匿名内部类可以声明为 final 的
B.匿名内部类可以声明为 private 的
C.一个匿名内部类可以实现多(一)接口。
D.一个匿名内部类可以访问任何范围的 final 变量。
d
18.{
定义类B和类C如下,并将其保存为C.java,编译C.java文件,得到的结果是(   )。
class B
{  int b;
   B(int i)
   { b=i;}
}
public class C extends B
{  double c=7.8; }

A.代码能够成功编译并运行
B.代码无法编译,因为类B不是一个应用程序活小程序
C.代码无法编译,因为类B没有定义不带参数的构造函数
D.代码无法编译,因为类C没有定义不带参数的构造函数

c
19.设有类B和类C都不是抽象类,且类B是类C的父类。下列声明对象x1的语句中不正确的是(    )。
A.B x1=new B()
B.B x1=new C()
C.C x1=new C()
D.C x1=new B()
d
20.调用父类构造函数super()调用位置应该放到(    )?
A.子类构造函数的第一句
B.子类构造函数的第二句
C.子类构造函数的第三句
D.子类构造函数的最后一句

a

21.{
定义两个类如下,如果编译类B和类C时,得到的结果是( )。
abstract class B 
{
   abstract void show();
}
abstract class C extends B{}
}
A.类B和类C都可成功地编译
B.类B和类C都不能编译
C.类B可以编译,类C不能编译
D.类C可以编译,类B不能编译

a
22.{
给定如下代码:
class Person
{
   String name, department;
 int age;
 public Person(String n){ name = n; }
 public Person(String n, int a){ name = n; age = a; }
 public Person(String n, String d, int a)
 {
                  //调用第二个构造函数
  department = d;
 }
}
要在第三个构造函数的注释处填上一行代码使之能够调用第二个构造函数,这行代码应该是(     )。
}
A.Person(n,a);
B.this(Person(n,a));
C.this(n,a);
D.super(n,a);
C

23.{
public class Parent {
     int change() {…}
   }
   class Child extends Parent {
  
   }
下面那个方法可以被加入到Child类中?
}
A.public int change(){}
B.abstract int change(){}
C.private int change(){}
D.public void change(){}
A

多选


1.下面哪两个声明可以阻止方法重写?ad
A.final void method a(){}
B.void final method a(){}
C.static void method a(){}
D.static final void method a(){}


2.下面关于类的封装的描述,哪两个是正确的?cd
A.成员变量没有访问控制符。
B.成员变量可以直接访问。
C.成员变量的访问控制符有private
D.提供方法对数据进行访问和修改


3.定义一个类Point,类中有两个double型变量x和y,对于其构造函数的声明正确的是(    )。
A.Point Point(int x) {…}
B.public Point(int x) {…}
C.public Point(int x,int y) {…}
D.public Point(Point p) {…}
编号:625
答案:B,C,D
题型:多选
分数:3
难度:1

4.关于变量的初始化赋值,以下说法正确的是(b cd   )。
A.不管是类中的变量还是方法体中的局部变量,它们都能自动地初始化为默认值,在使用这些变量之前可以不赋值
B.类中变量的赋值可以通过构造函数来完成
C.如果类中不编写构造函数,编译时将会自动生成类的默认的不含参数的构造函数,调用该构造函数初始化类对象时,将变量初始化为该类型的默认值(如果类中没有为其赋值)
D.方法体中的局部变量必须先赋值后才能使用


5.{
在下面的指定位置添加(     )选项中定义的方法,编译时不会产生错误。
class B
{
 float x=1.0f;
     public float getNum()
 {
              return x; 
           }
           //此处添加选项中的方法
}
}
A.public float getNum(int y)
{
   return x+y;
}

B.public double getNum(float d)
{
   return x+d;
}

C.public int getNum(double d)
{
   return (int)(x+d);
}

D.public double getNum()
{
   return x+10.0f;
}
abc

6.定义主类的类头时可以使用的关键字是(  abc    )。
A.abstract
B.final
C.public
D.super


7.若有以下类声明:public class  A extends B implemets C,D {} 下面的说法正确的是(bcd     )。
A.这个类的声明是错误的
B.类A继承自父类B
C.C和D是接口,类头的定义表明类A实现接C和D
D.关键字extends指明类的继承关系


8.以下关于构造函数及其重载的说法正确的是(  abc  )。
A.类定义了构造函数,java就不会自动为该类创建默认的不带参数的构造函数
B.构造函数不能对私有变量初始化
C.一个类中可以含有几个构造函数,称为构造函数的重载。对于重载的构造函数,其参数列表必须不同
D.重载的构造函数之间可以通过关键字this在构造函数中的任意位置相互调用


9.以下关于Java的使用访问修饰符说法正确的是(acd  )。
A.当一个类的变量声明为protected时,同包中的任何其他类能够访问它
B.当一个类的变量声明为private时,同包中的任何其他类能够访问它
C.当一个类的变量声明为public时,不同包中的他类能够访问它
D.当一个类的变量声明为protected时,不同包中的子类可以访问该变量


10.面向对象程序设计的三大特征是( bcd   )。
A.抽象
B.封装
C.继承
D.多态

11.在Java中,下列说法正确的是(  abc )。
A.如果final修饰变量,则一旦赋值,就等同一个常量
B.如果final修饰类,则该类不能被子类继承
C.如果final修饰方法,则该方法不能在子类中被覆盖
D.如果final修饰方法,则该方法所在的类不能被继承

12.{
有如下接口定义,合法的是( b d  )。
public interface test
{
 //方法添加处
}
}
A.private String justtest();
B.public String justtest();
C.protect String justtest();
D.String justtest();


13{
public class MethodOver{
 public void setVar(int a, int b, float c){}
}
以下哪些重载了setVar 方法?
}
A.private void setVar(int a, float c, int b){}
B.protected void setVar(int a, int b, float c){}
C.public int setVar(int a, float c, int b){return a;}
D.public int setVar(int a, float c){return a;}
acd

 

14.下面哪个是对的?
A.静态的内部类需要一个静态的初始化方法
B.一个静态的内部类需要一个外部类的实例来调用
C.一个静态的内部类不需要外部类的实例来调用
D.一个静态的内部类的静态成员可以用静态类的类名来调用。

cd

 

 

 

 


 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值