一.static关键字.
通常来说,当创建一个类时,就是在描述那个类的对象的行为(方法)和属性.除非用new关键字来创建该类的对象,否则未能获得该类的任何对象。当该类的对象被创建了,数据存储空间才会被创建,才能调用该类的方法和属性.
但是碰到以下情况,上述情形不能很好地满足需求.
1.只想为特定域来分配存储空间,而不去考虑要创建多少对象,甚至不需要创建对象.
2.希望该类的某个方法不和该类的任何对象关联在一起,换一种说法就是不需要创建该类也能调用这个方法.
基于以上考虑,JAVA提供了static关键字.
static关键字声明的属性和方法,可以不需要创建对象直接通过类名来调用.
eg.
package com.sam.j2se;
public class StaticTest {
public int noStatic = 1;
public static int isStatic = 1;
public static void main(String[] args) {
// System.out.println("noStatic = " + noStatic);//编译期间报错
// 不需要创建对象也能调用
isStatic++;
// 编译报错,static方法只能调用static方法.
// System.out.println(useStatic());
// 调用static 方法
System.out.println(staticMothed());
}
public int useStatic() {
StaticTest.isStatic++;// 使用类名直接调用.
return this.isStatic;
}
public static int staticMothed() {
return isStatic;
}
}
从例子中总结如下:
1.static修饰的方法可以不创建对象调用static方法或者属性.
2.static修饰的方法不能不通过对象直接调用本类的非static的属性.
3.static修饰的方法和属性可以通过类名直接调用.