您的位置:首页 > 编程语言 > Java开发

胡博君浅谈Java中static的使用

2014-12-13 18:39 134 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: