对java构造器(构造函数, 构造方法)的理解

理解构造方法

构造器即构造函数或构造方法(constructor),其本质是一个特殊的方法,用来初始化对象。构造器的名称要与类的名称一致。从而返回该类的实例。

要点:

1.通过new关键字来调用构造器,返回该类的实例。
例如: 实例化一个无参构造函数

XiyoujiRole tangseng= new XiyoujiRole();

或者实例化一个有参构造函数

XiyoujiRole wukong = new XiyoujiRole("孙悟空","金箍棒");

2. 构造器里不能有return关键字!!构造器虽然有返回值,但是不能定义返回值类型(返回值的类型肯定是本类)。
------ 注意:写return不会报错,但只起到结束语句的作用不能返回值。
3.构造函数名称与类名保持一致(包括大小写)。

public class XiyoujiRole {
    /*
         无参构造函数(构造器)
         名字保持一致 
     */
    public XiyoujiRole() {
    }
}

4.如果没有定义构造器,则编辑器会自动定义一个无参构造函数。如果已定义则编译器不会自动添加!

案例:

-----声明构造器

public class XiyoujiRole {
    //角色名
    String name;
    //武器
    String wuqi;
    //战斗力
    String zhandouli;
    //耐力
    String naili;
    
    // 无参构造函数(构造器)
    public XiyoujiRole() {
        
    }
    
    // 有参构造函数(构造器)
    public XiyoujiRole(String name, String wuqi, String zhandouli, String naili) {
        this.name = name;
        this.wuqi = wuqi;
        this.zhandouli = zhandouli;
        this.naili = naili;
    }

    //普通方法
    public void hello(){
        System.out.println("Hello"+name);
    }
}

-----调用构造器

public class TestOne{
    public static void main(String[] args) {
                //调用无参构造器
        XiyoujiRole tangseng= new XiyoujiRole();
        tangseng.name="唐僧";
        tangseng.wuqi="法杖";
        tangseng.zhandouli="**";
        tangseng.naili="*****";
        
        System.out.println(tangseng.name);
        System.out.println(tangseng.wuqi);
        System.out.println(tangseng.naili);
        System.out.println(tangseng.zhandouli);
        tangseng.hello();
        
        System.out.println("================================");
        //调用有参构造器
                XiyoujiRole wukong = new XiyoujiRole("孙悟空","金箍棒","**********","*****");
        System.out.println(wukong.name);
        System.out.println(wukong.wuqi);
        System.out.println(wukong.naili);
        System.out.println(wukong.zhandouli);
    }
}

结果:
唐僧
法杖
*****
**
Hello唐僧
================================
孙悟空
金箍棒
*****
**********

构造器的重载(创建不同用户对象)

public class XiyoujiRole {
    //角色名
    String name;
    //武器
    String wuqi;
    //战斗力
    String zhandouli;
    //耐力
    String naili;
    
    // 无参构造函数(构造器)
    public XiyoujiRole() {
        
    }
    
    // 有参构造函数(构造器)
    public XiyoujiRole(String name, String wuqi, String zhandouli, String naili) {
        this.name = name;
        this.wuqi = wuqi;
        this.zhandouli = zhandouli;
        this.naili = naili;
    }

    //普通方法
    public void hello(){
        System.out.println("Hello"+name);
    }
}

如上代码所示,构造方法也是方法,只不过有特殊的作用而已。与普通方法一样,构造方法也可以重载。
注意:
如果方法构造中形参名与属性名相同时,需要使用this关键字区分属性与形参。如上代码所示:
  this.name 表示属性name;name表示形参name

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容