本帖最后由 清秋 于 2011-11-21 09:49 编辑
static 真是个让人纠结的东西
看着看着我就混乱掉了
(一)
静态:static
用法:是一个修饰符,用于修饰成员(成员变量,成员函数)
当成员被静态修饰后,多了一种调用方式。可以直接被类名调用
类名.静态成员
事例变量和类变量的区别
1.存放位置
类变量随着类的加载而存在与方法区中
实例变量随着对象的建立而存在于堆内存中
2.生命周期
类变量生命周期最长,随着类的消失而消失
实例变量生命周期随着对象的消失而消失
静态的使用注意事项(重点):
1.静态方法只能访问静态成员。
2.静态方法中不可以定义this,super关键字
因为静态优先于对象存在
3.主函数是静态的
(二)
静态代码块
格式:
static
{
静态代码块中的执行语句
}
特点:随着类的加载而执行,只执行一次,并优先于主函数
用于给类经行初始化
理清代码块的执行顺序
:静态代码块 ==》 构造代码块 ==》 构造函数
(三)
静态内部类
当内部类在成员位置上,就可以被成员修饰符所修饰
比如,private:将内部类在外部类中进行封装
static:内部类就具备了static特性
当内部类被static修饰后,只能直接访问外部类中的static成员。出现了访问局限
在外部其他类中如何访问static类中的非static成员
new Outer.Inner().function();
在外部其他类中如何访问static类中的非static成员
Outer.Inner.function();
注意:
当内部类中定义了静态成员,该内部类必须为静态
当外部类中的static方法访问内部类时,内部类也必须是static的
当描述事物时,事物的内部还有事物,该事物用内部类来描述
因为内部事务在使用外部事物的内容
还有。匿名函数例子中也用到static...
大家对static有什么理解不
|