A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 清秋 黑马帝   /  2011-11-17 22:14  /  1810 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

楼上正解
回复 使用道具 举报
本帖最后由 清秋 于 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有什么理解不




评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

3 个回复

倒序浏览
本帖最后由 潜王伟 于 2011-11-17 22:26 编辑

 我的一些理解:
   
   1、关于,main方法是static方法,但是为什么非要是static。
  原因就是,如果一个类她定义了main方法的话,那么她的main方法会在这个类的构造函数运行之前被调用。
  由于main方法运行的时候尚未在JVM里生成相应对象(构造函数未被执行),所以要声明为static。

 2、我觉得,“static"方法就是没有this的方法”这句话就是一句是废话,this是对象的引用。而static方法是一个类的方法,不是哪个特定对象的方法,所以在static方法里使用this 引用没意义。
      
   

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
视频多看几遍就懂了。

评分

参与人数 1技术分 +1 收起 理由
admin + 1 对!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马