Java: constructor 构造代码块

  • 构造器与类同名
  • 每个类可以有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 }
原文地址:https://www.cnblogs.com/siyingcheng/p/4249187.html