封装:
就是将一些逻辑代码和实现的细节封到一个类里,隐藏细节,外部不能随便修改或调用,需要声明对象的引用来调用,可以提高代码的复用性.比如在测试类里
实现流程
1. 私有化成员变量用private修饰
2. 公有set与get方法,在set里进行合理值判断
3. 创建无参和有参构造,在有参里进行set的判断
static修饰时变成类层级,用类名.调用
继承 (extends):
多个类有相同的部分,将同样的部分放到父类,子类都包含自己独有的方法,然后继承父类的相同的方法,实现代码通用编程。子类需要重写父类的方法@override注释然后super.show()调用。重写原则:1.方法名一样,参数列表及返回值相同2.访问权限不能变小可同级或变大3.子类重写方法不可抛出更大异常
- 子类可以继承私有成员变量,不可继承父类构造方法与私有成员方法
- 支持单继承
- 继承满足:子类is a父类
- 构造子类对象都会调用父类构造来将方法初始化
访问控制符 :
public:可在任意处使用,无论自己包或别的包
protected:只可以在本类中使用,其他的包不可以
deafalt: 只在本类的内部和本包中的类
private:仅在本类的内部使用
多态 :
有继承,重写,父类引用指向子类对象,意义:屏蔽不同子类的差异实现通用的编程
当父类的引用指向子类的对象时,可直接调用父类方法,若想调用子类对象需强转。例:
Person p = new Worker();
//调worker内的独有方法salary,强转。
((worker)p).salary();
强转判断:
//此处person不转,worker需强转;
if(p instanceof person){
syso..("不用转")
}syso..("需要强转")
多态的三种实现
//父类指向子类
1.Person p = new Worker();
2.//写个静态方法将父类当形参放入,用类名.此静态方法名(new 子类对象来调用)
public class R{
public static void father(Person p){
//调用子类的show方法
p.show();
}
public static void main(String[] args){
R.father(new Worker(20,"kk",1234));
}
}
3.接口的实现方法:因为接口比抽象类更抽象,不能new对象,因此不能用2方法中那样的形式new个对象,那么我们就需要定义一个类来实现这个接口,用类名.调用的时候TestA.test(new shixianA());比如两个接口类叫metal和gold,然后写monet类实现它两个,会重写他两,之后在测试类里,
//有点像定义一个父类实现多个子类的形式;
Money m = new Metal();
Money m = new Gold()
final :
修饰类:不能被继承,防止滥用string,stystem
修饰成员方法:不可被重写
修饰成员变量:必须赋初值变常量
开发很少用static或final单用
一般public static final double=3.11;