Java 5.1 封装和修饰符
封装
信息隐藏;
java中的封装表现;
1.类本身就是一封装体;封装的是属性和方法;
2.方法本身也是一种封装;
3.可以通过访问修饰来控制各成员的可见性;
类的内部 同包 不同包的子类 不同包非子类
private y n n n
default y y n n
protected y y y n
public y y y y
final修饰符
final:最终的意思;
属性:常量,不能重新赋值
方法:不能被重写
类:不能被继承
static:静态的
使用static 可以修饰属性,方法,内部类,块;
static修饰属性
使用static修饰的属性是属于类的,而不用static修饰的属性是属于对象的;
static属性可以通过类名.属性名来进行访问;
static 属性有时也可以与final结合使用,这个属性就变成了全局的常量;
使用static 修饰方法
可以能过类名.方法名直接访问,而不需要创建对象;
static 方法中不能使用super,this关键字;
static 方法中不能使用非静态的属性和方法;
static 静态块
静态块是在加载类时被调用,因为一个类只加载一次,因此这个块中的代码只会被调用一次;
语法:
static{
//代码;
}
关于静态块的总结
创建一个类实例之前会调用 静态块中的代码;
调用一个静态方法时也会调用静态块;
使用一个非final的静态属性时会调用静态块;
单例模式
单例模式是设计模式中的一种,
什么是设计模式呢?就是解决某一类设计问题的一套解决方案,通俗的说,就是设计的套路;
目前设计模式一共有23种,共分为三类;分别是
创建型模式
结构型模式
行为型模式
单例模式解决一个类只允许创建唯一的一个实例;
单例模式的实现步骤
在类中定义私有构造方法(不允许外部直接创建)
在类中定义一个static 的当前类的实例
在类中定义一个static 方法,来返加这个唯一的实现 getInstance();
单例分为两种类型,分别是饿汉式,懒汉式;
abstract:抽象的
abstract可以修饰方法和类;
抽象方法:只有方法声明,而没有方法的实现;这种方法就是用来被子类覆盖的;
抽象类:不能被实例化;只能作为父类来使用;如果一个类中存在一个抽象方法,这个类一定是抽象类;
接口
接口是一个特殊的抽象类,接口中只有public static final属性及抽象方法;
抽象类和接口的区别?
抽象类中可以普通属性,方法,抽象方法,构造方法;而接口中只能public final static属性和抽象方法;
一个类只能继承一个抽象类;一个接口可以继承多个接口;一个类可以同时实现多个接口;
通常使用抽象类表示一个概念(一类事物),而接口表示一种能力;
面向接口编程
好处:扩展性强;降低耦合;