您的位置:首页 > 其它

修饰符(final,static,abstract)

2008-12-15 17:29 381 查看
1 static 修饰符

/*static 修饰符
* static修饰类类的成员变量,表示该成员变量为静态变量(类变量)
* static修改方法表示该方法为静态方法(类方法)
* static修饰代码块表示静态代码块
*
* 类变量和类方法,静态代码块 是归类所有的,它不依赖于类的特定实例,
* 被类的所有实例多共享,在类被加载的时候就被加载并且只加载一次(内存中的方法区内)
*/
public class StaticClass {
static int i;
static {
i++;
}
public static void display()
{
System.out.println(i);
}

public static void main(String [] args){
StaticClass.display();
StaticClass sc1 = new StaticClass();
sc1.i++;
StaticClass sc2 = new StaticClass();
sc1.display();
sc2.display();

}

}
2 final修饰符:

/*final修饰符:
* final修饰基本变量表示该变量为产量,不能被改变(修饰成员变量时定义的时候设置值或者在构造方法结束前设置值 只能设置一次)
* final 修饰引用类型的变量时 表示该变量所指向的对象不能在改变,而所指向对象的内容可以改变
* final修饰方法的时候表示该方法不能被重写
* final修饰类的时候表示该类不能被继承
*/
//final类不能被继承
public final class FinalClass {

public final double PI = 3.14;//定义的时候显示的初始化 或者在构造方法内初始化 只能初始化一次
private String name;

public void setName(String name){
this.name = name;
}
public FinalClass(){
//this.PI = 3.14;
}

public final void dispaly(){ //该方法不能被重写
System.out.println("PI : "+ PI);
}

public static void main(String [] args){
final FinalClass f1 = new FinalClass();
//错误 final类型的引用变量不能在指向其他的对象 当所指向的对象内容可变
f1 = new FinalClass();
f1.setName("Jack");
}
}
3 abstract修饰符:

abstract修饰类表示该类为抽象类不能被实例化
abstract修饰的方法表示该方法为抽象方法 没有方法体(具体的实现),有抽象方法的类必为抽象类
抽象类里不一定具有抽象方法 当有抽象方法的类必为抽象类

abstract修饰符与private,static,final 连用会导致编译错误(因为abstract表示需要继承或重写 private,static,final则表示不能被继承或重写)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: