• Java 构造方法、final


    构造方法:构造(创建)对象时使用的方法。

    • 方法名必须与类名称完全相匹配;
    • 构造方法不需要返回类型
    • 构造方法不能被static、final等关键字修饰,且不能有return返回语句;
    • 伴随着new被调用
    • 构造方法不会被继承,但是子类创建对象时会执行父类的构造方法,因为子类中所有构造方法的第一行有默认的隐式super()语句

    1.隐式无参构造方法

    默认自带的,无参,并且方法体是空的,啥都没有。如果重写了任何一个,则这个空的就没了。

    2.显式无参构造方法

    重写默认自带的构造方法,在方法体里写点东西

    3.显式有参构造方法

    一般用于将参数值 传给 对象里的属性值

    关于构造方法的几种情况

    1.重写构造方法后,原本的默认无参构造方法就没了,但是new的时候需要执行,如果重写的构造方法时有参,则需要传参; 如果父类只有有参构造方法,则子类构造方法也需要参数,此时需要写super(参数);为了执行父类的构造方法。

    2.父类构造方法只能在子类构造方法里被调用,用super();调用

    3.调用父类普通方法,super.方法名();

    4.调用本类其他构造方法,this(),和super()一样只能只能调用一次并且放第一行。只调用一次的目的是:避免多次创建对象;放第一行的目的是:避免操作对象时对象还未构建成功;

    final(不可变)

    • final修饰的不能被继承,即和abstract矛盾
    • final修饰的方法不能被继承或重写,即不能被改变,private修饰的方法也是这样
    • final修饰的变量需要定义初始值,并且不能修改。定义初始值的方式有2种,直接赋值 和 通过构造方法赋值(在new的时候初始化),都只初始化一次并且之后不可被修改。相比static也只初始化一次,但是static的变量可以改变
    • final修饰的对象可以改变属性值,但是不能改变该对象的引用地址

    牛客刷题:

    1.系统总是自动给一个类提供构造方法。错。只有不声明构造方法时,系统才提供默认无参构造方法。

  • 相关阅读:
    第9章 线程编程(7)_线程同步4:信号量
    第9章 线程编程(6)_线程同步3:条件变量
    第9章 线程编程(5)_线程同步2:读写锁
    第9章 线程编程(4)_线程同步1:互斥锁
    第9章 线程编程(3)_线程清理和控制函数
    第9章 线程编程(2)_线程创建和终止
    第9章 线程编程(1)_线程概念和线程标识
    第8章 信号(6)_贯穿案例2:mini shell(3)
    第8章 信号(5)_信号集和信号屏蔽
    第8章 信号(4)_中断的系统调用和函数可重入性
  • 原文地址:https://www.cnblogs.com/shoulinniao/p/11571704.html
Copyright © 2020-2023  润新知