static、final、abstract关键字

Java修饰符

Java修饰符主要分为两种:

  • 1.访问修饰符
  • 2.非访问修饰符

修饰符用来定义类、方法、变量,通常放在语句最前面。

非访问控制修饰符

static修饰符:修饰类变量和方法
final修饰符:修饰类、方法和变量
abstract修饰符:用来创建抽象类和抽象方法

static 修饰符

1.static修饰的成员变量不属于对象的数据结构;
2.static变量是属于类的变量,通常可以通过类名来引用static成员;
3. static成员变量和类的信息一起存储在方法区,而不是堆中;
4. 一个类的static成员变量只有一个;
5. static块----类的代码块

  • 在类加载期间执行的代码块,只执行一次,用来加载静态资源;
  • 类加载时,运行代码块,在创建对象之前;
Class Cat(){
	Static{
		System.out.println("静态代码块");
	}
	public Foo(){
		System.out.println("Foo()");
	}
}
Foo f=new Foo();
//运行结果:
// 静态代码块
//Foo()		
final 修饰符

1.final修饰的成员变量不可变,且必须初始化;

  • 构造函数中初始化
  • 声明的同时初始化

2.final可以修饰局部变量,使用前要初始化;
3. final修饰的方法不可以被重写,防止子类在定义新方法时造成的“不经意”重写;
4.final修饰的类不可以被继承,保护类不被继承修改,控制滥用继承对系统的危害;

public class Test{
 final int value = 1;
 // 下面是声明常量的实例
 public static final int X = 6;
 static final String NAME = "Lucy";

 public void changeValue(){
    value = 2; //将输出一个错误
 }
}
abstract 修饰符

1.abstract修饰的方法为抽象方法,抽象方法只有方法的定义,没有方法体实现,用分号结尾;
2.包含抽象方法的类,应该用abstract关键字修饰为抽象类;
3.抽象类不能用来实例化对象,而声明抽象类的唯一目的是为了将来对该类进行扩充;
4.如果一个非抽象类继承了抽象类,必须重写其抽象方法;
5.抽象类可以包含抽象方法和非抽象方法。

//抽象类
abstract class Animal{
   private String name;
   private String sex;
   public abstract void goFast(); //抽象方法
   public abstract void allColor();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值