31、static final常量:
1)必须声明的同时初始化
2)不能改变,通过类名.来访问
3)建议: 所有字母都大写
4)编译时会自动替换为具体的值 静态变量还需要到方法区获取 (并且还需要加载类)
32、abstract
抽象方法
1)由abstract修饰
2)只有方法的定义,没有方法的实现(无大括号)
抽象类:
1)abstract修饰
2)包含抽象方法的类必须是抽象类
3)抽象类不能被实例化
4)抽象类是需要被继承的,子类:
4.1)也声明为抽象类
4.2)重写抽象方法
5)意义:
5.1)包含公共的行为和属性,被子类所共享—提高代码重用性
5.2)为所有的字类提供一种同意的类型—向上造型
5.3)包含抽象方法,可以为子类提供一个统一的入口
33、接口
1)只能包含常量和抽象方法,常量必须在初始化时就赋值,默认添加static final(常量) 、public abstract(方法)
2)接口需要被继承,不能被实例化
3)子类需要重写接口中的所有抽象方法
4)一个类既继承又实现时,则先继承再实现
5)实现多个接口时,用逗号分隔
6)接口可以继承接口
7)接口是完全抽象的抽象类
8)接口时继承的单根性扩展
9)接口里面无构造方法,因为无需对变量进行赋值,无变量
10)抽象类可以有构造方法
34、设计原则:
1)公共的行为和属性放在父类中
2)所有子类的行为都一样-----普通方法
所有子类的行为不一样-----抽象方法
3)所有子类都具有的行为放在父类中,部分子类具有的行为放在接口中
35、多态
1)意义:
1.1)同一类型的引用指向不同的对象,有不同的实现
----------行为的多态:cut(),run()
1.2)同一对象被造型为不同的类型时,有不同的功能
---------对象的多态:我,水
2)向上造型:
2.1)父类型的引用指向子类的对象
2.2)能造型的类型有:父类型、实现的接口 造型后,能点出来的东西----等于或少于子类的
2.3)能点出来什么,看引用的类型
3)强制类型转换,成功的条件:
3.1)引用所指向的对象,就是该类型
3.1)引用所指向的对象,实现了该接口
4)通过instanceof来判断引用是否是某种类型,instanceof返回boolean结果,强转成功的条件是它为true的条件
36、内部类
1)成员内部类:不太常用
1.1)类中套类,外面的类叫外部类,里面的叫内部类
1.2)内部类只服务外部类,对外界不可见
1.3)内部类对象,通常在外部类中国创建
1.4)内部类中可以直接访问外部类中的成员,包括私有的。内部类中有个隐式的阴哟过指向创建它的外部类Aoo.this.a = a(a是外部对象)
语法:外部类名.this.
2)匿名内部类:
2.1)若一段程序中需要创建一个类的对象,而且这个对象创建后这个类的价值也就不存在了,这个类可以不必命名,称之为匿名内部类。匿名内部类只能建一个对象
2.2)匿名内部类中访问外部的数据,该数据需要是final修饰的(根据版本而定)
2.3)内部类也有独立的.class,任何类在编译时都有.class
37、面向对象三大特征:
1)封装:
1.1)类:封装的时对象的属性和行为
1.2)方法:封装的是具体的逻辑功能的实现
1.3)访问修饰控制符:封装的是访问权限
2)继承:
2.1)作用:避免代码重复,有利于代码的重用
2)父类:所有子类所共有的属性和行为
子类:子类所特有的属性和行为
3)子继承父后,子具有:父+子
4)单一继承、多接口实现、传递性
3)多态:
3.1)意义:行为的多态、对象的多态
3.2)向上造型 、强制类型转换、instanceof
3.3)多态的表现形式:
重写+重载
对面向对象的理解:以上的三个特点
38、调试Debug
F5:逐步调试(进入方法中)
F6:逐步调试(不进入方法中)
F7:跳出当前的方法
F8:调到下一个断点,若无下一个,则结束调试
打桩也可以调试