static类和方法
来源:互联网 发布:百度seo推广方案 编辑:程序博客网 时间:2024/04/29 22:34
Java语言可以使用static关键字修饰类的成员变量和成员方法。被static修饰的成员变量,成员方法一般被称为静态(或者全局)变量(static field),静态方法(static method)。
本文介绍Java static的概念与使用方法。
有别于一般的变量和方法,静态变量,静态方法的作用域是类的所有对象。也就是说,当运行时,在程序空间中,类的所有对象访问到的静态变量都是同一个值,当其中一个对象改变了静态变量的值,其他对象都将受到影响。
正因为这样,静态变量,静态方法可以(建议)通过 类名.静态变量/类名.静态方法 直接存取。
对象.变量/方法
没有使用static修饰的成员变量,成员方法是作用于对象域的,通常被称作对象变量(instance field),对象方法(instance method)。当某个对象被创建时,它们才真正地存在于内存空间之中,而且对象本身对它们的改变,不会影响到其它对象。就好像 Person的一个对象zhangsan,zhangsan的改变不会影响到其它Person对象一样。
对象.变量/方法 定义例:
private String name;
private void someMethod() {
...
}
类.变量/方法
使用static修饰的成员变量,成员方法可以看作类的固有的,它作用于类的全体对象。当类的所有对象需要共享同一值时,可以使用static来定义。
例如,一个店铺(类),拥有多个分店(对象),便可以使用一个static变量来描述所有店的总营业额,这样每一个分店可以简单地访问(读/写)到公用的店的总营业额。
又如,PI=3.1415926,这时可以使用static来定义PI变量。当然,通常这种不希望改变static变量的情况,一般使用static final来修饰。
类.变量/方法 定义例:
private static long saleAccount;
private static float PI = 3.1415926;
private static void someMethod() {
...
}
Java static范例
TestStatic.java
- public class TestStatic {
- private static String staticValue = "";
- @SuppressWarnings("unused")
- private String value;
- public TestStatic() {
- super();
- }
- @SuppressWarnings("static-access")
- public static void main(String []args) {
- //直接使用 类名.静态方法名()
- System.out.println("TestStatic.staticValue");
- TestStatic.setStaticValue("static value");
- TestStatic t1 = new TestStatic();
- TestStatic t2 = new TestStatic();
- //t1, t2存取到的值应该是一样的
- System.out.println("from t1:staticValue=" + t1.getStaticValue()
- System.out.println("from t2:staticValue=" + t2.getStaticValue());
- //通过对象t1改变static变量
- System.out.println("t1.staticValue");
- t1.setStaticValue("t1");
- //t1, t2存取到的值应该是一样的
- System.out.println("from t1:staticValue=" + t1.getStaticValue());
- System.out.println("from t2:staticValue=" + t2.getStaticValue());
- //通过对象t2改变static变量
- System.out.println("t2.staticValue");
- t2.setStaticValue("t2");
- //t1 受到影响
- System.out.println("from t1:staticValue=" + t1.getStaticValue());
- }
- public static String getStaticValue() {
- return staticValue;
- }
- public static void setStaticValue(String staticValue) {
- //直接通过 类名.静态变量 存取
- TestStatic.staticValue = staticValue;
- }
- public String accessStaticValue () {
- value = staticValue; //普通的方法可以存取static 方法或 static变量
- return staticValue;
- }
- }
- static类和方法
- static 类方法和对象
- static 方法和static 变量
- 分析java中的类(static)变量和类(static)方法
- Java类中的static方法和static变
- PHP类的静态(static)方法和静态(static)变量
- 用static和static方法封装类的例子
- java_方法、类和对象、static
- 父类的static属性和方法
- Static成员和方法
- static变量和方法
- static 变量和方法
- Static方法和域
- static方法和static代码块区别
- Java static块和static方法
- Java static变量和static方法介绍
- static语句块和static方法
- java static块和static方法及static方法和非static方法的区别
- SCA概念与应用实践(2. SCA基本概念)
- eclipse 取消SVN默认账户
- 深度剖析WinPcap之(十)——数据包的内核过滤(16)
- 元数据设计
- CSS的DIV背景图放置(兼容IE6)
- static类和方法
- oracle中查看用户权限相关
- VB 一个函数传回多个值
- plsql的svn插件的体验
- 我的简历
- CodeBehind 和 CodeFile 属性的区别
- 数据库只读的设置和取消
- G1系统查询码
- M$window下安装Python