封装
修饰符
访问控制符修饰成员时的访问权限
修饰符 本类 同一个包中的类 子类 其他类
public 可以访问 可以访问 可以访问 可以访问
protected 可以 可以 可以 不可以
默认 可以 可以 不能 不能
private 可以 不能 不能 不能
private的使用
通过对象直接访问成员变量,这样操作会引起数据安全问题
考虑:能不能不让外界直接访问对象的成员变量???
·使用private解决:
private 是一个修饰符
可以修饰成员变量,也可以修饰成员方法
被private修饰的成员只能在本类中被访问
提供相应的getXxxx()和setXxxx()方法用于获取和设置成员变量的值;
方法用public修饰
接口
概述 -----接口可以看成是特殊的抽象类,即只包含有抽象方法的抽象类;
实现 -----与继承不同,一个类可以实现多个接口,实现的接口直接用逗号分隔,该类需要实现这些接口中定义的所有方法;一个类可以通过implements关键字实现接口,一个类实现了某个接口后必须实现该接口中定义的所有方法。
接口间可以存在继承关系,一个接口可以通过extends关键字继承另外一个接口,子接口继承了父接口中定义的所有方法。
interface Baller{
public static int DEFAULT_SPEED = 50;
public void run();
}
优点-----类与接口的关系,实现关系,而且是多实现,一个类可以实现多个接口,类与类之间是继承关系,Java中的继承是单一继承,一个类只能有一个父类,打破了继承的局限性;;对外提供规则(USB接口);;降低了成都的耦合性(可以实现模块化开发,定义好规则,每个人实现自己的模块,提高了开发的效率)。
抽象类
abstract:关键字 用于修饰方法和抽象类
抽象方法:不同类的方法是相似的,但是具体实现的内容不一样
所以我们只能抽取它的而生命,没有具体的方法体
抽象类:有抽象方法的类就是抽象类
一个类继承了抽象类,需要重写抽象类中的抽象方法;
抽象类的特点
1、抽象方法只能放在抽象类中;
2、抽象类和抽象方法都是被abstract修饰的;
3、抽象类不能创建对象();
4、抽象类中可以有非抽象方法的;
5、抽象类和类的关系是继承关系;
6、如果一个类继承了抽象类,要么重写它所有的方法;要么它本身设置为抽象类;