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

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

1.隐式无参构造方法

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

2.显式无参构造方法

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

3.显式有参构造方法

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

关于构造方法的几种情况

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

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

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

final(不可变)

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

牛客刷题:

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

Java 构造方法、final的更多相关文章

  1. Java关键字final、static

    一.final根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理解而需要阻止改变:设计或效率. final ...

  2. 【转】Java关键字final、static使用总结

    转自:http://lavasoft.blog.51cto.com/62575/18771/   Java关键字final.static使用总结   一.final        根据程序上下文环境, ...

  3. Java关键字final、static使用总结

    Java关键字final.static使用总结   一.final        根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方 ...

  4. 转!Java关键字final、static使用总结

    Java关键字final.static使用总结   一.final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可 ...

  5. Java关键字final、static使用总结(转)

    Java关键字final.static使用总结   一.final        根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方 ...

  6. (转)Java关键字final、static使用总结

    一.final  根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理解而需要阻止改变:设计或效率. fin ...

  7. [Java] 关键字final、static使用总结

    一.final 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理解而需要阻止改变:设计或效率.final ...

  8. java中final的意义

    1.如果一个数据既是static又是final,那么它会拥有一块无法改变的存储空间. 2.final data: 当final用于基本数据类型时,final让其值(value)保持不变,但是当用于ob ...

  9. java 关键字final static native详解

    java 关键字native static final详解 一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义, ...

  10. JAVA面向对象-----final关键字

    JAVA面向对象-–final关键字 1:定义静态方法求圆的面积 2:定义静态方法求圆的周长 3:发现方法中有重复的代码,就是PI,圆周率. 1:如果需要提高计算精度,就需要修改每个方法中圆周率. 4 ...

随机推荐

  1. 应用层协议:HTTPS

    1. HTTPS定义 Hyper Text Transfer Protocol over Secure Socket Layer,安全的超文本传输协议,网景公式设计了SSL(Secure Socket ...

  2. 框架之jQuery妙用

    1.jQuery介绍 jQuery是一个轻量级的.兼容多浏览器的JavaScript库. jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方便地进行Ajax交 ...

  3. Javascript 笔记:原型和原型链

    一.函数对象和普通对象 凡是通过new Function()创建的都是函数对象,其它的都是普通对象.Function,Object,Array,Number,String,Boolean,Date是J ...

  4. 微信JSSDK 扫描二维码

    <?php require_once('wxjssdk.class.php'); $weixin = new class_weixin(); $signPackage = $weixin-> ...

  5. SpringBoot2配置prometheus浏览器访问404

    背景:SpringBoot2的项目要配置 actuator + prometheus的健康检查,按照教程配置好之后再浏览器测试 http://localhost:port/prometheus 后40 ...

  6. C语言memset()函数:将内存的前n个字节设置为特定的值

    头文件:#include <string.h> memset() 函数用来将指定内存的前n个字节设置为特定的值,其原型为:    void * memset( void * ptr, in ...

  7. flutter-初识(基础语法)

    前言:笔者学过 java,刚刚接触 flutter,记录下基本的一些语法. 一.认识Flutter Flutter 是 google 推出的,使用的 Dart 语言,它可以跨平台实现 Android ...

  8. centos7.x下环境搭建(三)—nodejs安装

    有3种方式可以安装nodejs yum安装 源码包安装 nvm方式安装 一.方式1:yum安装 这里我们指定安装8.x以上的版本 # curl --silent --location https:// ...

  9. elasticsearch6设置默认分片数和副本数

    elasticsearch6设置索引的默认分片数和副本数已经不是在elasticsearch.yml文件中了,而是使用了一个索引模板的东西 curl -XPUT 'http://10.27.12.16 ...

  10. WebUploader 上传文件 错误总结

    近日做文件上传,粗心的问题和技术不精的问题导致了很多的bug,大部分时间都是在找自己写出来的bug,近日总结一下使用 WebUploader 开启分片上传的使用方法以及注意事项 1.上传过程中,后续上 ...