修饰符(final,static,abstract)

来源:互联网 发布:matlab 算法 编辑:程序博客网 时间:2024/04/28 01:29

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则表示不能被继承或重写)

原创粉丝点击