Java基础学习(七)
来源:互联网 发布:玉米田间调查数据 编辑:程序博客网 时间:2024/05/20 16:33
问:静态变量和实例变量的区别?
在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。
在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。
静态变量不属于某个实例对象,而是属于类的,所以也成为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量也就可以被使用了。
总之,实例变量必须创建实例对象才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。
public class VariantTest{ public static int staticVar=0; public int instanceVar=0; public VarianTest(){ staticVar++; instanceVar++; }}
对于上面这个程序,无论VariantTest类创建多少个实例对象,静态变量staticVar只有一份存储空间,并且每创建一个实例对象,staticVar变量就会加1;但是没创建一个实例对象,就会创建一个instanceVar变量并为其分配存储空间,并且每个instanceVar的值都会加1。
问:是否可以从一个static方法内部发出对非static方法的调用?
不可以
因为非static方法是要与对象连在一起的,必须创建一个对象之后,才可以在该对象上进行调用,而static方法调用时不需要创建对象,可以直接调用。
也就是说,当一个static方法被调用时,可能没有创建任何实例对象,如果从一个static方法中发出对非static方法的调用,那个非static方法是要关联到哪个对象上呢?
0 0
- Java基础学习(七)
- java基础语法学习笔记(七)
- java基础学习笔记(七) ajax
- 零基础学习java(七)
- java基础学习(七)多态
- Java语言基础学习笔记(七)
- java学习——java基础(七)之 IO
- 零基础小白JAVA学习笔记(七)
- java 从零开始,学习笔记之基础入门<数组>(七)
- Java基础学习笔记:(七)this关键字
- XML学习基础(七)
- Python基础学习(七)
- Java学习笔记(七、网络编程基础)
- java基础学习要点七:内省
- 蜗牛—Java基础之学习(七)
- java基础学习之对象数组 七
- Java学习(七)
- Java学习(七)
- 第一个Spring MVC应用
- Windows R语言环境配置
- scribble semantic segmentation
- Android -- 源码平台下JAR包的引入与编译
- C++之explicit关键字使用总结
- Java基础学习(七)
- 在Windows下Python使用SSH若干事
- EXCEL2003、2007查找后变色显示
- 深入了解Bitmap源码解析及经验总结
- 基于注解的Spring MVC控制器
- linux的终端,网络虚拟终端,伪终端
- 给QWidget添加工具栏
- 2.定时器
- 【C++】队列容器 头文件 #include<queue> 解读