构造器的特征
它具有与类相同的名称
它不声明返回值类型。(与声明void不同)
不能被static、final、synchronized、abstract、native修饰,不能有return语句返回值
构造器的作用
如:
Order o = new Order();
Person p = new Person(Peter,15);
如同我们规定每个“人”一出生就必须先洗澡,我们就可以在“人”的构造方法中加入“洗澡”的代码程序,于是每个“人”一出生就会自动完成洗澡,
程序就不必再在每个人刚出生时一个一个告诉他们要“洗澡”了。
构造器(constructor 构造方法)
ps:构造方法和之前的方法完全不是一回事,没有任何关系。
constructor:建造者
作用:创建对象
Person p1 = new Person(); //Person() 为构造器(每个类都会自动生成一个空参构造器)
PS:之前说对象创建的时候,没new出一个类,类就会初始化,初始化的原因就在于构造器,如果用默认提供的空参构造器的话,
类中的属性初始化就会为null、""(空)、或者为0等,就是属性的默认赋值。
那么也就是说如果在构造器中加入参数,那么初始化的值则不再为属性的默认赋值,而是传入的参数。
和方法一样,在写有参数的构造的时候括号内的参数为形参,构造器内容会描述如何调用参数。
在创建对象进行使用的时候加入的是实参,实参则是new出来的对象属性初始化的值。
EG:
String str = new String("com.wangce");
System.out.println(str);
new出一个String对象str,调用了其中一个构造器,构造器内写入的实参就是str初始化的值。所以打印str为:com.wangce
作用:给创建的对象的属性赋值(初始化对象的属性)
1、设计类时,若不显示声明类的构造器的话,程序会默认提供一个空参构造器。
PS:类是抽象的,如果你要想他能够执行一个程序,我们需要造对象,从类到对象是必须的,那么构造器也就是必须的。
PPS:记住抽象的意义:是对实体的描写,就是一个设计图纸,还没有生成。也就是说类如果想生成对象,必须需要构造器。
2、一旦 显示的 定义类的构造器,那么默认的构造器不再提供。
EG:person p = new person();
这是在testPersons类中声明person类,通过空参创建了一个p对象。
而一旦person类中定义了一个构造器,那么空参构造器就会自动失效,那么上面通过空参创建的类也会报错。如果还想用空参创建类
就必须再定义一个空参。
public person(String n){
name = n;
}
PS:此构造器形参定义了一个String类型的参数,使用这个构造器的时候传入一个String类型的参数,那么person类中的name属性就会被
传入的String 类型参数赋值。
String ss ="ss";
Person p2 = new Person(ss);
System.out.println(p2.getName());//输出为ss。
或者 Person p2 = new Person("ss");
System.out.println(p2.getName());//输出为ss。
如何声明类的构造器:格式,权限修饰符 类名(形参)
public person(){}
PS:必须是类名。形参就是给类的属性赋值的。
类的多个构造器之间构成重载。