1.static引入:
通常来说,当创建一个类是,就是在描述那个类的对象的外观与行为。除非用new创建那个类的对象,否则实际并未获取任何对象。当执行new来创建对象时,数据存储空间才被分配,七方法才供外界调用。
但是有两种情况是上述方法无法解决的。一种是,只想为某特定域分配单一存储空间,而不去考虑究竟要创建多少对象。甚至根本就不创建对象。另一种是,希望某种方法不与包含他的类的任何对象关联在一起。也就是说没有创建对象,也能调用这个方法。
static可以满足这两方面需求。声明一个static时,就意味着这个域或方法不会与包含它的那个类的任何对象关联在一块,即使未创建这个类的任何对象也可以调用其static方法。
2.static基本用法:
(1)只须将static关键字放在定义之前,就可以将字段或者方法设定为static,如下
class Test{ static int i = 1; }
现在即使创建两个Test对象,Test.i也只有一份存储空间,这两个对象共享一个i。如下
Test i1 = new Test(); Test i2 = new Test();
这里i1.i 与i2.i指向同一块存储空间,因此具有相同的值1。
(2)引用static变量有两种方法,之前的是一种,也可以用下面的方式直接用。注意这对于非static的成员是不行的。
Test.i ++;
这里使用类名引用static变量的首选方式。这是因为强调了变量的static结构,而且在某些情况下他还为编译器进行优化提供更好机会。
3.static方法
类似的逻辑可以应用到静态方法中,既可以像其他方法一样,通过一个对象来引用某个静态方法,也可以通过特殊的语法形式clasName.method()加以引用。定义形式如下
class Test2{ static void test(){ Test.i ++; } }
使用时可以用对象调用调用,如
1 Test2 t2 = new Test2(); 2 t2.test();
或者直接用类对其递调用。如:
Test2.test();
以上就是static的简单基本用法。总结如是。
时间: 2024-10-24 22:21:27