• this、static、super、final关键字


    创建对象分为四步:

    1.分配对象空间,并将对象成员变量初始化为0或非空

    2.执行属性值的显式初始化

    3.执行构造方法

    4.返回对象的地址给相关变量

    this关键字:

    this的本质是“创建好的对象的地址”,在构造方法中使用this代表“当前对象”。

    this最常见的用法:

    1.在程序产生二义性之处,应用this指明当前对象;普通方法中,this总是指向调用该方法的对象。构造方法中,this总是指向正要初始化的对象。

    2.使用this关键字调用重载的构造方法,避免相同的初始化代码。但只能在构造方法中使用,并且必须位于构造方法的第一句。

    测试实例:

    3.this不能用于static方法中。  结合之前文章的内存分析图

    如果在study写this.id;在对象中会很容易找到id变量,如果在方法区中使用this,因为存储的是类信息而不是对象,所以找不到,在static方法中不能调用this。

    static关键字:

    在类中,用static声明的变量是静态成员变量,也称类变量。类变量的生命周期和类相同,在整个应用程序执行周期内都有效。

    static修饰的成员变量和方法,从属于类;普通变量和方法从属于对象。

    内存分析:

    静态初始化块构造方法用于对象的初始化!静态初始化块,用于类的初始化操作!在静态初始化块中不能直接访问非static成员。

    注意事项(学完继承再来看这里):1.上溯到Object类,先执行Object的静态初始化块,再向下执行子类的静态初始化块,直到目标类的静态初始化块为止。

    2.构造方法执行顺序和上面顺序一样。

     super关键字: 是直接父类对象的引用。可以通过super来访问被子类覆盖的方法和属性。

    构造器的第一行代码没有显式的调用super( )或者this( ),那么java默认调用super(),含义是调用父类的无参数构造方法,super( )可以省略。

     

     

    final关键字:1.修饰变量:被修饰的变量不可改变,一旦赋了初值,不能被该变

    2.修饰方法:该方法不可被子类重写,但是可以被重载

    3.修饰类:被修饰的类不能被继承,如String类,Math类

  • 相关阅读:
    Git 最新版本2.20.1 安装及配置
    Python中:ModuleNotFoundError: No module named 'alipay'
    Python调用time模块设置当前时间-指定时间
    python 正则表达式
    pwntools出现的一些问题
    strace监视系统调用
    深入理解Linux内核 学习笔记(8)
    ubuntu 查看版本
    LSTM实现中文文本情感分析
    深入理解Linux内核 学习笔记(5)
  • 原文地址:https://www.cnblogs.com/laurarararararara/p/11331134.html
Copyright © 2020-2023  润新知