【奔跑的菜鸟】Java中的关键字static和final以及静态语句块
2016-07-20 14:11
423 查看
static表示静态的意思。可以是静态属性,静态方法。所有的对象共用同一个静态成员(包括属性和方法)。静态成员可以通过类名.静态属性和类名.静态方法的方式直接调用。例如:
对于static block,static block也是用于初始化的,只在类加载到JVM时运行,运行在构造函数之前。
public class Test { public static void main(String[] args) { A.outPut(); A.a = 10; A a1 = new A(); System.out.println(a1.a); a1.a = 5; A a2 = new A(); System.out.println(a2.a); B b1 = new B(); System.out.println(b1.a); A.outPut(); B.outPut(); System.out.println("----------------------"); A b_a = new B();//此时A的引用指向B的对象 b_a.outPut(); } } class A { static int a; public static void outPut() { System.out.println("A static funcation"); } } class B extends A { public static void outPut() { System.out.println("B static funcation"); } }运行结果为:
A static funcation 10 5 5 A static funcation B static funcation ---------------------- A static funcation对于final关键字,表示终止态的意思。修饰类时,表示该类不可以被继承。修饰类属性,如int时,必须在申明时就赋值或在构造方法中就进行赋值,且后来不可以修改它的值。如果修饰的是引用则表示,该引用只能指向这个对象,不可以指向其它对象。修饰方法时,表示该方法是终态的方法不能被重写。
对于static block,static block也是用于初始化的,只在类加载到JVM时运行,运行在构造函数之前。
public class Test { public static void main(String[] args) { new C(); System.out.println("--------------"); new C(); } } class A { static { System.out.println("A's static block."); } A() { System.out.println("A's construct"); } } class B extends A { B() { System.out.println("B's construct"); } } class C extends B { C() { System.out.println("C's construct"); } static { System.out.println("C's static block"); } }运行结果:
A's static block. C's static block A's construct B's construct C's construct -------------- A's construct B's construct C's construct
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树