static 与变量、方法一起使用,表示是“静态”的。
1 静态变量属于类,不属于任何独立的对象,所以无需创建类的实例就可以访问静态变量。
2 静态方法是一种不能向对象实施操作的方法。因为静态方法不能操作对象,所以不能在静态方法中访问实例变量,只能访问自身类的静态变量。
3 一个类的静态方法只能访问静态变量;
4 一个类的静态方法不能够直接调用非静态方法;
5 如访问控制权限允许,静态变量和静态方法也可以通过对象来访问,但是不被推荐;
6 静态方法中不存在当前对象,因而不能使用 this,当然也不能使用 super;
7 静态方法不能被非静态方法覆盖;
8 构造方法不允许声明为 static 的;
9 局部变量不能使用static修饰。
注:只要类被装载,不管你是否使用了这个static 变量,它都会被初始化。
public class Demo { static int i; int j; public static void main(String[] args) { Demo obj1 = new Demo(); obj1.i = 10; obj1.j = 20; Demo obj2 = new Demo(); System.out.println("obj1.i=" + obj1.i + ", obj1.j=" + obj1.j); System.out.println("obj2.i=" + obj2.i + ", obj2.j=" + obj2.j); } }
final 所修饰的数据具有“终态”的特征,表示“最终的”意思。
1 final 修饰的类不能被继承。
2 final 修饰的方法不能被子类重写。
3 final 修饰的变量(成员变量或局部变量)即成为常量,只能赋值一次。
4 final 修饰的成员变量必须在声明的同时赋值,如果在声明的时候没有赋值,那么只有 一次赋值的机会,而且只能在构造方法中显式赋值,然后才能使用。
5 final 修饰的局部变量可以只声明不赋值,然后再进行一次性的赋值。
final 一般用于修饰那些通用性的功能、实现方式或取值不能随意被改变的数据,以避免被误用,例如实现数学三角方法、幂运算等功能的方法,以及数学常量π=3.141593、e=2.71828 等。
public final class Demo{ public static final int TOTAL_NUMBER = 5; public int id; public Demo() { // 非法,对final变量TOTAL_NUMBER进行二次赋值了 // 因为++TOTAL_NUMBER相当于 TOTAL_NUMBER=TOTAL_NUMBER+1 id = ++TOTAL_NUMBER; } public static void main(String[] args) { final Demo t = new Demo(); final int i = 10; final int j; j = 20; j = 30; // 非法,对final变量进行二次赋值 } }
本文示例参考自:http://www.weixueyuan.net
相关推荐
java中final和static讲解及实例
自己总结的java中final和static的区别,请大家提出宝贵意见。
Java程序设计实验11-static、super、final、代码块.docxJava程序设计实验11-static、super、final、代码块.docxJava程序设计实验11-static、super、final、代码块.docxJava程序设计实验11-static、super、final、...
java---- 封装,接口,继承,覆盖,构造过程,多态,static、this、super、final用法
java 关键字final和static
根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。
JAVA访问修饰符
java中final与static的用法
在Java中, 可以使用final关键字修饰类、方法以及成员变量。 (1).final标记的类不能被继承; (2).final标记的方法不能被子类复写; (3).final标记的变量即成为常量,只能被赋值一次. 注意: 如果使用final来...
grpcs 或者使用netty openssl ,因为netty-tcnative-2.0.27.Final-SNAPSHOT-linux-aarch_64.jar 是支持在arm 平台编译java 代码和 原生c 代码动态 类库libnetty_tcnative.so。目前在各大代码仓库都没有提供此jar 包...
NULL 博文链接:https://zkf60553.iteye.com/blog/1307592
在Java中变量可以分为成员变量和局部变量 成员变量 通常每个类中成员变量可以分为 类变量(static修饰的变量) 以及 实例变量 针对这两种类型的变量赋初始值的时机是不同的。 类变量可以再声明变量的时候直接赋...
Java 菜鸟必备 详细总结了键字final、static的使用 和限制
根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。
java 中static和final的定义及其用法
javafinal和static总结.docx
JAVA\Java开发中static、this、super和final用法
static、this、super、final的JAVA用法
JAVA访问控制 、 static和final.mp4