我们来看一个需求:前面我们在创建人类的对象时,是先把一个对象创建好后,再给他的年龄和姓名属性赋值,如果现在我要求,在创建人类的对象时,就直接指定这个对象的年龄和姓名,该怎么做?这时就可以使用构造器。
●基本语法
·[修饰符】方法名(形参列表){
方法体;
}
说明:
1)构造器的修饰符可以默认,也可以是public protected private2)构造器没有返回值
3)方法名和类名字必须一样
4)参数列表和成员方法一样的规则5)构造器的调用,由系统完成
public static void main(string[] args) {
Person p1 = new Person( "king",40);//第一个构造器Person p2r= new Person( "tom");//第2个构造器
}
class Person {
String name;int age;//默认0//第1个构造器
public Person(string pName,int pAge) {
name = pName;
age = pAge;
}
//第2个构造器,只指定人名,不需要指定年龄public Person(String pName)i
name = pName;
}
注意事项和使用细节
ConstructorDetail.java
1.一个类可以定义多个不同的构造器,即构造器重载
比如:我们可以再给Person类定义一个构造器,用来创建对象的时候,只指定人名.不需要指定年龄
·2.构造器名和类名要根同
3.构造器没有返回值
4.构造器是完成对象的初始化,并不是创建对象
5.在创建对象时,系统自动的调用该类的构造方法
如果程序员没有定义构造器,系统会自动给类生成一个默认无参构造器(也叫默认构造器),比如Person 0)0,使用javap指令
一旦定义了自己的构造器,默认的构造器就覆盖了,就不能再使用默认的无参构造器,除非显式的定义一下,即: Person(0
网友评论