牛骨文教育服务平台(让学习变的简单)
博文笔记

java面试题(2)

创建时间:2017-12-20 投稿人: 鲸鱼 浏览次数:259

上次我们写了一些面试题,感觉大家阅读量挺多,很多人找我私聊,建议我多发表一些,小编今天就来和大家再分析一些题目,希望可以对大家起到帮助的作用。

一、选择题(构造函数)

1. 给出下面的代码段:

java面试题(2)

编码图片_1

在代码说明//assignment x=a,y=b 处写入哪个代码是正确的? D

A、Base(a,b); B、x=a,y=b; C、this(a),this(b); D、this(a,b);

解析:

在本类中的一个构造方法中调用另一个构造方法时,要用 this (参数) 来实现。

从题中注释掉的代码可以看出,该构造方法需要调用public Base(int a,int b){ x=a;y=b; }

这个构造方法,而这个构造方法需要两个参数,所以应该写为:this (a, b) ;

综上:所以选D

2. 下列关于构造函数的描述中,错误的是() D

A、构造函数可以设置默认的参数 B、构造函数在定义类对象时自动执行

C、构造函数可以是内联函数 D、构造函数不可以重载

解析:

构造函数(构造方法)是可以重载的,以个数、类型、顺序,所以D不正确

关键字final来指明那个函数是内联的。在所有类说明中内部定义的成员函数都是内联函数。

3. 下列说法正确的有() C

A、class中的constructor不可省略

B、constructor必须与class同名,但方法不能与class同名

C、constructor在一个对象被new时执行

D、一个class只能定义一个constructor

解析:

A、一个类中的构造方法是不能省略的。如果没有自定义的构造方法,系统会自动添加

一个无参的构造方法。

B、一个类中方法的方法名是可以和类名相同的。

D、一个类可以有多个构造方法,即方法的重载。

综上:所以选C

二、简答题(this()与super())

.super () 与this () 的区别?

答案:

this:指代对象本身,是指向本对象的一个指针;只能用在非静态方法的方法体中。

用法:

(1)一个类明确调用自己的属性和方法时,使用 this.属性名和this.方法名(通常

this会省略)。

(2)一个构造方法调用本类的其他构造方法时,使用 this(参数),且必须放在

第一行。

(3)局部变量与全局变量重名时,使用this标记全局变量。

super:指父类,是Java的一个关键字。super只能用在非静态方法的方法体中;且不能与

this同时出现在一个构造方法中。

用法:

(1)子类调用父类的构造方法,使用 super. ( [参数] ),且必须放在第一行。

(2)子类调用父类的变量和方法,使用 super. 变量名 和super. 方法名([参数])。

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。