当我们给类的一个对象的属性赋值时,我们需要通过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;
}
运行结果为:
这就是最标准的构造方法。