- 构造器与类同名
- 每个类可以有1一个以上的构造器
- 构造器可以有0个,1个或者多个参数
- 构造器没有返回值,不可以写return
- 构造器总是伴随着new操作一起调用
构造函数的作用:可以用于给对象进行初始化。
构造函数的小细节:当类中没有定义构造函数时,系统会默认给该类提供一个空参数的构造函数;
什么时候定义构造函数:当分析事物时,该事物存在具备一些特性或者行为,那么就将这些内容定义在构造函数中。
另:不要在构造器中定义与实例域重名的局部变量
class PersonDemo2 { public static void main(String[] args) { Person p1 = new Person(); Person p2 = new Person("Siyingcheng"); Person p3 = new Person("Amy.Cao",27); } } class Person { private String name; private int age; Person() { System.out.println("Name=" + name + ", Age=" + age); } Person(String n) { name = n; System.out.println("Name=" + name + ", Age=" + age); } Person(String n, int a) { name = n; age = a; System.out.println("Name=" + name + ", Age=" + age); }
public void setName(String n)
{
name = n;
}
public String getName()
{
return name;
}
}
构造代码块:
作用:给对象进行初始化,一般用于所有对象共性的内容进行初始化
构造代码块优先于构造函数执行;
构造代码块是给所有对象进行初始化,而构造函数是给对应的对象进行初始化;
1 class PersonDemo2 2 { 3 public static void main(String[] args) 4 { 5 Person p1 = new Person(); 6 7 Person p2 = new Person("Siyingcheng"); 8 9 Person p3 = new Person("Amy.Cao",27); 10 } 11 } 12 13 class Person 14 { 15 private String name; 16 private int age; 17 18 { 19 cry(); 20 } 21 22 public static void cry() 23 { 24 System.out.println("孩子哭了"); 25 } 26 27 Person() 28 { 29 System.out.println("Name=" + name + ", Age=" + age); 30 } 31 Person(String n) 32 { 33 name = n; 34 System.out.println("Name=" + name + ", Age=" + age); 35 } 36 Person(String n, int a) 37 { 38 name = n; 39 age = a; 40 System.out.println("Name=" + name + ", Age=" + age); 41 } 42 }