Java小白的周考——第二周

单选题

  1. 以下定义数组的方式错误的是()
    A. int[] arr = new int[];
    B. int[] arr = new int[]{1,2,3};
    C. int[][] arr = new int[3][];
    D. int[] arr = {1,2,3};

答案:A
创建一个数组的时候需要对数组进行初始化,定义其长度或者内容
int[] arr = new int[3];


  1. 下列哪个方法与如下方法不构成方法的重载:()
    public void test(int a) {}
    A. public void test() {}
    B.public void test(int a,int b) {}
    C. public int test(int a) {}
    D. public void test(float a) {}

答案:C
重载的定义:同一个类中,方法名相同,形参的类型、个数、排列顺序不同时会放生方法的重载。
C选项不同的是返回值,但是返回值并不能影响方法重载

  1. 实现继承关键字
    A. this
    B. extends
    C. super
    D.extend

答案:B
继承的写法:修饰符 class 子类名 extends 父类名(){};


  1. 在创建对象时必须()
    A. 先声明对象,然后才能使用对象 
    B. 先声明对象,为对象分配内存空间,然后才能使用对象 
    C. 先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象
    D. 上述说法都对

答案:C
对象的声明方式:类名 引用名 = new 类类名();
当一个对象被创建时,虚拟机就会为其分配内存来存放对象自己的实例变量及其从父类继承过来的实例变量(即使这些从超类继承过来的实例变量有可能被隐藏也会被分配空间)。
在为这些实例变量分配内存的同时,这些实例变量也会被赋予默认值(零值)。
在内存分配完成之后,Java虚拟机就会开始对新创建的对象按照程序猿的意志进行初始化。
在Java对象初始化过程中,主要涉及三种执行对象初始化的结构,分别是== 实例变量初始化、实例代码块初始化 以及 构造函数初始化==。


  1. 对Java类描述正确的是
    A.一个子类可以有多个父类,一个父类也可以有多个子类
    B. 一个子类可以有多个父类,但一个父类只可以有一个子类
    C. 一个子类可以有一个父类,但一个父类可以有多个子类 
    D. 上述说法都不对

答案:C
Java类只支持单向继承,每个子类只能继承一个父类,而父类可以有多个子类


  1. 下面代码输出结果是什么
class A{
	public void test() {
  		System.out.print("A");
 	}
}
class B extends A{
 	@Override
 	public void test() {
  		System.out.print("B");
 	}
}
class C{
 	public static void main(String[] args) {
  		A t = new B();
  		t.test();
 	}
}

A. A
B. B
C. BA
D.AB


答案:B
B继承A 并且重写了test方法,在C中执行的时候会取执行B中重写后的代码,所以结果是"B";


  1. 如下代码输出的是什么?
public class Example {
 
 	public  void test(String str) {
   		str = "中软";
   		System.out.print(str); 
 	}
 	public static void main(String[] args) {
  		String str = "你好";
  		new Example().test(str);
  		System.out.print(str); 
 	}
}

A. 编译失败
B. 你好中软
C. 中软你好
D. 中软中软


答案:C
在Example中main方法里面定义了一个字符串的变量str,然后执行test方法并把str传入,test方法接收一个形参 str 并对这个ser进行赋值操作str = “中软”; 所以test方法打印的是“中软”,之后再去main方法,由于main里面有str变量并且是实参,所以打印“你好”,最终结果是“中软你好”’


  1. 关于继承说法错误的是
    A. 子类可以继承父类所有的成员变量和成员方法
    B. 子类可以重写父类的公共方法
    C. 当一个类没有显式声明继承类,默认继承Object类
    D. 以上说法都错误

答案:A
子类只能继承公共的成员变量和方法


  1. 如下代码输出结果是什么?
public class Exam{
 int  num = 10;
 
 public   void test() {
  num++;
  System.out.println(num);
 }
 public static void main(String[] args) {
  
  Exam e1 =  new Exam();
  e1.test();
  Exam e2 =  new Exam();
  e2.test();
 }
}

A. 10 10
B. 10 11
C. 11 12
D. 11 11


答案:D
函数中定义了两个对象 e1和e2分别执行test方法,
先是num++;=> num = 11;因为声明了两个对象所以num的运算不会互相影响,所以e1.test()和e2.test()打印的都是11


  1. 在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为()
    A. 封装
    B. 覆盖
    C. 重载
    D. 重写

答案:C
重载的定义


  1. 以下关于构造函数的描述错误的是()
    A. 构造函数的返回类型只能是void型。 
    B. 构造函数是类的一种特殊函数,它的方法名必须与类名相同。 
    C. 构造函数的主要作用是完成对类的对象的初始化工作。
    D. 一般在创建新对象时,系统会自动调用构造函数

答案:A
构造函数必须与类名相同且没有返回值,void是空返回值并不是无返回值所以A是错的


  1. 有以下方法的定义,请选择该方法的返回类型()
ReturnType  method(byte x,double y){   
  return  (short)x/y*2;}

A. byte
B. short
C. double
D. int


答案:C
高精度数据和低精度数据进行运算会自动转换成高精度,(short)只是强转了x的类型


  1. A派生出子类B类,B类派生出子类C类,并且在Java源代码中有如下声明:
A a0 = new A();
A a1= new  B();
A a2 = new C();

问以下哪个说法正确()
A. 只有第一行可以编译通过
B. 第1,2行编译通过,但是第3行编译失败
C. 第1,2,3行编译通过,但是第2,3行运行时出错
D. 第1,2,3行声明都是在正确的


答案:D
C、B、A之间是继承关系A又是层次最高的所以以上的声明都是正确的


多选题

  1. 以下哪些是类的访问控制符()
    A. public
    B. 缺省
    C. protected
    D. private

答案:AB
只有AB都类的访问控制符 CD是修饰成员的


判断题

  1. package语句必须作为Java源文件的第一条语句
  • 正确,每个package必须放在所有代码的最前面,多级目录的用点分隔开

  1. 数组可以使用数组名.length()方法可以得到数组长度
  • 错,使用arr.length属性而不是方法

  1. java中类之间只支持单继承,并且继承是单方向的
  • 是,概念

  1. 构造方法不能被重写,也不能被继承
  • 对 , 构造方法不能被继承,就不会有重写

  1. 父类构造如果出现问题并不影响子类对象的创建
  • 错 , 子类被实例化的时候会先调用父类的构造函数,如果父类的构造函数报错那么一定会影响到子类

问答题

  1. 介绍Java中的访问控制符及其作用域范围
  • private:只能在同一个类中访问
  • 无:在同一个类、同一个包的子类和同一个包中的无关类
  • protected:同一个类、不同包的子类
  • public:不受限制,本类或者非本类 跨包都可以访问

  1. 什么是方法的重载?需要遵循什么规则?

在同一个类中,出现多个同名方法,且参数的类型、数量、参数顺序不同就叫做方法重载。
规则: 同一个类 方法名相同 参数的类型 数量 顺序不同

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值