Java构造方法学习

一、构造方法的定义与声明

构造方法的名字必须与所在类的名字一致没有返回值,并且不能使用void(直接空着就好)。访问权限可以为任意,但一般使用public权限!构造方法中的参数可以根据需要自行定义,参数不同的方法构成重载。

例子:

 class Fu
  {
    public Fu(){} //无参的公有构造方法
    public Fu(int i){} //参数类型为int的公有构造方法
    ......
  }

  public class Demo extends Fu
  {
    public Demo(){} //无参的公有构造方法
    public Demo(int i){} //参数类型为int的公有构造方法
    public Demo(int i,double d){} //参数类型为int和double的公有构造方法
    ...
  }

二、构造方法的使用

java中构造方法的使用有两个地方,一个是跟在关键字new后面,类名加上一个小括号,小括号内根据实际加上实参,另一个是跟在关键字super或者this后面加上一个();()内根据实际添加实参。

例子1:

 Demo demo = new Demo(); //这里是调用的是一个无参的构造方法,必须声明在方法中,最好声明在主方法!

上面的构造方法根据实际添加实参,jvm根据根据构造方法的参数不同加载不同的构造方法

例子2:

 public Demo(){

  this(2); //这里调用参数为int类型的本类的构造方法

 }

例子3:

 public Demo(){

  super(1); //调用参数为int类型的父类的构造方法

 }

注意:例子2和例子3中调用构造方法只能出现在构造方法中,而且必须出现在第一行,两者不能出现在同一个构造方法中。而且this和super调用构造方法时,要留构造方法出口,意思就是:最后调用的构造方法中没有再调用别的构造方法。

三、构造方法的作用

1、为了初始化成员属性,而不是初始化对象,初始化对象是根据new关键字实现的;

2、通过new调用构造方法初始化对象,编译时根据参数签名来检查构造函数,称为静态联编和编译多态;

3、创建子类对象会调用父类构造方法,但是不会创建父类对象,只是调用父类构造方法初始化父类成员属性;


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值