关于构造函数你需要了解的:
1.构造器必须与类同名(如果一个源文件中有多个类,那么构造器必须与公共类同名)
2.每个类可以有一个以上的构造器
3.构造器可以有0个、1个或1个以上的参数
4.构造器没有返回值
5.构造器总是伴随着new操作一起调用
注意:
如果在类里面不声明一个构造函数,java会给该类一个默认无参构造函数,
并且该构造函数的权限是随着类的改变而改变的。
一旦声明了构造函数之后,java就不会再给该类分配默认的构造函数。
相关面试题
1. 在JAVA中,假设A有构造方法A(int a),则在类A的其他构造方法中调用该构造方法和语句格式应该为()
A. this.A(x)
B. this(x)
C. super(x)
D. A(x)
解析:答案:B
调用本类的其他重载构造器,不能使用构造器名称来调用另一个构造器,
而是应该使用Java特定的this(….)
2. 下列关于构造函数的描述正确的是( )
A. 构造函数可以声明返回类型
B. 构造函数不可以用private修饰
C. 构造函数必须与类名相同
D. 构造函数不能带参数
解析:答案:C
A. 构造函数没有返回值、
B. 单例模式就是用private来修饰构造方法的。
C.略
D. 构造函数可以重载,有参构造函数是存在的。
3. 下列说法正确的是有( )
A. class中的constructor不可省略
B. constructor必须与class同名,但方法不能与class同名
C. constructor在一个对象被new时执行
D. 一个class只能定义一个constructor
解析:答案:C
A. 可以不声明构造函数,会调用默认的构造函数
B. 普通类方法是可以与类同名,与构造函数的区别是,构造函数没有返回值
C.
D. 构造函数是可以重载的。
4. 下面的对象创建方法中哪些会调用构造方法 ()?
A. new语句创建对象
B. 调用Java.io.ObjectInputStream的readObject方法
C. java反射机制使用java.lang.Class
或java.lang.reflect.Constructor的newInstance()方法
D. 调用对象的clone()方法
解析:答案:A、C
readObject 是指从序列化文件中还原对象;
clone() 是指拷贝对象。
只有new和反射用到了构造方法