zoukankan      html  css  js  c++  java
  • 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.系统总是自动给一个类提供构造方法。错。只有不声明构造方法时,系统才提供默认无参构造方法。

  • 相关阅读:
    Swift
    Swift
    第二章_session管理
    HDU-1387-Team Queue
    Install Orace 11g on Solaris 10 Sparc 64 bit
    Linux 多学习过程
    dispatch_once认识分析
    关于包围神经猫的想法实现
    嵌入在网站上Flash播放机(2)
    初学者应学会如何加快seo
  • 原文地址:https://www.cnblogs.com/shoulinniao/p/11571704.html
Copyright © 2011-2022 走看看