java 构造器初始化
thinking in java的一些代码:http://www.mindviewinc.com/Books/TIJ4/
构造函数的作用是在创建对象的时候初始化对象
- 构造器必须与类同名(如果一个源文件中有多个类,那么构造器必须与公共类同名)
- 每个类可以有一个以上的构造器
- 构造器可以有0个、1个或1个以上的参数
- 构造器没有返回值
- 构造器总是伴随着new操作一起调用
package init;
/**
* @author sawshaw
*对象初始化
*/
public class ObjectInit {
private int a,b;
public ObjectInit(){
//不带参数的默认构造器
System.out.println("调用了无参构造函数");
}
public ObjectInit(int i){
//带参数的初始化
System.out.println("调用了有参构造函数");
}
//对象初始化对属性赋值
public ObjectInit(int a,int b){
this.a=a;
this.b=b;
}
public static void main(String[] args) {
ObjectInit o=new ObjectInit();
o.getValue();
ObjectInit o1=new ObjectInit(6);
o1.getValue();
ObjectInit o2=new ObjectInit(6,7);
System.out.println(o2.a+","+o2.b);
}
public void getValue(){
System.out.println("====");
}
}
缺省构造器 如果已经定义了一个构造器无论是否有参还是无参,编译器不会自动为你再创建默认的无参构造器,所以如果
package init;
/**
* @author sawshaw
*对象初始化
*/
public class ObjectInit {
private int a,b;
/*public ObjectInit(){
//不带参数的默认构造器
System.out.println("调用了无参构造函数");
}*/
public ObjectInit(int i){
//带参数的初始化
System.out.println("调用了有参构造函数");
}
//对象初始化对属性赋值
public ObjectInit(int a,int b){
this.a=a;
this.b=b;
}
public static void main(String[] args) {
ObjectInit o=new ObjectInit();
o.getValue();
ObjectInit o1=new ObjectInit(6);
o1.getValue();
ObjectInit o2=new ObjectInit(6,7);
System.out.println(o2.a+","+o2.b);
}
public void getValue(){
System.out.println("====");
}
}
注释默认的构造器,那么ObjectInit o=new ObjectInit();
是会报错的,因为没有默认的无参构造器
作者: lost blog
出处: http://www.cnblogs.com/JAYIT/
关于作者:专注服务器端开发
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接 如有问题, 可邮件(sawyershaw@qq.com)咨询.