胡博君浅谈Java中static的使用

来源:互联网 发布:ubuntu中安装jdk 编辑:程序博客网 时间:2024/05/29 14:57

        static关键字初步认识:

        被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。

       

         举个例子:

<span style="font-size:18px;">class  Person{static String name ;String sex;public void eat(){System.out.println("真好吃");}public  void paly(){eat();Person.say();this.sex = "男";this.name = "胡博君";}public  static  void  say(){System.out.println("我要说话了");}public  static  void  talk(){eat();  //这里会报错this.sex = "女";    //这里会报错Person.name = "胡博君";Person.say();}}</span>
          

            总结说明:

    根据上面的例子我们可以总结static的几个特性:

   1、被static修饰的方法或者属性可以直接用类名来调用,当然也可以用对象来调用,最好用类名来调用。【play()方法里面就充分的证实了这一点】

   2、被static修饰的方法中不能出现非static修饰的方法或者属性只能调用static修饰过的属性或方法,因为非static修饰的方法是属于对象的,而static修饰过的方法是在编译时期就产生的,static中不能出现未来的对象的方法也是符合逻辑的,因为我们无法调用未来的方法。【非static修饰的方法属于普通方法,也属于对象的方法。上面的talk()方法支持了此论述】

   3、被static修饰的方法中不能出现this或者super,因为这些都是对象,static属性编译时期的产物,原因和第二点一样,编译时期的东西不能调用以后才能出现的对象的方法,就是说现在无法调用未来的方法或者说非static修饰的方法。【上面的talk()方法中支持了此论述】

      


欢迎大家收看我的在线视频:

http://v.youku.com/v_show/id_XODQ1NjU0NDc2.html   这是其中的一个视频连接,大家可以拖动到优酷视频下方,订阅我的账号,因为以后我会有更多视频免费提供

百度搜索:输入Fcs_D调的码农 ,或者输入"胡博君"就能看到我的很多视频

或者加我的微信号:fcsboy     我可以及时通过微信通知你们

QQ学习群:237053693


         

0 0
原创粉丝点击