final

Java关键词final有“无法改变”的含义,主要用于修饰非抽象类、方法或者变量。使用时注意:

  • final类不能被继承,没有子类,final类中的方法默认是final的。
  • final方法不能被子类的方法覆盖,但可以被继承。
  • final成员变量表示常量,只能被赋值一次,赋值后值不再改变。
  • final不能用于修饰构造方法。
  • 父类的private成员方法不能被子类使用,故private类型方法默认为final类型。
  • final类:
    final类无法被继承,故当需要一个完全封装、无法改变的类时,可以使用final修饰增强安全性。
  • final方法:
    同final类,当类中方法不允许子类覆盖时,则可以将其声明为final方法。主要用于将方法锁定,防止子类修改。

     public class TestFinal {
    //public方法
    public void test_01() {
    System.out.println("01");
    }
    //增加final修饰
    public final void test_02() {
    System.out.println("02");
    }
    //private方法
    private void test_03() {
    System.out.println("03");
    }
    } public class Test extends TestFinal {
    //覆盖父类方法test_01
    public void test_01() {
    System.out.println("Change");
    }
    public static void main(String[] args) {
    Test t = new Test();
    t.test_01(); //已被覆盖,输出“change”
    t.test_02(); //由于有final修饰符,此方法无法覆盖,输出“02”
    //t.test_03(); //由于为private方法,不能直接调用该方法
    }
    }
  • final变量
    通常用final修饰的成员变量表示常量,一般修饰三种类型的变量:静态变量、实例变量和局部变量。
  • final参数
    函数参数使用final修饰符时,则只能读取该参数,不能改变。

static

static一般表示“静态”的意思,可修饰成员变量和方法,也可形成静态static代码块。另外注意Java中没有全局变量的概念

被static修饰的成员变量或方法独立于该类的对象,只要该类被加载,可以在对象创建即实例化之前访问

  • 静态变量
    被static修饰的变量即为静态变量,当JVM加载类后,可以通过类名直接访问,类的所有实例共享一个static变量
  • 静态方法
    静态方法可以直接通过类名调用,但是不能直接访问所属类的实例变量和方法,只能访问所属类的静态变量和方法,这是因为实例成员只与特定对象关联。
  • 静态代码块
    为类中独立于类成员的static语句块,不在任何方法体内,当JVM加载类时,就会执行静态代码块,无需等待实例化,static语句块可以多个,JVM会按照它们的先后顺序依次执行。

static和final一起时有什么作用

static final一起使用修饰成员变量或方法时,可以理解为“全局常量”,均可通过类名直接访问。

版权声明:本文为博主原创文章,未经博主允许不得转载。

java中final与static的使用场景的更多相关文章

  1. java中final和static

    final的意思是最终的,最后的额,不可变的,在java中也具有相似的含义. final修饰基础数据表示把该数据修饰成常量,意味着不可修改,不可变. final修饰对象的引用的时候,表示该引用不可变, ...

  2. Java中 final和static解析

    一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理 ...

  3. Java中 final、static、abstract区别与联系

    1.static修饰符 static作用于代码块:称作静态代码块(可以初始化static field,不能初始化非static field); static作用于methods: static方法只能 ...

  4. Java中final与 static final 修饰的常量的区别

    喵喵开车,新手上路,多多关照.有任何错误请在评论区指出. ...........................................我是万恶的分界线( • ̀ω•́ )✧......... ...

  5. Java中final和static关键字总结

    1.final: final关键字可用于类.方法.变量前. final修饰的类不可被继承,例如java.lang.Math就是一个 final类,不可被继承. final修饰变量,在显示初始化后不可改 ...

  6. 在JAVA中利用public static final的组合方式对常量进行标识

    在JAVA中利用public static final的组合方式对常量进行标识(固定格式). 对于在构造方法中利用final进行赋值的时候,此时在构造之前系统设置的默认值相对于构造方法失效. 常量(这 ...

  7. Java中final修饰符深入研究

    一.开篇 本博客来自:http://www.cnblogs.com/yuananyun/ final修饰符是Java中比较简单常用的修饰符,同时也是一个被"误解"较多的修饰符.对很 ...

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

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

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

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

随机推荐

  1. webpack常用配置项配置文件介绍

    一.webpack基础 1.在项目中生成package.json:在项目根目录中输入npm init,根据提示输入相应信息.(也可以不生成package.json文件,但是package.json是很 ...

  2. python正则表达式从路径中取文件名出来不加后缀(txt)

    正则表达式[^\\/:*?"<>|\r\n]+$ ---->取文件名包括后缀 e.g. >>>D:\PyCharm 2018.2.4\pythonWork ...

  3. 标签页的切换方法(DOM)

    效果: 1.点击“JAVA语言” 2.点击“C语言” 3.点击C++语言 代码: <!doctype html> <html> <head> <meta ch ...

  4. 工程管理,用网页就够了!——Wish3D Earth在线三维地球强势上线

    大型工程涉及到众多的施工队.管理单位和相关部门,相互之间需要传递的数据.文件的数量是惊人的,必须建立起有效的信息管理方法,使管理者及时把握工程的信息,全面准确地控制工程施工情况. 现代化的建筑工程管理 ...

  5. 2017.2.20 activiti实战--第二章--搭建Activiti开发环境及简单示例(二)简单示例

    学习资料:<Activiti实战> 第一章 搭建Activiti开发环境及简单示例 2.5 简单流程图及其执行过程 (1)leave.bpmn 后缀名必须是bpmn.安装了activiti ...

  6. show processlist 各个状态说明

    执行状态分析 1.Sleep状态 通常代表资源未释放,如果是通过连接池,sleep状态应该恒定在一定数量范围内 实战范例:因前端数据输出时(特别是输出到用户终端)未及时关闭数据库连接,导致因网络连接速 ...

  7. 关于郭天祥51开发板无法烧敲代码问题的解决(Prolific USB-to-Serial Comm Port)

    1. 事件背景: 因为使用了win8系统,之前购买的郭天祥C51开发板在通过一个两头都是usb口的下载线下载程序时出现了问题:下载工具stc isp无法连接到开发板上的串口,所以无法下载程序到c51开 ...

  8. ie下div模拟的表格,表头表体无法对齐

    现象:ie下,如果某个区域滚动显示表格内容(div模拟的table),表体出现滚动条的时候,会跟表头无法对齐. 解决方法:1.首先需要知道两个高度:表体最大高度height1.目前表体要显示的内容高度 ...

  9. 连续调用scanf的问题总结

    对于非常简单的scanf函数,一直使用,但是却是有很多的知识点没有掌握好,现总结如下: 1.多个scanf之后,后序以 scanf("%c",&c) 当程序连续调用scan ...

  10. ios控件自定义指引

    转载自:http://bbs.9ria.com/thread-256747-1-1.html 一直以来都想写点什么,做点有意义的事,从今天开始我将会把自己在这一年的学习和应用IOS开发中的学习心得和体 ...