一、为什么要使用构造方法?
在创建对象时就可以对primary变量赋值,不用再定义get、set方法,减少了代码量,提高效率。
二、构造方法的定义
构造方法(也被称为构造器)是类的一个特殊成员,它会在类实例化对象中时被自动调用。
三、构造方法的定义格式?
1、定义格式:
权限修饰符(一般为public) 方法名(){
方法体;
}
2、注意事项:
*方法名和类名要保持一致;
*构造方法没有返回值类型,没有void;
*构造方法中不能写return语句;
*如果我们没有写任何构造方法,系统会默认提供一个无参的构造方法,供我们创建对象使用;
*如果我们写了一个构造方法,那么系统就不会再自动提供一个默认的无参构造方法了。所以,在创建构造方法时,最好有参的和无参的方法一起构造出来。
*构造方法分为有参和无参两种。
四、具体操作
在Person类中,构造姓名和年龄方法
1、在没有使用构造方法的情况下:
package cn.whsw.jsjx;
public class Person {
//定义成员变量
private String name;
private int age;
//为成员变量进行赋值
public void setName(String n){
name=n;
}
public String getName(){
return name;
}
public void setAge(int a){
age=a;
}
public int getAge(){
return age;
}
public void print(){
System.out.println("姓名:"+name+",年龄:"+age);
}
}
package cn.whsw.jsjx;
public class TestPerson {
public static void main(String[] args){
Person p=new Person();
p.setAge(20);
p.setName("张三");
p.print();
}
}
结果:姓名:张三,年龄:20
2、使用构造函数解决
package cn.whsw.jsjx;
public class Person {
//定义成员变量
private String name;
private int age;
//构造方法
public Person(){
}
public Person(String n,int a){
name=n;
age=a;
System.out.println("调用了有参的构造方法");
}
public void print(){
System.out.println("姓名:"+name+",年龄:"+age);
}
}
package cn.whsw.jsjx;
public class TestPerson {
public static void main(String[] args){
Person p=new Person("张三",20);
p.print();
}
}
结果:
调用了有参的构造方法
姓名:张三,年龄:20