构造函数以及构造代码块的理解

时间:2021-05-09 23:53:17

构造函数以及构造代码块的理解


构造函数

特点:
1. 函数名与类名相同
2. 不用定义返回值类型
3. 不可以写return语句

对象一建立就会调用与之对应的构造函数
构造函数的作用:可以用于给对象进行初始化

构造函数的小细节:

当一个类中没有定义构造函数时,那么系统就会默认给该类加入一个空参数的构造函数
当在类中自定义了一个构造函数后,默认的构造函数就没有了
  • 构造函数和一般函数在写法上有不同
  • 在运行上也有不同
  • 构造函数是在对象一建立就运行。 给对象初始化
  • 而一般方法是对象调用才执行,是给对象添加对象具备的功能

  • 一个对象建立,构造函数只运行一次

  • 而一般方法可以被该对象调用多次
  • 什么时候定义构造函数呢?
  • 当分析事物时,该事物存在具备一些特性或者行为,那么将这些内容定义在构造函数中
class Person
{
private String name;
private int age;

/*
* 构造代码块
* 作用:给对象进行初始化
* 对象一建立就运行,而且优先于构造函数执行
*
* 和构造函数的区别:
* 构造代码块是给所有对象进行统一初始化
* 而构造函数是给对应的对象初始化
*
* 构造代码块中定义的是不同对象共性的初始化内容
*/

{
System.out.println("构造代码块");
cry();
}

Person()
{
System.out.println("A name = "+name+",age = "+age);
//cry();
}

Person(String n)
{
name = n;
System.out.println("B name = "+name+",age = "+age);
//cry();
}

Person(String n,int a)
{
name = n;
age = a;
System.out.println("C name = "+name+",age = "+age);
//cry();
}

public void cry()
{
System.out.println("cry.......");
}

public void setName(String n)
{
name = n;
}

public String getName()
{
return name;
}
}

public class PersonDemo2 {


public static void main(String[] args) {
Person p = new Person();

Person p1 = new Person("小鱼");

Person p2 = new Person("小虾",10);
p2.setName("小龙");
System.out.println(p2.getName());
}

}