java 构造器小解

来源:互联网 发布:贵州高考录取数据 编辑:程序博客网 时间:2024/06/04 18:55
  当创建一个个对象时,系统会该对象的属性默认初始化,基本类型属性的值为0(数值类型),false(布尔类型),把所有的引用类型设置为null.

      构造器可以改变这种默认的初始化。

      构造器的作用:是创建java对象的重要途径,是不是说构造器完全负责创建java对象?????

                                答:是创建java对象的重要途径,通过new关键字调用构造器时,构造器也确实返回了该类的对象,但这个对象并不是完全由构造器负责创建的。

 

      系统调用构造器时的执行过程分析:

                            当调用构造器时,系统会为该对象分配内存空间,并对该对象进行默认的初始化,这个对象已经产生了,---------------------------------------》这些操作在构造器执行 

       之前已经完成了。也就是在构造器的执行体执行之前,系统已经创建了一个对象,只是这个对象还不能被外部程序访问,只能在构造器中,通过this引用它,当构造器的执行体结束之后,这个对象作为该构造器的返回值被返回,同时还赋给另一个引用类型的变量。从而外部程序可以访问该对象。

       个人理解:构造器作用,1.创建java对象的重要途径. 2.对系统产生的对象初始化 3.并将该对象作为返回值返回,是外部程序可以访问.

 

     一个类中构造器之间的相互调用(一个构造器调用另一个构造的初始化代码):构造器不能直接调用,必须使用new关键字调用,但是会导致系统重新创建一个对象。为了避免重新创建对象,可以使用this关键字来调用相应的构造器

     this调用另一个构造器,只能在构造器中使用,而且必须作为构造器语句的第一条语句。

    super是java提供的一个关键字,是直接父类的引用。java程序创建某个类得对象时,会隐式的创建该类的父类对象,只要有一个子类对象存在,则一定存在一个与之对应的父类对 象。

     this,super:不能出现在static修饰的方法中,static修饰的方法是属于类得,该方法的调用者是类而不是对象,也就不存在对应的对象以及父对象了,所以this,super引用就失去了意义。

    使用super调用父类构造器必须出现在子类构造器的第一行。所以this调用和super调用不会同时出现。

    子类构造器调用父类构造器的几种情况

       1.子类构造器的执行体的第一行用super显式调用父类构造器,系统将根据super 调用里传入的实例列表调用父类对应的构造器

        2.子类构造器执行体的第一行是this显式调用本类中重载的构造器,系统根据this调用里传入的实参列表调用本类中另一个构造器,执行本类中另一个构造器时,既会调用父类的构造器。

      3.子类构造器中既没有this,也没有super,系统将会在执行子类构造器之前隐式调用父类无参的构造器

不管上面哪种情况,当调用子类构造器来初始化子类对象时,父类构造器总会在子类构造器之前执行,不仅如此,执行父类构造器时,系统会再次上溯执行其父类的构造器。。。。以此类推。创建任何java对象,最先执行的总是java.lang.Object类得构造器

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 微店商品被下架怎么办 淘宝不支持花呗怎么办 淘宝误点了收货怎么办 注销公司社保户怎么办 手机媒体声音小怎么办 手机媒体没有声音怎么办 vivo开不了机怎么办 vivox5开不了机怎么办 淘宝商品出现问题怎么办 淘宝企业店新店怎么办 ps中的字体模糊怎么办 电商时代我们怎么办 电商虚假宣传怎么办 有货车找不到货源怎么办 天猫订单删除怎么办 微信支付不成功怎么办 滴滴订单未支付怎么办 在天猫买了假货怎么办 13岁有痛经怎么办 新店排名被降怎么办 淘宝店铺跳失率过大怎么办 国外打印很贵怎么办 店铺访客被拒怎么办 steam锁支付后怎么办 芦荟茎太长了怎么办 网店加盟被骗怎么办 分期乐忘记账号怎么办 贴墙纸遇到插头怎么办 用了屈臣氏过敏怎么办 商品房内电箱不符合标准怎么办 淘宝上恶意退货怎么办 退货率高了怎么办 淘宝店被关了钱怎么办 买家不申请退款怎么办 被买家恶意投诉怎么办 淘宝投诉后退款怎么办 天猫投诉不成功怎么办 苹果手机打不开流量怎么办 苹果6流量打不开怎么办 苹果笔记本电脑打不开软件怎么办 苹果软件蜂窝打不开怎么办