面向对象三大特征:封装、继承、多态
1.封装
目的是为了保护属性等不被随意修改,将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过类提供的方法来实现对隐藏信息的修改
第一步:私有化属性等private 关键字
第二步:提供公共的setter, getter方法作为出入口,(可以在里面添加自己的判断等)
第三步:赋值的时候调用setter,获取的时候进行调用getter
如果有有参构造方法,建议调用setter方法赋值,保证逻辑完整
好处:1.便于正确使用系统,防止属性错误 2.有助于提高系统松耦合,提高系统独立性 3.提高软件可用性 4.降低构造大型系统的风险
2.包
允许类组成较小的单元(类似于电脑的文件夹)便于查找,可以防止命名冲突,区分相同名字的类,并且有助于实施访问权限的控制
使用方法: 1.作为java源代码的第一行语句,用package开头声明,分号结尾,只能有一个
2.包名由小写字母构成,不能以圆点结尾
3.包名之前最好加上前缀,通常为组织倒置的网络域名
4.导包用import,Java默认会提供一些包,使用时候无需导入
3.权限控制
访问修饰符:
public:公共的,工程内所有的类都能访问到,大多数的方法
默认:包级私有,本包内的所有类,多用在临时变量
protected:包级私有+子类,在默认修饰符的基础上加子类即可访问
private:私有的,本包中可以访问,多用在所有的属性
修饰符 同一个类中 同一个包中 子类中 任何地方
private 可以 不可以 不可以 不可以
默认修饰符 可以 可以 不可以 不可以
protected 可以 可以 可以 不可以
public 可以 可以 可以 可以
4.static关键字(静态的)
1.static在修饰属性的时候:类属性
1)共用一个存储空间,不同对象调用修改的时候可以保存修改 2)可以使用类名直接调用 3)静态属性可以在普通方法中调用,也可以在静态方法中调用 4)普通方法不能在静态方法中直接调用,需要用对象.属性的方式调用
2.static在修饰方法的时候:
1)静态方法可以直接用 类名.静态方法名 调用 2)静态方法常常用作工具方法,不需要用对象调用 3)静态方法可以调用静态方法,不能直接调用普通方法,需要用对象调用 4)普通方法可以直接调用静态方法和普通方法
3.static在修饰代码块的时候:
1)静态代码块会在第一次访问该类型的时候,执行并只执行一次 2)在对象创建前就执行 3)静态代码块往往会用在配置文件的导入,单例模式的关键