关于Java中构造方法的问题以及回答

构造方法

概念

  又叫 构造器,区分于传统的方法,是一个在创建对象时被系统自动调用的特殊方法

作用:

  一:为对象进行初始化(成员变量)的工作

  二:为对象在堆内存中开辟独立的内存空间

定义格式:

  访问修饰符    方法名(){

    }

用法:

  只能通过new关键字进行调用

person{
  public person(){
    }  
}
//代码测试
public static void main(String [] args){
     person per = new person();      
}

注意事项:

一:方法名必须和类名保持一致

二:当一个类中没有定义构造方法时,系统会自动加载一个无参的构造方法

//一:不写构造方法,系统默认加载构造方法
Construction con = new Construction();
con.eat();

运行结果如下:
我是:null,今年:0岁,喜欢吃拉面

三:如果用户重新定义了一个构造方法,那么Java提供的无参的构造方法会默认覆盖

/**
 * 构造方法: 重写构造方法,初始化成员变量
 */
public Construction(){
    username = "鸣人";
    garder = 19;
}
//一:重写构造方法,初始化成员变量
Construction con = new Construction();
con.eat();
运行结果:
我是:鸣人,今年:19岁,喜欢吃拉面

四:返回值问题

构造方法又叫构造器,不能把它等同于普通方法去对比,什么意思呢?

就是,普通方法有返回值类型,有return语句,有访问修饰符,但是构造方法从本质上就不是普通方法

构造方法:没有返回值类型,void也不能加

     没有返回值,但是有运行结果,运行结果就是创建一个对象,所以在构造方法内不能调用return。

       访问修饰符,只能是public,不能是其他的访问修饰符。

五:构造方法之间可以使用 this() 相互调用 但是 this() 必须是构造方法内容的第一行  如果有参数 传入相应的参数

/**
     * 构造方法:无参
     */
    public Construction(){
        this("佐助",19);
//        username = "鸣人";
//        garder = 18;
    }

Construction con = new Construction();
con.eat();
运行结果:
我是:佐助,今年:19岁,喜欢吃拉面

六:当参数列表的参数名和成员变量同名时  要使用this.区分成员变量和 局部变量

/**
 * 构造方法:有参
 * @param username:用户姓名
 * @param garder:用户年龄
 */
public  Construction(String username,int garder){
    this.username = username;
    this.garder = garder;
}
//一:重写构造方法,初始化成员变量
Construction con = new Construction("鸣人",19);
con.eat();
运行结果:
我是:鸣人,今年:19岁,喜欢吃拉面

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值