封装:数据隐藏 :private,get/set;
2: 将程序中的相同代码进行抽取封装成方法;
3:将一些负载的操作 变成比较简单的操作; jdbc ------> mybatis
继承:
1. is -a 的关系; 接口:like -a ; 组合 has-a 的关系;
2.子父类
3.方法重写 : 权限修饰符和异常可以变; 权限是需要大于等于父类的方法; 异常要越来约小;
class A
{
show() throws Exception {}
}
多态: (前提 : 有继承或者实现关系,重写了父类或者父类接口中)
1. 一个对象具有多重形态;
2.成员变量: 均为左; 变量是不存在覆盖的情况;
3.成员方法 : 编译左,运行右;
高级应用
1: staitc
a. 能够修饰 类(只能修饰内部类),方法和变量
b. static 修饰的数据 ( 方法和变量) 被该类的所有对象所共享 ,因为它属于这个类;
c. static 只能修饰 全局变量(成员+ 类变量) ,不能修饰局部变量;
d.静态数据可以直接访问静态数据; 不能直接访问非静态 (产生顺序的问题);
e: 子父类关系中,父类的静态方法不能重写为非静态;
f.静态数据 可以使用类名直接调用,虽然对象也可以调用,不推荐使用对象调用静态数据;如果使用对象调用静态数据,实际上是对象将操作委托给类;
g.静态代码块:伴随类的加载而执行,只执行一次; 构造代码块: 伴随着构造器的执行而执行,而且优先于构造器;构造代码块 主要是对程序中的成员变量进行显示初始化;
h. 静态导入
(练习)
2: final 关键字
a. 修饰类 不能被继承,方法 不能被重写, 变量 不能修改值;
b. final修饰的变量, 由于不饿能更改值所以被称之为常量;
c. 当final 修饰的是全局变量时,在定义该变量时必须显示初始化(不能默认初始化); 当final 修饰的是局部变量的时候,在使用之前必须显示化赋值,而且不能再更改;
d. fianl 也可以用于修饰方法的形式参数;方法的形式参数相当该方法的局部变量;
3: 访问控制,权限修饰符
public : 任意类中都可以访问,能修饰类,方法,变量;
default : 什么都不写,默认修饰符, 能修饰 方法,类, 变量;
protected: 受保护的,能修饰方法和变量;
prviate : 私有的,只能在本类中访问; 能修饰类(仅限修饰 成员内部类) 方法,变量;
同包同类 同包不同类 不同包不同类 不同包子父类 同包子父类
4:抽象类和接口
抽象类:
a.在java中 使用abstract 修饰的类 称之为抽象类; 只能提出一个大概的方法,但是无法描述具体的每个情况,这种时候使用 抽象类。 子类继承抽象类之后需要自己去实现抽象类的功能,抽象类只提供以一个标准;
b. 抽象类中有构造器,也可以自己定义构造器,但是不能通过抽象类中的抽象类 不能被实例化;
c.抽象类的使用 主要是通过创建新的类【子类】 继承该抽象类【父类】 ,创建子类对象,重写父类中的抽象方法,然后调用方法; 也可以通过匿名内部类的形式访问抽象类中的数据;
d.如果创建的新的类 继承了抽象类,但不重写抽象类中的抽象方法,则这个类夜要定义成抽象类;
e:抽象类不一定有抽象方法,抽象方法的类一定是抽象类
f.不能被private 修饰;
g.抽象类中 是可以用普通方法的;
疑问? 并没有节省代码,还是自己要重写 为什么还要继承抽象类;
抽象类: 只能够是子类的引用父类
我们举个简单的例子:我们有一个动物的类,里面有一个Run的方法,这个时候我们需要继承他,一只狗说我会跑,老虎说我也会跑,孔雀说我也会跑,这个时候每一个子类都要继承他,而且由于Run方法已经被父类实现了,所以每一个都要重写方法体,是不是很麻烦,这个时候JDK就说了,既然那么多类需要继承他,我直接不实现这个方法,你们谁用谁实现算了。这个就是抽象类存在的意义! 说的比较官方一些的话,就是抽象类可以将设计和实现分离,你写你的抽象类,我写我的实现方法。这也是为什么说抽象方法必须被继承才有意义 --------------------- 作者:何处锦绣不灰堆
意义 在于: 谁用谁实现,如果没有实现,父类的抽象方法是没有意义的;
接口 : interface name {
}
1.接口是对抽象类更高层次的抽象;
2.接口中的方法全部都是抽象方法(默认自带是public abstract 修饰);但是在JDK9中,接口中也是有可以存在不同方法的;
3.接口中只有成员变量,并且该变量是public static final 修饰 这不就变成了常量吗; 局部变量—— 在方法中存在的;
4:接口没有构造器,不能创建对象,只能通过创建接口的实现类【】的对象来使用接口;
5: 定义的子类实现了接口,但是没有重写接口中的全部抽象方法,该子类也需定义为抽象类;
6: 类只能单继承,但是接口可以多实现,也可以多继承;
7:接口继承了就必须实现它;
接口的作用: 是的开发和设计分开; 一个人负责设计接口,一些人负责实现接口;
如果是一个人开发 那么接口和类没有必要区分了。
5:内部类
6 : == 和equals 方法的区别;
7 : String类和object 类;
网友评论