Java基础笔记 – static与final关键字及其编写细节提示
本文由发表于7年前 | Java基础
1、static关键字:1.1、static成员变量:1.2、static静态方法:1.3、static静态代码块:1.4、静态代码块的执行:1.5、静态访问规则:2、final关键字:final常量:final方法:
1、static关键字:

static关键字可用于修饰属性,也可用于修饰方法,还可以用于修饰类。

1.1、static成员变量:

使用了static修饰的成员变量,即是静态成员变量。无论一个类生成了多少个对象,所有这些对象共同使用唯一的一静态的成员变量。即是一个对象对该静态成员变量进行了修改,其他对象的该静态成员变量的值也会随着发生变化。

可以通过 类名.静态成员变量名 来获取静态成员变量。

1.2、static静态方法:

static修饰的方法叫做静态方法,静态方法只能继承不能重写(Override)(可以覆盖,用多态调用时,执行的也是父类的static静态方法)。

可以通过 类名.方法名 的方式来访问。

1.3、static静态代码块:

静态代码块的作用是完成一些初始化工作。

1.4、静态代码块的执行:

首先执行静态代码块,然后执行构造方法。静态代码块在类被加载的时候执行,而构造方法是在生产对象的时候执行。

调用某个类来生成对象时,首先将类加载到Java虚拟机上,然后有虚拟机加载这个类来生成对象。而静态代码块只会执行一次,是在类被加载的时候执行的。

因为每个类只会被加载一次,所以静态代码块也只会被执行一次。而每生成一个对象都会调用类的构造方法。

如果一个类中既有构造方法,又有静态代码块,那么首先执行顶层类的静态代码块,一直执行到底层类的代码块。在去从顶层到底层执行构造方法。

注意:静态代码块只会被执行一次。

如下面的静态代码块和构造方法的编写:

class A{
    static{
        System.out.println("static code A");
    }
    public A(String str){
        System.out.println("constructor A:" + str);
    }
}
class B extends A{
    static{
        System.out.println("static code B");
    }
    public B(){
        super("call constructor with parameters");
        System.out.println("constructor B");
    }
}

B b = new B(); 执行结果为:

static code A
static code B
constructor A:call constructor with parameters
constructor B
1.5、静态访问规则:

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

静态只能访问静态;非静态可以访问一切。

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

2、final关键字:

当final关键字修饰一个原生数据类型时,表示该原生数据类型的值不能发生变化。当final修饰一个引用类型时,表示该引用类型不能再指向其他对象了,但引用直线对象的内容是可以改变的。

final常量:

当一个属性被final修饰时,表示该属性不能被改写。


对应final类型的成员变量,有两种赋初值的方式:

① 在生命final类型成员变量时就赋初值
② 在生命final类型成员变量时不赋初值,但在类的所有构造方法中都为其附上初值。

final方法:

final方法是一个终态方法,不能被重写(Override)。

除了文章中有特别说明,均为IT宅原创文章,转载请以链接形式注明出处。
本文链接:http://www.itzhai.com/java-based-notes-static-and-final-keywords-and-write-the-details-of-prompt.html
关键字: , ,
arthinking 指弹吉他 && 技术 more
分享到:
 
2011 10/26
文章评论
    没有评论
给我留言

有人回复时邮件通知我
Java基础的相关文章
随机文章 本月热门 热评
1 Struts2单选按钮标签s:radio的使用及其设置默认值 2011/9/10
2 C++语法笔记 – 多态性 2011/9/3
3 Java笔记 – 正则表达式 matches()与lookingAt() 2013/12/15
4 软件工程维护-可维护性 文档 2011/7/1
5 打印网页内容的Javascript代码实现 2011/9/17
6 设备管理及其相关技术-磁盘调度SPOOLing技术 2011/6/30
友情推荐 更多
破博客 文官洗碗安天下,武将打怪定乾坤。多么美好的年代,思之令人泪落。
行知-追寻技术之美 关注大数据,分布式系统
我爱编程 编程成长轨迹
Cynthia's Blog 学习笔记 知识总结 思考感悟
 
猜您喜欢
欢迎关注我的公众号 IT宅
关于IT宅 文章归档

IT宅中的文章除了标题注明转载或有特别说明的文章,均为IT宅的技术知识总结,学习笔记或随笔。如果喜欢,请使用文章下面提供的分享组件。转载请注明出处并加入文章的原链接。 感谢大家的支持。

联系我们:admin@itzhai.com

Theme by arthinking. Copyright © 2011-2015 IT宅.com 保留所有权利.