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修饰类:
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);