静态和实例
来源:互联网 发布:加强我国网络文化建设 编辑:程序博客网 时间:2024/04/28 04:17
在java中有种静态修饰符static,static只能修饰变量和方法,不能修饰类。有static修饰的变量和方法是通常叫做静态变量和静态方法,而没有被修饰的变量和方法通常叫做非静态变量和非静态方法或实例变量和实例方法。我们常用的main方法就是静态的,在静态方法中是不可以使用实例变量和实例方法的,只能使用静态变量和方法,而在实例方法中即可以使用静态变量和静态方法,也可以使用实例变量和方法。
要在静态方法中使用实例变量和实例方法,就要创建一个新的对象去使用,而这个对象所对应的类要包含所要使用的实例变量和方法。
静态的变量和方法是这个类的方法,而实例变量和方法是实例的变量和方法,所以对静态的变量,方法的操作实际上是对这个类进行操作,而实例变量,方法不一样,实例的改变只会是这个实例变化,而类本身是不会改变的,例:
class Test2{static int number;String name;public static void a(){System.out.println("a方法可以运行");}public void b(){}}public class STATIC{public static void main(String[] args){Test2 t1 = new Test2();Test2 t2 = new Test2();Test2.a();//程序将输出“a方法可以运行”//Test2.b();是错误的Test2.number = 2;//Test2.name = "1";是错误的System.out.println("Test2.number = " + Test2.number);//程序输出的结果是“Test2.number = 2”t1.name = "小";t2.name = "大";System.out.println("t1.name = " + t1.name);//显示“t1.name = 小”System.out.println("t2.name = " + t2.name);//显示“t2.name = 大”t1.number = 3;t2.number = 4;System.out.println("Test2.number = " + Test2.number);//显示“Test2.number = 4”System.out.println("t1.number = " + t1.number);//显示“t1.number = 4”System.out.println("t2.number = " + t2.number);//显示“t2.number = 4”}}
在类Test2的对象中对实例变量name的改变是互不影响的,而对静态变量number的改变却是直接影响了类中变量的值。
从内存的角度出发,当类Test2一定义时,系统就为number在堆内存中分配了一个空间,而创建了一个Test2的对象,系统就为name 在堆内存中分配一个空间,所以所有的number都是公用一个空间的,所有的name都是使用不同的空间的。
另在static修饰的方法中是不能使用this的。
0 0
- 静态和实例
- 静态代码和非静态实例
- 静态方法和实例方法
- 静态方法和实例方法
- 静态方法和实例方法
- 实例成员和静态成员
- 静态方法和实例方法
- 静态变量和实例变量
- 静态字段和实例字段
- 实例方法和静态方法
- 静态成员和实例成员
- 静态初始化和实例初始化
- 静态方法和实例方法
- 实例域和静态域
- 动态实例化和静态实例化
- Final实例域、静态域、静态常量和静态方法
- 静态变量和实例变量的区别
- 静态变量和实例变量的生命周期
- 如何创建带子模块的Maven Web工程
- PHP数据加密技术之一---MD5()和Sha1()加密
- hdoj--5612--Baby Ming and Matrix games(dfs)
- invisible visible gone
- IQKeyboardManager(自动处理键盘事件)
- 静态和实例
- unity中关于图形学的基础知识(一)
- halo world ))) uva 10934 droping water
- MySQL批量SQL插入性能优化
- 目标检测的图像特征提取之(二)LBP特征
- Open quote is expected for attribute "class" associated with an elemen的解决方案
- item 23: 理解std::move和std::forward
- dfs(顺便求一下每个节点的儿子节点喽)
- android 学习笔记之20160307自定义对话框