---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
08/04/29 开学的第五天安排:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1.静态成员:
a.静态的属性: static type variable
b.静态的方法: static 返回类型 doSomething(){}
c.静态块 : static {}
d. 静态成员不能访问非静态成员;非静态成员能访问静态成员
2.JDK1.5中的静态引入:
import static 完整的类路径.ClassName.*;
引入静态成员后,访问类的静态成员无须再加类名直接使用就可以
3.静态成员与非静态成员的区别:
a.静态成员属于类的成员
b.静态成员的加载跟类的加载是一个过程,
类的加载方式:Class.forName("ClassName"); 在程序中第一次使用的时候 ;调用静态成员的时候 ;ClassLoader.loadClass("ClassName");
c.非静态成员是对象的成员,在对象产生的过程才加载
d.静态成员不能访问非静态成员,而非静态成员可以访问静态成员
e.静态成员的访问使用 类名.成员 ;非静态成员的访问只能时候 对象.成员
f.静态成员只加载一次,而非静态成员每次实例化的时候都要加载
4.块:静态块和非静态块
区别与上面相同
5.抽象类:
a.语法: abstract class ClassName{}
b.抽象类中可以含有抽象的方法,也可以没有,但是含有抽象方法的类一定是抽象类
c.适用于类内有抽象的方法也有非抽象方法的情况如:运动员中运动的方法
6.继承:
a.单继承,所有类都有一个父类java.lang.Object
b.方法的覆盖:在子类中与父类方法同名,这样会将父类方法覆盖,但是属性不能覆盖
c.子类的构造函数会一次调用父类的构造函数,如果父类有多个构造函数则会调用默认
的构造函数,如果不存在默认函数则必须显示的使用super()调用一下,但必须放在第一句
不需要调用默认构造函数的时候也必须要使用super调用指定的构造函数
d.方法重载:方法的名称相同但是参数类型不同,返回类型可以不同
e.方法的覆盖:
只能放大权限,不能缩小权限
构造函数不能覆盖,
静态方法不能覆盖是类的方法不是对象的方法
f.多态:使用父类对象操作子类实例 同一对象因调用实例不同显现各项异性
7.final关键字:
a.修饰类:不可继承的类;
b.修饰属性:代表常量;
c.修饰方法:不可覆盖
8.接口:inteface variableName{}
a.定义方法必须是抽象,不用abstract也是默认抽象的;
b.接口中可以定义属性但默认就是static final的 即使不加修饰会自动加上
c.接口间可以继承
d.接口与类的实现关系,可以通过多实现来完成多继承
e.也可以使用借口来操作实现类,也是多态的一种,另一种就是使用父类操作子类
9.枚举:a.enum variableName{}定义固定的对象类型直接使用
b.枚举可以适用于 switch(){}语句
c.枚举类型不能直接创建,只能是定义好的几种固定的实例,也可以再定义属性方法和构造函数
d.但构造函数只能是私有的 enum的父类都是java.lang.Enum 而 Enum的父类又是Object ,但是在enum
类中仅可以覆盖 toString()方法和finalized方法
e.enum能实现接口,但不能继承自其它类或枚举 也不可以 克隆
f.枚举默认有两个属性 name,ordinal枚举中给出的名字是静态的实例
h.继承了Enum中的所有方法 name(),ordinal() valueof()返回枚举类型的实例