封装
尽可能隐藏对象的内部实现细节,控制对象的修改及访问的权限。访问修饰符:private。
以访问方法的形式,进而完成赋值与取值操作。提供公共访问方法,以保证数据的正常录入。
JavaBean 分为两种:1、数据承载Bean:私有化属性,对外提供公共的set、get方法,提供有参无参构造 2、业务逻辑Bean
继承
两个类之间的继承关系,必须满足“is a”的关系。根据程序需要使用到的多个具体类,进行共性抽取,进而定义父类。
- 1、子类继承父类,可以继承父类中的属性和方法
- 2、子类可以拥有自己独有的属性和方法
- 3、单继承,即在java中一个子类只能继承一个父类。但是一个父类可以拥有多个子类
- 4、多重继承,即一个父类还可以继承另外一个类。
java中最大的父类的是Object
(如果一个没有显示的写出extends 父类,默认就是Object子类) - 5、
构造方法不能被继承
- 6、父类的私有属性不能被继承
- 7、父类中使用默认的修饰符的修饰的属性和方法在
不同包
的子类中不能被继承
super关键字可以调用父类的属性、方法、构造方法
多态
父类引用指向子类对象,从而产生多种形态。
- 父类引用仅可调用父类所声明的属性和方法,不可调用子类独有的属性和方法。
- 如果发生多态,那么调用的一定是子类重写的方法。
向上转型和向下转型 - 向上转型即为发生多态,此时不能调用子类独有的属性和方法
- 发生多态要调用子类自己独有的方法和属性,那么需要发生向下转型。
- 发生向下转型之前必须要发生过向上转型
instanceOf关键字 - 语法:
对象名 instanceof 类型
- 作用:判断
该对象是否属于该类型
。属于返回true,否则返回false - 应用场景:在
向下转型
之前,最好先做一个判断。以免发生类型转换异常的错误
学习中遇到的问题
这里在循环内创建了WifeManage对象,所以每次在循环重新开始的时候都创建了新的对象,之前的对象没有存储下来。
WifeManage内数组变量加上了static后数据储存到Wife[]中成功了
原因:
静态属性的初始化时机在类加载的时候,在初始化阶段,所有的静态属性的赋值和代码块放入一个clinit方法,静态变量只在类加载是初始化一次。