1-1
局部变量可以与成员变量重名。
正确答案:T
解释:
局部变量可以和成员变量重名,通常,为了区分局部变量和成员变量,会使用this关键字(C++称this指针,python是self关键字)来特别声明该变量是某对象的成员变量。
1-2
实例变量是属于对象的。一个类的多个对象对实例变量可以设置不同的值。
正确答案:T
解释:当然正确,实例变量是属于对象的,每个对象都有其自己的实例变量副本。这意味着,一个类的多个对象可以对实例变量设置不同的值。比如一个Student类可以实例化一个stu1和一个stu2对象,这两个对象可以设置不同的值。
1-3
用static修饰的变量是类变量。
正确答案:T
解释:用static修饰的变量是类变量(又称类的静态成员),意味着这个变量是属于整个类的,而不是属于某个类的实例对象的。也就是说,无论创建了多少个类的实例对象,这个变量在内存中只有一份,被所有实例对象共享。可以通过类名直接访问这个变量,而不需要先创建实例对象。
1-4
如果一个成员变量被修饰为final的,就是常量,常量必须赋给初值,而且不能再发生变化。
正确答案:T
解释:是的,成员变量被final修饰,意味该变量不被允许更改,被视作常量,且必须赋予初值。
看示例代码:
1-5
如果在子类的构造方法中,没有使用关键字super调用父类的某个构造方法,那么默认有super();语句,即调用父类的不带参数的构造方法。
正确答案:T
解释:是的,在子类的构造方法中如果不主动写super关键字,一定会隐含一个super()调用父类的无参构造方法。
看示例代码:
1-6
一个Java类可以有多个父类。
正确答案:F
解释:错误的,Java类只允许单继承,任何一个子类只能有一个父类,但父类可有多个子类继承;
但是接口可以继承多个接口,并且接口只允许继承接口而不允许继承类
1-7
package语句必须放到java程序的最开始。
正确答案:T
解释:是的,package语句必须放到java程序的最开始,
另外,import语句用于导入其他包中的类,它可以放在package语句之后,class语句之前。
1-8
一个类的非静态方法可以访问静态成员变量。
正确答案:T
解释:是的,类的非静态方法可以访问静态成员变量,
相反的,类的静态方法只允许访问静态成员!
1-9
一个类的静态方法不可以访问该类的非静态成员变量。
正确答案:T
解释:是的,类的静态方法只可以访问静态成员变量,
相反的,类的非静态方法允许访问静态成员。
1-8和1-9看示例代码:
1-10
Java中类和方法都不允许嵌套定义。
正确答案:F
解释:错误,类是可以嵌套定义的,详细见Java内部类知识点->传送门
Java中的方法嵌套则是不允许的,可见本篇详解->传送门
1-11
构造函数名应与类名相同,返回类型为void。
正确答案:F
解释:错误,构造函数名应与类名相同,前半句十分正确,但构造函数不需要返回值也没有任何返回类型,而void是空类型。
看代码示例:
1-12
类也是一种数据类型(type)。
正确答案:T
解释:正确,类的实质是一种引用数据类型,可以用类去实例化一个对象。
1-13
对象是类的实例(instance)。
正确答案:T
解释:正确,太简单,不解释。
1-14
在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型有父类子类关系,此时应该将父类放在前面,子类放在后面。
正确答案:F
解释:错误,try中的代码可能产生多种异常则可以对应多个catch语句正确,但后半句,若catch中的参数类型有父类子类关系,此时应该将子类放在前面,父类放在后面(可巧记为父亲永远是孩子坚实的后盾???)。
看示例代码:其中,ArithmeticException(算术异常)是Exception(异常)的子类
catch(ArithmeticException ae) 和 catch(Exception e) 的位置调换,则程序报错,因为Exception e 是 ArithmeticException ae 的父类。若子父类在子类的前面,抛出的异常已经被父类处理了,后面的子类就不能接收到异常。
1-15
在异常处理中,有try语句就必须出现catch语句。
正确答案:F
解释:错误,try语句后面不是非要跟catch,也可以跟finally,也可以两个都跟,但catch或finally至少要跟一个!
1-16
Java语言中的所有异常类都是java.lang.Throwable的子类。
正确答案:T
解释:硬记吧,不解释。
1-17
声明异常的关键字是throws,抛出异常的关键字是throw。
正确答案:T
解释:不好解释,但有巧记,声明的“声”拼音的sheng,开头是's'所以对应throws,另一个抛出就是throw了,而throw用于自定义异常类。
有关异常类的知识点详见本篇->传送门
看示例:
1-18
定义类的方法时,形式参数是基本数据类型,为值传递;形式参数是一个引用数据类型,为地址传递。
正确答案:T
解释:很正确的基本概念,不好解释。
这里的引用数据类型的形式参数,可以理解为C语言的指针变量,都是地址传递。
1-19
Java中,测试类(主类)中可以有多个main方法。
正确答案:T
解释:很坑的一道题,以C或C++为母语的童鞋一定会先入为主的认为“main函数只能有一个”,但Java的一个类里面就是可以存在多个main方法!
看示例代码:3个main一点不影响,但程序运行起来一定是只执行参数为String[] args的那个main
1-20
final类不能派生子类,final方法不能被覆盖。
正确答案:T
解释:正确,final修饰的类,一定是最终类,其中不允许存在抽象方法,不允许被继承,其中的方法都是最终方法,不允许被重写。
final关键字详解见本篇标题七->传送门