谈谈我对静态的一点理解吧:首先楼主说的this 关键字是代表该类的一个实例对象。比如定义一个 private int a ;在类内部使用的话就是this.a,在内外部就要new class().a
如果说的有错也请指点 就是要使用非静态的成员的话就必须创建一个实例对象。
对静态成员的访问不需要创建对象的实例,直接用类名.成员的方式来访问。
在内存中的表现形式:
非静态的成员都存放在堆内存中,必须要创建对象的引用才能对非静态成员进行访问。
而对于用static修饰的静态成员,是在编译Class文件过程中就已经存在于方法区中。
对于什么时候使用 static 修饰成员
1.静态变量:当数据是共享数据时定义为静态,比如毕老师视讲的售票系统中票的数量 TicketNum。
多个售票窗口(也即是多个实例对象)对同一个TicketNum进行操作,这个TicketNum就作为共享数据存在
如果是非静态的话,那么每一个实例对象都会创建一个自己的 TicketNum 变量。那么就不能达到对同一个数据进行操作。
2.静态常量:对一些固定不变的特有数据应该用静态修饰,比如PI 圆周率。而且要用 public static final 来修饰
3.静态函数:当功能内部没有访问到非静态数据时 该功能可定义为静态。这里涉及到对非静态数据的理解,就是你定义的静态方法中
不会涉及到对【该类】对象(也即是this)的引用。 |