java se 权限修饰符、final关键字、代码块、内部类
一、权限修饰符
1.简述:
public:最高权限,那都可以访问
protected:受保护的
default:default 默认的(不写权限修饰符就是默认权限,不能直接把default写出来)
private:私有的(只能在自己类中直接访问)
2.不同权限的访问能力
public | protected | default(空的) | private | |
同类 | yes | yes | yes | yes |
同包不同类 | yes | yes | yes | no |
不同包子父类 | yes | yes | no | no |
不同包非子父类 | yes | no | no | no |
public -> 最大权限 privat->最小权限
建议:
属性: 用 private -> 封装思想
成员方法: public -> 便于调用
构造: public -> 便于new对象
二、final关键字
1.final修饰类
格式: public final class 类名{}
特点:被final修饰的类不能被继承
2.final修饰方法
格式:修饰符 final 返回值类型 方法名(形参){
方法体
return 结果}
特点:被final修饰的不能被重写(final 和abstract 不能同时修饰一个方法)
3.final修饰局部变量
格式:final 数据类型 变量名 = 值
特点:被final修饰的变量不能被二次赋值
4.final修饰对象
格式:final 数据类型 对象命 = new 对象()
特点:被final修饰的对象,地址值不能改变,对象中的属性值可以改变
5.final修饰成员变量
格式:final 数据类型 成员变量 = 值
特点:1.需要手动赋值。2.不能二次赋值
三、代码块
1.构造代码块
格式:{
代码
}
执行特定:优先于方法执行,每new一次,就会执行一次
2.静态代码块
格式:static{
代码
}
特点:静态代码块优先于构造代码块和构造方法执行,而且只执行一次。
3.静态代码块使用场景
一些代码最先初始化而且只初始化一次
四、内部类
在java中允许一个类定位于另外一一个类,前者是内部类,后者是外部类
分类: 成员内部类,局部内部类,匿名内部类
1.静态成员内部类
格式:直接在定义内部类的时候加上static关键字
public class A{
static class
B
{
}
}
注意:
- 内部类可以定义属性,方法,构造
- 静态成员内部类可以被final或者abstract修饰(final->不能继承,abstract->不能new)
- 静态内部类不能调用外部的非静态成员
- 内部类还可以被四种权限修饰符修饰
调用内部静态类:外部类.内部类 对象名 = new 外部类();
2.非静态成员内部类
格式:
public class A{
public class
B
{
}
}
注意:
- 内部类可以定义属性,方法,构造
- 内部类还可以被四种权限修饰符修饰
调用非静态内部类:外部类.内部类 对象名 = new 外部类().new 内部类();
3.局部内部类
可以在代码中构造中代码块中
4.匿名内部类
格式:
new 接口/对象类(){
重写方法
}.重写的方法();
或者:
类名 对象命 = new 接口/对象类(){
重写方法
}
对象命.重写的方法();
使用情况:仅简单使用一下接口里面的方法。