您的位置:首页 > 其它

static final abstract 三个修饰符的个人总结(望各位大牛指正)

2014-03-14 11:49 232 查看
一、static :可以修饰类的属性和方法

1. 修饰属性:

实例属性:属性的值跟随着对象走,每一个对象的这个属性值是不一样的

静态类属性:用来描述整个类的特征的

static 属性和实例属性的差别:

static 属性在整个类中只有一份值,实例属性有多少个对象就有多少个值;

static 属性在类加载的时候被实例化,实例属性在生成对象的时候被实例化;

对静态属性的访问,直接通过类名去访问,如Animal.count,这个属性和对象没有关系。

2.static 来修饰方法

静态方法用来描述整个类的行为,而不是具体某个对象的行为,

还没生成任何对象之前就可调用静态方法。

态代码块:static 还可以用来修饰一段代码块,叫静态代码块,静态代码块定义在一个类的内部。

静态代码块中的代码在类加载的时候被执行,如果你希望你的代码在装载进来的时候就执行,

就把代码放在静态代码块中,静态代码块中只能访问类的静态成员。

二、final:不仅可以修饰类、修饰类的属性和方法,还可以修饰局部变量

1.修饰类表示这个类不能被继承,

2.修饰方法表示这个方法不能被覆盖,

3.修饰局部变量表示整个局部变量是常量。

4.给final属性赋值的机会只有两个,开始定义的时候就赋值,和在构造方法中赋值,不然的话编译通不过。 如果在定义的时候

就把这个值给了,以后这个值就不能再改变了,有点浪费空间,最好加上static,把它变成所有对象共用的。

三、abstract:可以修饰类、修饰方法

1.修饰方法的时候,表示这个方法还没法实现,也就是没有方法体,取而代之的是分号。

在这个类的基础上不知道该怎么定义的方法就可以写成一个抽象方法: public abstract void name();

2.如果一个类中包含有抽象方法,那这个类也必须定义成抽象类,如果一个类不包含任何抽象方法,

也可以把这个类定义成抽象类,抽象类不能进行实例化,也就是不能生成一个对象,但是可以定义一个抽象类的引用。

abstract 和final是不能同时使用的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: