权限修饰符
- public
- protected
- 默认(空)
- private
高级修饰符关键字
- static【静态的】
- final【最终的】
- abstract【抽象的】
- sychronsized【同步锁】
1)static 静态的 【共享(公共设施)】
-
**缺点:占用资源不放(非必要不使用)
-
作用的资源:属性,方法,内部类,块
-
特征:修饰的资源与对应类的对象没有关系,与类有关系,属于对应类的所有对象的共有资源。
-
a:修饰属性时 静态属性——共享信息
-
由static修饰的变量不会在调用数次函数时相互独立,所有被调用该函数的对象中该变量的数据共享
-
即:静态属性不属于某一个该类的对象私有,属于大家共享
-
静态资源与对象没有关系——与类有关系
-
可以使用类直接调用
-
语法:类名.属性【=值】;
- 静态属性可以使用对象调用【不推荐,会出现警告】
-
语法:对象名.属性【=值】;
- *用法:类共享数据
-
-
b:修饰方法时 静态方法——对象共享
-
可以使用类名直接调用
-
可以使用对象调用【不推荐,会出现警告】
-
*应用场景:工具类中工具方法
-
-
c:修饰块 静态块
-
当前类被加载的时候最先调用执行,并且只执行一次
-
跟类有关系,跟对象没有关系
-
与普通块的区别:普通块需要创建对象时才调用,跟对象有关系
-
*应用场景:JDBC连接池的驱动类加载
-
-
d:修饰内部类 静态内部类
- 获取对象:类名.内部类名 对象=new 类名.内部类类名();
2)final 最终的 【无法变更】
-
**被final修饰的内容都是最终形态,再也无法进行变更。
-
修饰资源:属性,方法,类
-
a:修饰属性时——常量
- 一般情况下 定义常量可以使用static和final一起修饰。
- 例如:public static final num=0;
-
b:修饰方法时——一般继承里面才有,表示此方法无法被子类重写
-
c:修饰类时——不可以被继承
面向对象的特征【四大特征】——抽象,封装,继承,多态
-
1)抽象——不具体内容具体化【很多时候讲特征会排除它】
- 代码真实数据表示生活中的感官实物信息
-
2)封装
-
属性的封装:属性私有化,提供公共公开的方法以便获取和修改属性的值
-
为什么会有封装?
- 原先没有封装的时候,属性中存在问题
- 属性问题:属性暴露出来——只要创建对象就可以直接操作属性的值
- 业务中该类问题是不被允许的——不给直接访问属性
-
可以使用方法进行属性赋值
-
——方法中可以判断传入数据是否合法——以判定是否赋值
-
**封装总结:
-
java中封装的特性主要针对的是属性
-
要求:
-
属性私有化——使用private修饰 —— 不给直接方法
-
提供公共公开的方法public ——
-
set方法用于设置或者修改属性值
-
get方法利用方法的返回值原理获取属性值
-
-
-
-
-
3)继承
-
子类继承父类,直接获取父类除了私有以外的所有属性,方法,构造方法
-
场景:【代码复用】
-
a:多个类中代码重复
-
b:扩展类的功能
-
-
关键字:extends
- 如:public class Cat extends Animal { }
-
*子类如何获取父类的信息?
-
在子类并未创建父类对象却可以直接获取父类所有(除私有之外)信息
-
——省略了 关键字super
-
*super:只有在子类中有效,类似于this,发生继承时,在子类中自动创建一个父类对象存入super
-
用法1:super . 属性 / super . 方法
-
——在子类中调用父类的属性或方法
-
例:super . setName()
-
-
用法2: super(); ——写在子类构造方法内的最前面
- ——在子类的构造函数中调用父类的构造函数
-
-
-
-
-
4)多态