static关键字

1. 由static修饰的方法叫做类方法或静态方法。

2. 由static修饰的变量叫静态变量,也叫类变量。

3. 静态变量定义的位置是在方法之外。普通的各种变量都是属于某个对象,静态变量则是整个类只有一个变量,他跟对象是没有关系的,跟他相关联的是类而不是对象。

例:

package com.dzh.mystatic;

 

public class StaticDemo01 {

/**

 * 静态变量

 *

 * @param args

 */

 

int comm = 0; // 声明普通变量

static int staticint = 0; // 声明静态变量

 

// 类的构造方法

StaticDemo01(int x) {

comm = x;

}

 

public static void main(String[] args) {

// 创建两个对象

StaticDemo01 s1 = new StaticDemo01(1);

StaticDemo01 s2 = new StaticDemo01(2);

 

System.out.println("s1.comm = " + s1.comm);

System.out.println("s2.comm = " + s2.comm);

 

System.out.println("s1.staticint = " + s1.staticint);// 不规范的访问静态变量的方式,这里是为了体现静态变量与普通变量的区别

System.out.println("s2.staticint = " + s2.staticint);

System.out.println("静态变量staticint = " + StaticDemo01.staticint);// 规范的访问静态变量的方式

 

s1.comm++;// 通过对象s1改变普通变量的值

s1.staticint++;// 通过对象s1改变静态变量的值

 

System.out.println("改变后的值: ");

System.out.println("s1.comm = " + s1.comm);// 值改变

System.out.println("s2.comm = " + s2.comm);// 值不变

 

System.out.println("s1.staticint = " + s1.staticint);

System.out.println("s2.staticint = " + s2.staticint);

System.out.println("静态变量staticint = " + StaticDemo01.staticint);

// 通过一个对象改变静态变量的值,两个对象的值都改变了。静态变量作为类变量,所有的对象只是共有一个值。

 

}

 

}

 

4. 静态变量与静态方法都是在类从磁盘加载至内存后被创建的,与类同时存在,同时消亡。

5. 静态变量又称类的成员变量,在类中是全局变量,可以被类中的所有方法调用。

6. 静态变量的值由JVM自动初始化。

7. 通过一个对象改变静态变量的值,所有对象的访问的都是改变之后的值。通过“类名.变量名”来访问静态变量,“类名.方法名”来访问静态方法。

8. 使用静态方法注意:静态方法不能直接访问非静态变量;非静态方法可以直接访问静态变量。

 

9. 静态常量的定义:public static final double X = 3.1415926;

静态常量用来存储一些在程序中不会改变的信息。

10. 静态变量、静态常量的初始化是调用构造函数之前完成的。可以把静态变量的初始化放在静态语句块中提前完成初始化,因为静态语句块的执行实际上是在类加载的时候执行,在程序执行之前加载工作已经完成了。

package com.dzh.mystatic;

 

/**

 * 在静态语句块中完成对静态变量的初始化

 *

 * @author Daisy

 *

 */

 

public class StaticDemo04 {

public static final double PI = 3.1415926;//静态常量

static int x = 0;

 

static {

x = 100; //初始化静态变量x的值

}

 

public static void main(String[] args) {

//创建一个对象,创建对象之前会先执行static代码块

StaticDemo04 s = new StaticDemo04();

System.out.print(StaticDemo04.x);

 

}

 

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值