免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1300 | 回复: 0
打印 上一主题 下一主题

JAVA 静态成员 static [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-06-01 09:20 |只看该作者 |倒序浏览
static关键字


一、作用:是一个修饰符,用于修饰成员(成员变量,成员方法)
1、被static 修饰后的成员变量只有一份
2、当成员被static修饰之后,多了一种访问方式,除了可以被对象调用之外还可以被类名直接调用(类名.静态成员)


二、static的特点:
1、随着类的加载而被加载
2、优先于对象的存在
3、被所有的对象所共享的
4、可以直接被类名做调用

三、存放位置:
1、静态成员属性(类变量)随着类的加载而存在于data内存区。
2、普通成员属性随着对象的建立而存在于堆内存。

四、生命周期:
1、静态成员(类变量)生命周期最长,随着类的消失而消失
2、非静态成员(实例变量)生命周期比静态成员短,随着对象的消失而消失

五、方法的注意事项:
1、静态的方法只能访问静态的成员
2、非静态的方法即能访问静态的成员(成员属性,成员方法)也能访问非静态的成员
3、今天方法中是不可以定义 this、super关键字,因为静态优先于对象存在,所以静态方法不可以出现this
  1. class G{
  2.     String name;
  3.     int age;    //成员属性(另一种叫法(实例变量)
  4.     static String country;    //静态成员属性(另一种叫法:类变量)
  5.     static void jt(){
  6.         System.out.println(country);    //静态方法里面访问静态成员属性时,不能使用this关键字,不能访问非静态成员属性。
  7.     }
  8. }

  9. public class Index{
  10.     public static void main(String[] args){
  11.         G A    =    new G();
  12.         A.country    =    "小明";
  13.         G B =    new G();
  14.         System.out.println(A.country);    //对象A,定义了country成员属性的值,可以输出,这是常规的方式
  15.         System.out.println(B.country);    //对象B,没有定义country成员属性的值,也可以输出
  16.         System.out.println(G.country);//类名.static成员,也可以输出

  17.         B.jt();    //调用静态方法
  18.     }
  19. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP