static
static成员不能通过对象实例来访问,它必须通过类名来访问。原因是它不作用于类的实例。实质上,被声明为static的变量是全局变量。当声明类的对象时,不用拷贝static变量,而是类的所有实例共享一个static变量。static方法不用创建任何对象,只用类名就可以调用。static变量在类被装载时初始化。如果没有明确的初始化值,数值类型将被初始化为0,对象引用初始化为空,bool类型变量初始化为false。因此static变量总有一个值。
static方法不能引用this。static方法只能直接调用其它static方法,原因是实例方法作用于类中的特定实例,但static方法不是。static方法只能直接访问static数据,它不能使用实例变量,原因是它不作用于类的实例。
this
this是保留的指针。指向当前对象。虽然有时候写它不写它,看起来没什么不同。实际上它的好处就是在编译期就可以获得对象的地址。比如一个类中有个成员类。成员类需使用上层类的函数,就可以把this传到成员类中。
super
super是调用父类的构造函数 。使用super调用有一些限制条件,不能在super调用中使用实例变量作为参数. 而且在构造函数中,调用必须写在继承类的构造函数定义的第一行,不能在构造函数的后面使用.
this和super
一个构造函数定义中不能同时包括this调用和super调用,如果想同时包括的话,可以在this中首先进行super调用.
transient
Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。
final
一个Java语言的关键字。你只能定义一个实体一次,以后不能改变它或继承它。更严格的讲:一个final修饰的类不能被子类化,一个final修饰的方法不能被重写,一个final修饰的变量不能改变其初始值。
abstract 抽象的
一个Java语言中的关键字,用在类的声明中来指明一个类是不能被实例化的,但是可以被其它类继承。一个抽象类可以使用抽象方法,抽象方法不需要实现,但是需要在子类中被实现 。
经专家指正,现修正如下:
"static成员不能通过对象实例来访问,它必须通过类名来访问"
static成员是可以通过对象实例来访问的,但不建议这么做 。
public class A {
public static void print() {
System.out.println("A");
}
}
public class StaticTest {
public static void main(String[] args) {
A a = new A();
a.print();
}
}
posted on 2007-04-20 20:42
静儿 阅读(775)
评论(2) 编辑 收藏