1、面向对象
封装:找出与实体相关的名词,封装成对象
继承:
多态:
2、封装
数据+对数据的操作
实体类:创建对象+存放数据
1、创建时对属性变量进行属性私有化(private)
2、公有的属性方法
封装的优点:
(1)隐藏类的实现细节;
(2)让使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作;
(3)便于修改,增强代码的可维护性;
实体类命名后缀: Entity Bean Model Pojo VO I/
实体类:封装(事物)对象所定义的类
将各个相关数据封装在一起,类的对象主要用于存储每个数据的(功能类) (工具类)
实体类(创建对象+存放数据访问( 限制/控制/权限)修饰符
public公有的:所修饰的可以在工程中任意位置使用
私有的:所修饰的可以在当前作用域中使用
实体类封装的组成部分:
1-私有的属性变量:首字母必须小写。(变量名长度至少为3个字符, 除id)
2-公有的属性方法:getter/setter
3-构造方法:方法名与所在类名- -致,无返回类型:
类中若无任何构造方法,则可使用无参默认构造方法。格式: new 构造方法(// -- 否则仅能使用所定义的构造方法。
否则仅能使用所定义的构造方法。
3、继承
//概念:
//子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法, //或子类从父类继承方法,使得子类具有父类相同的行为。
//继承(is-a)
//本质:包含并可使用所继承类中可访问的内容
//默认:直接继承extends object (Object是所有类的基类/超类)
//注解“@"annotation/注释javadoc
重写的规则
*****若对象已调用的方法已经重写,则调用重写后的方法,否则调用的是父类中的方法
1-参数列表必须完全与被重写方法的相同;
2-返回类型必须完全与被重写方法的返回类型相同;
3-访问权限不能比父类中被重写的方法的访问权限更低。/例如:父类的A方法是public,那么在子类中重写该方法就不能声明为protected。
4-父类的成员方法只能被它的子类重写。
5-声明为final的方法不能被重写。
6-声明为static的方法不能被重写,但是能够被再次声明
7-子类和父类在同一个包中,那么子类可以重写父类所有方法,/除了声明为private和final的方法。
8-子类和父类不在同一个包中,/那么子类只能够重写父类的声明为public和protected的非final方法。
9-重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。/但是,重写的方法不能抛出新的强制性异常,/或者比被重写方法声明的更广泛的强制性异常,反之则可以。
10-构造方法不能被重写。
11-如果不能继承-一个方法,则不能重写这个方法。
重载:
在一个类中,方法名相=相同,参数不同(个数,类型,顺序)
继承规则:
不支持多继承:一个实体类同时继承多个实体类
支持:
单继承:calss A extends B{}
多重继承:class A extends B{}
class C extends A{}
t1为实体类的对象:
t1.clone();克隆
t1.getClass():获取类的描述,反射
多线程:
t1.notify();
t1.notifyAll();
t1.wait();
t1.wait(timeout);
t1.finalize()(不推荐使用)
GC垃圾自动回收机制,
3、访问限制符
public:
作用: 对工程中的所有类可见
位置:类,接口,成员变量,成员方法
一个java文件中只能由一个public 修饰的class类
private
作用:在当前类内可见。
位置:成员变量,成员方法
不能修饰外部类
protected
作用:对同包内和所有子类可见
位置:成员变量,成员方法
不能修饰外部类
friendly(缺省,默认)
作用:在同一包内可见
内部类默认修饰符为public
外部类默认修饰符为friendly(缺省的)
继承的(自动)向上转型
Animal c=new Dog();
面向接口的编程方式
向上转型:下级对象赋值给上级变量
调用规则:仅能调用变量类型的方法和变量
若是重写方法,则调用子类中的重写方法
调用变量的时候只看变量的类型。
4、this指针
代指当前对像的引用
作用:能够调用所在方法的变量
this在调用构造函数的时候,要避免递归现象;
5、super
表示的是父类对象
子类实例化时,会先实例化父类,
父类实例化时使用的构造方法取决于子类中的super()方法参数
5、修饰符final
被修饰的类,方法和变量不可改变
修饰变量时,必须赋予初值
6、static
static方法不需要对象就可以进行调用
通过类名直接调用
类在第一次使用是自动执行一次静态代码块
之后调用实例代码块
最后调构造函数生成对象