1. 静态变量和静态方法都属于静态对象,静态对象和非静态对象的区别
| 静态对象 | 非静态对象 |
拥有属性 | 由类所共有 | 由类的各对象独立拥有 |
内存分配 | 分配固定内存(共享区,也叫方法区) | 堆内存(成员变量)栈内存(局部变量) |
分配顺序 | 静态对象先于非静态 |
2. 类中有实例方法,类方法(静态方法),类变量(静态变量),实例变量;静态变量,静态方法以static关键字修饰。
3. 类变量(类属性)由该类的所有实例共享。
4. 实例方法可以调用静态方法,但反过来不可以。静态方法里只能直接调用同类中其它的静态成员(包括变量和方法),
5. 静态方法或者静态变量可以直接用 类名.静态方法 类名.静态变量 引用
6. 静态方法中不能有this,super
7. 类属性,类方法的作用
随着类的加载而加载,只加载一次
类属性作为该类各个对象之间共享的变量。
在设计类时,分析哪些类属性不因对象的不同而改变,将这些属性设置为类属性。
如果方法与调用者无关,则这样的方法通常被声明为类方法,由于不需要创建对象就可以调用类方法,从而简化了方法的调用。
8. 代码块的初始化顺序
例题:
答案在下一页
答案:
static A
static B
I'm A class
HelloA
I'm B class
HelloB
9. 对Java对象的强制类型转换
从子类到父类的类型转换可以自动进行
从父类到子类的类型转换必须通过强制类型转换实现
无继承关系的引用类型间的转换是非法的
在造型前可以使用instanceof操作符测试一个对象的类型
10. 对象类型转换
从子类到父类的类型转换可以自动进行
从父类到子类的类型转换必须通过强制类型转换实现