随笔-60  评论-117  文章-0  trackbacks-0

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)  编辑  收藏

评论:
# re: java中几个关键字 2007-04-20 21:12 | 山风小子
匆匆看了下,
"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();
}
}

加油噢~  回复  更多评论
  
# re: java中几个关键字 2008-05-10 13:14 | 王志
这个专家指证还是有问题,不是 上面说的那样 ,而且例子也没有很好的解释,所以版主还是 自己 找些能够说明问题的 例子。  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: