static&final&代码块&内部类&枚举总结
总结
static修饰符
static:静态的
static修饰的成员只能类有关系,类被加载的时候,static修饰成员就放入了内存
static能修饰那些成员:
1)、成员变量,不能修饰局部变量
2)、修饰非抽象的方法
成员变量加static和不加的区别?
名称不一样,存储位置不一样,一个是全局,一个是局部
声明成员变需要加static,所有对象共享一个数据的时候
static修饰的成员变只能用public修饰,没有static修饰的都需要时private
static修饰方法
static修饰的方法是类方法
没有static修饰方法是实例方法
注意:static修饰的方法里面只能调用类变量
区别:没有static变量: 实例变量 int a;
有static变量:类变量(静态变量) static int b;
实例变量存在堆里面
类变量存在静态区
类变量存在静态区
类变量是和类有关系(字节码对象),不管创建几个对象,这几个对象都共享同一个类变量
final关键字
final:最终的
final修饰的成员就是不能更改
final修饰类:
public final class A {
}
修饰类表示这个类不能被继承,没有子类
final修饰方法:不能被子类重写的方法
final修饰变量:这个变量的值只能赋值一次,常量
final 数据类型 常量名;
注意:声明一个常量,为了增强常量的标识性,常量名全部大写
代码块
代码块:{}包含的代码就是代码块
if(){}
for(){}
class A {
}
public void m() {
}
{}:构造代码块,在调用构造方法之前要执行的代码,每调用一次构造方法,构造代码块就会执行一次
构造代码块的的作用是简化构造方法重复性的代码
调用构造方法只让代码块执行一次
static {}:静态代码块,只是第一次调用构造方法的时候执行一次,后面就不执行了
注意:构造代码块,与方法是同级别
内部类
1、设计一个类,让这个类只让指定的类使用
将这个类设计在指定类的内部
内部的类就是内部类,外部的类就是外部类
内部类也会变为独立字节文件
概念:设计在一个类内部的类就是内部类
2、内部类的作用:限制类的使用(内部类,只让Outer类使用Inner这个类)
3、内部类的分类:
1)、成员内部类:放在成员位置上的内部类
能修饰成员内部了关键字
修饰符:都可以
2)、静态内部类
3)、局部内部类:设计在一个方法里面内部类就是局部内部类
4、内部类可以方法外部类的那些成员
-
匿名内部类
匿名内部类是属于局部内部类
其实是由JVM帮我创建的一个局部内部类,这个类的名字,我们不知道匿名内部类的作用:当我们需要创建抽象类对象或接口对象,而且这个对象只用一次,可以使用匿名内部来来简化创建中间子类的过程
枚举
1、枚举:是特殊的结构(特殊的类)
public enum 枚举名 {
}
注意:枚举是继承一个抽象类Enum
2、枚举的作用:当设计的类创建的对象个数固定,那么就可以使用枚举来代替类
注意:
枚举创建对象,直接写常量名
枚举内部的成员几乎和类一样
枚举的构造方法的访问修饰符只能是private,默认都是private
调用:
Gender2 man = Gender2.MAN;
man.setValue("男人");
System.out.println(man);
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现