[if !supportLists]一.[endif]代码块
[if !supportLists]1. [endif]静态代码块
位置:类中 数量:多个 语法:static{} 执行顺序:依次执行静态元素 自上向下包括静态变量和静态代码块 静态方法调用才执行 作用:经常给静态变量赋值 实际开发中还会把一些全局的初始化配置放在静态代码块中执行 比如说一些准备性工作
[if !supportLists]2. [endif]局部代码块
位置:方法里面 语法{} 数量:多个 执行时需要被调用才执行 作用:局部代码块中定义的变量只在局部代码块中有效 体现了封装思想
[if !supportLists]3. [endif]成员代码块
位置;类中数量:多个 语法{} 创建对象的时候 成员代码块 成员变量从上到下依次执行 最后执行构造方法
[if !supportLists]4. [endif]总结
代码块在实际应用中 静态代码块相对较多
[if !supportLists]二.[endif]封装
1.把属性封装起来 禁止通过对象属性来访问 对外提供公开访问方法
2.为什么:简单 安全 方便
3.封装的层次:1.方法封装了功能
2.类封装了属性和功能
3.权限的封装可见性封装 四个修饰符private 私有的 访问权限最小 只在类中可见 默认(啥也不写) 当前可见 包可见 protected受保护的当前包和其他包中的子类 public公开的 当前项目的所有包都可以访问
4.Java中如何实现封装
不对外直接暴露属性如果需要通过操作属性 通过对外暴露的方法 也就是用private修饰属性 在类外就不能给属性赋值了 提供public 修饰的get set方法来分别设置属性的值 获取属性的值
类的属性 方法都可以使用这四个修饰符 但类只能用public 默认
Public修饰的类必须和.java文件相同
实体类(javabeen)属性一般用private修饰 提供public 修饰的get set方法来分别设置属性的值 获取属性的值
创建对象给对象赋值 两种方式:1.set方法 2.构造方法
[if !supportLists]三.[endif]继承
注意事项:1.Java的继承是单继承一个类只有一个父类
2.可以有多层继承
3.如果没有指定父类 默认有一个父类Object 所有类都有一个顶级父类Object
创建子类实例时 会调用父类的构造方法 初始化父类数据
This指向子类数据 super指向父类数据