当我们给类的一个对象的属性赋值时,我们需要通过set方法去给它赋值,相比需要写多条语句给成员变量赋值,有一种更便捷的方法去给它赋值,那就是————构造方法。
构造分为无参构造方法和有参构造方法,而常用的想要快捷赋值的就是有参构造方法。
我们创建一个对象时是这样写的:
类名 对象名 = new 类名();我们发现,类名后面是有小括号的,所以我们得知,这就是一个方法。其实就是这个类的无参构造方法。但是当我们去类中去寻找时,我们并没有发现这个方法的代码。其实,我们的类在创建时,都会默认的给每一个类创建一个不会显示的无参构造方法,但是我们需要利用有参构造方法的时候,我们需要手动去编写代码,关于构造方法还有一个机制,就是当你去编写有参构造方法的时候,系统将不会再提供构造方法,也就是只要一创建有参构造方法,系统默认提供的无参构造方法就失效了。所以,在一般情况下,无参构造方法和有参构造方法是绑定的,都会在类中书写出来。
构造方法的方法名就是类名,一个字符一个字母包括大小写都要一模一样。格式如下:
public 类名(){}//无参构造方法 //有参构造方法 public 类名(成员变量1类型 成员变量1,成员变量2类型 成员变量2,...){ this.成员变量1 = 成员变量1; this.成员变量2 = 成员变量2; ... }比如我们创建一个Person类来示例:
class 构造方法 { public static void main(String[] args) { Person luFei = new Person(); luFei.setName("路飞"); luFei.setAge (18); Person qiaoBa = new Person("乔巴",15); luFei.show(); qiaoBa.show(); } } class Person { //成员变量(类的属性) private String name; private int age; //无参构造方法 public Person(){}; //有参构造方法 public Person(String name,int age){ this.name = name; this.age = age; } //setter和getter方法 public void setName(String name){ this.name = name; } public String getName(){ return name; } public void setAge(int age){ this.age = age; } public int getAge(){ return age; } //成员方法 public void show(){ System.out.println("我的名字为:"+name+",今年"+age+"岁了"); } }运行结果:
我们再在构造方法中加入输出语句:
//无参构造方法 public Person(){ System.out.println("我是-无-参构造方法!"); }; //有参构造方法 public Person(String name,int age){ System.out.println("我是-有-参构造方法!"); this.name = name; this.age = age; }运行结果为:
这就是最标准的构造方法。