Java——static修饰符 枚举

静态属性
  1. 语法定义
  • 权限修饰符 static 数据类型 属性名称
  • public static int age;
  1. 使用方法
  • 类名.属性名
  1. 引入静态属性的意义
  • 实现数据共享
  1. 静态属性特点
  • 声明为static的属性也被成为类属性
  • 当创建一个对象时,并不产生static属性的拷贝
  • 该类所有的实例共享一个static属性
  • 在类装载时,只分配一块存储空间,所有此类的对象都可以操控此块存储空间
  1. 静态属性属于类而不属于对象,为不同的对象所共用
  • 类名.公有静态属性名
  • 对象名.公有静态属性名
  1. 静态属性值一旦改变,所有类的对象均共享改变
  2. 对静态属性的初始化不用构造方法
静态方法
  1. 语法
    权限修饰符 static 返回值类型 方法名 (参数列表){ }
    public static void main(String[] args) { }
  2. 使用方法 类名.方法名(实参列表)
  3. 作用:访问静态属性(属性一般为私有)
  4. 规则:
  • 仅能直接调用其他的static类型的方法
  • 只能访问static类型的属性
  • 不能以任何方式使用this 或 super
  1. 特点:不调用就不执行(static方法独立于任何实例,因此static方法必须被实现,而不是抽象的
  2. java的类库中大量的静态方法(Math等)
静态代码块
  1. 静态属性初始化比较简单时,可以在属性定义时进行。如果初始化过程相对比较复杂时,需要用到静态代码块
  2. 语法
    static {
    代码块
    }
  3. 功能:初始化静态变量(显式的静态变量初始化)
  4. 特点:仅在该类被加载时执行一次(只执行一次)
  5. 涉及到继承的时候,会先初始化父类的static代码块,然后是子类 代码块
  6. 顺序
  • 父类的静态代码块
  • 子类的静态代码块
  • 父类的构造方法
  • 子类的构造方法
扩展
  1. 对比
  • 静态代码块
    static {
    方法体
    }
  • 非静态代码块
    {
    方法体
    }
  1. 执行顺序
  • 静态属性和静态代码块(按照定义顺序,在类被加载的时候只执行一次)
  • 非静态属性和非静态代码块(按照定义顺序,在类被实例化的时候执行)
  • 构造方法
静态类
  1. 通常一个普通类是不允许声明为静态的,只有一个内部类才可以
  2. 声明为静态的内部类可以直接作为一个普通类来使用,不需要实例化一个外部类(可以直接在声明的类里面实例化内容,不用实例化外层的类)
枚举(enum)
  1. 枚举的本质就是一个class
public enum Color {
	RED,GREEN,BLUE,YELLOW;//RED(),GREEN(),BLUE(),YELLOW;
}
  • 枚举的成员就是枚举对象,只不过他们是静态常量(也是变量)
  • 枚举可以添加构造方法
  • 枚举不可以实例化(编译器会自动为其构造放啊加上private)
  • 通只为枚举提供get方法,而不提供set方法
  • 枚举中不允许用 = 赋值
  • 可以继承接口,不能继承类
  1. 枚举特点:数值稳定,个数有限
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值