代码块
作用:封装一段代码
语法:{}
定义位置:
1.方法中
注意:此时不会影响代码的运行,定义相当于没定义
2.类中,方法以外
注意:
1.此时,每次创建该类对象时,就会执行该代码块中的代码,
2.该代码在构造函数之前执行
3.在对象的属性赋初始值之后
static
含义:静态
可以修饰:
属性
含义:公共的(使用Static修饰符属性属于该类的所有对象,如果其中一个对其进行修改,name该类的所有对象的该属性都讲被修改)
使用方式:
对象名.属性名
或
雷鸣.属性名
注意:static修饰的属性不管该类有多少个对象,该属性只有一个.
方法
含义:静态方法
使用方式:
对象名.方法名(实参列表);
或
类名.方法名(实参列表);
注意:
静态方法中不能直接使用非静态方法成员(没有使用static修饰的属性或方法)
静态方法中不能使用this或super关键字
代码块
调用时机:JVM加载该类时调用
由于一个类只会被加载一次,所以改代码块只会被执行一次
语法:
static{
}
内部类
类加载
总结:使用该类时
使用类名调用静态属性或静态方法
创建该类对象
创建其子类对象
获取类对象时
在静态下对象的创建过程
没有继承关系
1,加载该类
2,给静态属性赋初始值
3,执行静态代码块中的代码
4,在堆内存中开辟空间
5,给非静态属性赋初始值
6,执行代码块中的代码
7,执行构造函数
8,赋值给栈用的引用
总结:先静,在非静态
final
含义:最终的,不可修改的
可以修饰:
类
语法:
访问权限修饰符 final class 类名{
}
特点:final修饰的类不能被别的类继承
属性
语法:
访问权限修饰符 final 数据类型 变量名=值;
特点:
final修饰的属性必须在声明时赋值
值不能被修改
方法
语法:
访问权限修饰符 final 返回值类型 方法名(形参列表){
}
特点:final修饰的方法不能被重写
局部变量
语法:final 数据类型 变量名;
注意:final修饰的局部变量只能赋值一次
名称
公共静态常量:使用public static final 修饰的属性
公共静态方法:使用public static 修饰的方法
常量
概念:不能被修改的变量或值称为常量;
abstract
含义:抽象的
例子:
描述一个动物类
属性:
性别
年龄
类型
方法:
吃
睡觉
可以修饰:
类
特点:不能直接创建对象
语法:
访问权限修饰符 abstract class 类名{
属性
方法
构造函数
代码块
静态代码块
}
方法
特点:没有方法体
语法:
访问权限修饰符 abstract 返回值类型 方法名(形参列表);
注意:
有抽象方法的类一定是抽象类
抽象类中不一定有抽象方法
子类继承与抽象类,要么重写父类所有抽象方法,要么自己也是抽象类
abstract与static不能一起使用
abstract与final不能一起使用
static与final可以一起修饰属性,方法