1.权限修饰符
含义:权限修饰符是用来控制类资源访问范围
权限修饰符关键字:public【公共的】 protected【受保护的】 默认【缺省】 private【私有的】
项目中权限范围:
本类----自己访问自己的资源
同一个包下不同的类---跨类
不同的包下类---不同文件夹下类相互资源访问
继承关系---子类获取父类的资源
权限范围:
本类中---自己调自己---public/protected/默认/private都可以调用
同一个包中不同的类--相互调用---public/protected/默认 可以
不同的包下面类相互访问---public可以
继承关系资源访问:
同一个包---public/protected/默认 可以
不同的包---public/protected 可以
权限大小:public>protected>默认>private
2.高级修饰符
含义:高级修饰符定义资源的作用类型
高级修饰符关键字:
static【静态的】 final【最终的】 abstract【抽象的】 sychronsized【同步锁】
不同修饰符的作用:
1)static 静态的 【共享的意思】
作用的资源:
属性 方法 内部类 块
A.修饰属性 静态属性---共享信息---售票例子
总结:静态属性不属于某一个该类独享私有 属于所有该类对象共享
所以静态资源与对象没有关系--与类有关系
可以不创建对象使用类直接调用
语法:类名.属性【=值】;
静态属性可以使用对象调用
语法:对象名.属性【=值】;
会出现警告---不推荐使用
用法:类共享数据
B.修饰方法 静态方法 ---对象分享
可以使用类名直接调用
可以使用对象调用【不推荐,警告】
应用场景:工具类中工具方法
C.修改块 静态块
当前类被加载的时候最先调用执行,并且只执行一次 跟类有关系
与普通块的区别
普通块需要创建对象的时候才调用 跟对象有关系
应用场景:JDBC连接池的驱动类加载
D.修饰内部类 静态内部类
SalTic.InnerClass sin=new SalTic.InnerClass();
sin.print();
获取对象:
类名.内部类名 对象=new 类名.内部类名();
总结:static修饰的资源与对应类的对象没有关系,与类有关系,属于对应类的所有
的对象共享资源
很大缺点:内存占用不放
要求:非必要不使用静态 官方很喜欢
2)final 最终的
被final修饰的内容都是最终形态
修饰的资源:
属性 方法 类
探索应用:
A.修饰属性的时候--常量--一旦赋值不可改变
一般情况下 定义常量可以使用static和final一起修饰
B.final修饰方法 ---一般在继承里才有
表示此方法无法被子类重写
C.final修饰的类不可以被继承
3)abstract 抽象的
A.当abstract修饰类时,该类成为抽象类,不能生成对象实例,但可以作为对象变量声明的类型,需要子类继承并覆盖其中的抽象方法
B.抽象方法必须在其子类中实现,除非子类本身也是抽象类