程序员

Java对象创建的过程具体分析

作者:admin 2021-04-22 我要评论

Java对象创建过程中构造方法到底做了什么 下面展示一些 代码 。 class Person{ private String name; private int age; public Person() { } public Person(Stri...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

Java对象创建过程中构造方法到底做了什么

下面展示一些 代码

class Person{
    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

class Student extends Person{
    private String stuNo;
    private String schoolName = "唐山学院";

    public Student() {
    }
    public Student(String name, int age, String stuNo, String schoolName) {
        super(name, age);
        this.stuNo = stuNo;
        this.schoolName = schoolName;
    }
}

class Test{
    public static void main(String[] args) {
       Student student =  new Student();
    }
}

创建对象大体分为四步:
1开辟内存空间并进行初始化
2递归调用父类的创建对象过程
3初始化本类属性
4调用构造方法
在这里插入图片描述

对上面的四步进行具体分析
1.开辟内存空间并进行初始化:此时我们的student对象已经开辟了内存空间并且有一个虚地址值,此时对于初始化的理解是各个类型的默认值。
2.调用父类的构造方法
public Student() {
//super();
}
当我们调用子类的构造方法时,都会默认的调用父类的无参构造方法。(此时进入父类的构造方法,遵循上面的四步原则)。super()或者this(),只能放在构造方法的第一行。只可存在一个。
3.
在这里插入图片描述
此时进行初始化属性
4.调用构造方法中实际代码。

总结一下构造方法内部运行其实是这样的,个人认为,本人小菜鸟,只是发表一下自己的看法

这是一个构造方法
public Student() {
1.开辟内存空间
2.为成员属性进行初始化,即为成员设置默认值 0 null ‘/u0000’
3.suer()如果没有父类省略,如果有的话进入父类构造方法依旧如此执行
4.若对属性进行直接赋值 shoolName = “唐山学院” 进行此赋值操作。
5.调用,构造方法中其他语句
}

若有父类总体步骤为
父类静态方法>子类静态方法>父类初始化(默认值操作)>父类构造方法>子类初始化(默认值操作)>子类构造方法

其实是先调用子类的构造方法,但是子类构造方法并未执行完毕,就进入父类构造方法,所以其实是父类先执行完,先执行完,所以排在前面。

;原文链接:https://blog.csdn.net/weixin_44863954/article/details/115430363

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 天津智慧物联赛道明星结营丨创业不孤独

    天津智慧物联赛道明星结营丨创业不孤独

  • 阿里新零售赛道明星结业,群星集结相伴

    阿里新零售赛道明星结业,群星集结相伴

  • 教育行业优质解决方案分享【智慧校园解

    教育行业优质解决方案分享【智慧校园解

  • Excelize 2.4.0 正式版发布, 新增 152

    Excelize 2.4.0 正式版发布, 新增 152

腾讯云代理商
海外云服务器