构造函数和构造代码块
1、特点:
函数名和类型相同
不用定义返回值类型
不可以写return语句
2、作用:
给对象进行初始化。
当一个类中没有定义构造函数是,呢么系统会默认给该类加入一个空参数的构造函数。
当在类中自定义了构造函数后,默认的构造函数就没有了。
3、构造函数与一般方法在格式上有不同
4、构造函数与一般方法运行的不同
构造函数在对象一建立就运行,给对象 初始化。
而一般方法是对象调用才执行,给对象添加对象具备的功能
一个对象建立,构造函数运行一次;而一般方法可以被对象调用多次。
构造函数可以调用同一个类中的其他一般方法(函数),当构造函数之间星湖调用时需要使用this指针实现。
5、什么时候定义构造函数
当分析事物时,给食物存在具备一些特性或者行为,那么将这些内容定义在构造函数中。
6、构造代码块
作用:给对象进行初始化,对象一建立就运行,而且优先于构造函数执行
和构造函数的区别:构造代码块是给所有的对象进行统一初始化;而构造函数是给对应的对象初始化。
构造代码块中定义的是不同对象共性的初始化内容。
重点:把构造函数中的共性定义在构造代码块中
class Person
{
private String name;
private int age;
//构造代码块
{
cry();
}
Person()
{
System.out.println("A:name="+name+",age="+age);//对象一建立就会调用预支对应的构造函数
//cry();
}
Person(String n)
{
name = n;
System.out.println("A: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 name)
{
name = n;
}
public String getName()
{
return name
}
}
class PersonDemo2
{
public static void main(String[] args)
{
Person p1 = new Person();
Person p2 = new Person("Lisi");
Person p3 = new Person("wangwu",10)
}
}