*两个关键字static和final

时间:2022-12-09 11:49:42
static关键字:可以用于修饰属性,也可以用于修饰方法,还可以用于修饰类.
static 修饰属性: 无论一个类生成了多少个对象,所有这些对象共同使用唯一一份静态的成员变量;一个对象对该静态成员变量进行了修改,其他对象的该静态成员变量的值也会随之发生变化。 如果一个成员变量是 static 的,那么我们可以通过类名.成员变量名的方式来使用它(推荐使用这种方式)。
静态变量是类的,不是某一个对象独占!对象共享!非静态变量每个对象都有一份

*两个关键字static和final

*两个关键字static和final

静态方法只能继承,不能重写(Override)。

子类隐藏了父类的类方法(静态static方法,Class Method)

*两个关键字static和final

-------------------------------------------------------------

final 关键字: final 可以修饰属性、方法、类。
final 修饰类:当一个类被 final 所修饰时,表示该类是一个终态类,即不能被
继承。
final 修饰方法:当一个方法被 final 所修饰时,表示该方法是一个终态方法,即不能被重写( Override)。
final 修饰属性: 当一个属性被 final 所修饰时,表示该属性不能被改写。
final 修饰一个原生数据类型时,表示该原生数据类型的值不能发生变化
(比如说不能从 10 变为 20);如果 final 修饰一个引用类型时,表示该引用
类型不能再指向其他对象了,但该引用所指向的对象的内容是可以发生变化的。

*两个关键字static和final

对于final类型的成员变量,必须显示的赋初值

final int a;//有误

对于 final 类型成员变量,一般来说有两种赋初值方式:
a)在声明 final 类型的成员变量时就赋上初值
b)在声明 final 类型的成员变量时不赋初值,但在类的所有构造方法中都为其赋
上初值。

 
static 代码块:静态代码块。静态代码块的作用也是完成一些初始化工作。首先执行静态代码块,然后执行构造方法。静态代码块在类被加载的时候执行, 而构造方法是在生成对象的时候执行;要想调用某个类来生成对象,首先需要将类加载到Java 虚拟机(JVM),然后由 JVM 加载这个类来生成对象。

类的静态代码块只会执行一次,是在类被加载的时候执行的,因为每个类只 会被加载一次,所以静态代码块也只会被执行一次;而构造方法则不然,每 次生成一个对象的时候都会调用类的构造方法,所以 new 一次就会调用构造 方法一次。

如果继承体系中既有构造方法,又有静态代码块,那么首先执行最顶层的类 的静态代码块,一直执行到最底层类的静态代码块,然后再去执行最顶层类 的构造方法,一直执行到最底层类的构造方法。 注意:静态代码块只会执行一次。

不能在静态方法中访问非静态成员变量;可以在静态方法中访问静态的成员 变量。可以在非静态方法中访问静态的成员变量。

总结:静态的只能访问静态的;非静态的可以访问一切。

不能在静态方法中使用 this 关键字。

*两个关键字static和final的更多相关文章

  1. java笔记——Java关键字static、final使用小结

    static  1. static变量     按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量.两者的 ...

  2. Java关键字static、final使用小结

    static  1. static变量     按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量.两者的 ...

  3. Java之关键字static和final的使用

    static 在Java中声明属性.方法时,可使用关键字static来修饰. 1.static变量       按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或 ...

  4. JAVA学习笔记--简介几个常见关键字static、final、this、super

    一.static static(静态的),可以放在类.方法.字段之前. 通常,当创建类时,就是在描述那个类的外观与行为.除非用 new 创建那个类的对象,否则,实际上并未获得任何对象.执行 new 来 ...

  5. Java学习日记-5 关键字static和final 以及接口

    乱入:表达式中的自动类型转换 char,short,byte都升级为int类型进行运算,结果为int,但其原变量类型并不改变. 所以,byte b = 10;  b = b*b; 编译时会报错.但是写 ...

  6. Java关键字static、final

    static  1. static变量     按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量.两者的 ...

  7. java中关键字static和final

    面向对象的不足 凡是有利必有弊,强对象编程,使得语法简单统一,但也有其缺点,而且有很多.我们在接下来的课程里会一点点接触到.我们今天先看第一个. 有些变量和函数确实没必要定义在一个类里.强行规定这些函 ...

  8. 关键字static、final

    final final能修饰类.修饰方法.能修饰属性. 修饰类:该类不能被继承. 修饰方法:该方法不能被重写.所以abstract和final不能同时用 修饰属性/变量:该属性/变量为常量,该值不能再 ...

  9. java关键字static和final

    static可以修饰变量,方法或者类(普通类是不能用static修饰的,只能用来修饰内部类) static静态变量又称之为类变量(和c++中的全局变量概念是一样的),在类加载后,jvm只为类变量分配一 ...

随机推荐

  1. memcached tomcat maven 学习记录

    2016.12.11 maven 快速搭建项目,只要有pom.xml文件配置好依赖 可以把项目切割(具体切割出来的块怎么用?) nginx 负载均衡  文件服务器 主要配置nginx.conf 文件 ...

  2. 读书笔记:javascript高级技巧(一)

    一.安全的类型检测 javascript内置的类型检测机制并非完全可靠,由于浏览器或者作用域等原因,经常会发生错误.大家知道,在任何值调用toString()方法都会返回一个[object Nativ ...

  3. Oracle Flashback Technologies - 闪回被drop的表

    Oracle Flashback Technologies - 闪回被drop的表 在oracle10g中,drop一个表后,表没有真正被删除,支持被rename后放在recyclebin中. #新建 ...

  4. 了解ASP.NET MVC几种ActionResult的本质:HttpStatusCodeResult & RedirectResult/RedirectToRouteResult

    在本系列的最后一篇,我们来讨论最后三个ActionResult:HttpStatusCodeResult.RedirectResult和RedirectToRouteResult .第一个用于实现针对 ...

  5. Android大图片裁剪终极解决方案 原理分析

    约几个月前,我正为公司的APP在Android手机上实现拍照截图而烦恼不已. 上网搜索,确实有不少的例子,大多都是抄来抄去,而且水平多半处于demo的样子,可以用来讲解知识点,但是一碰到实际项目,就漏 ...

  6. Open CASCADE 基础类(Foundation Classes)

    1 介绍(Introduction) 1 如何使用Open CASCADE技术(OCCT)基础类. This manual explains how to use Open CASCADE Techn ...

  7. android linearlayout 把控件view置底部(放在页面最下方)

    <LinearLayout android:id="@+id/recLayout" android:layout_width="fill_parent" ...

  8. Python中下划线---完全解读

    Python 用下划线作为变量前缀和后缀指定特殊变量 _xxx 不能用'from module import *'导入 __xxx__ 系统定义名字 __xxx 类中的私有变量名 核心风格:避免用下划 ...

  9. Zabbix&lpar;一&rpar; &colon; 简介以及Server端安装

    一.什么是Zabbix? zabbix由AlexeiVladishev首先开发,目前在维护的是Zabbix SIA.ZABBIX是一个企业级的开源分布式监控解决方案. zabbix为监控网络和服务器的 ...

  10. python day27--网络编程

    一‘.网络基础 1.什么是IP IP地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Address的缩写.IP地址是IP协议提供的一种统 ...