黑马程序员技术交流社区
标题:
为什么static只能修饰内部类
[打印本页]
作者:
林枢
时间:
2011-7-25 15:08
标题:
为什么static只能修饰内部类
而不能修饰外部的类
作者:
匿名
时间:
2011-7-25 15:17
标题:
希望对你有帮助 了解static的用法
[color=Red][/color]static:的用法
静态方法:通常,在一个类中定义一个方法为static,那就是说,用类名而无需本类的对象即可调用此方法。静态方法常常为应用程序中的其它类提供一些实用工具所用。
静态变量:静态变量与静态方法类似。所有此类实例共享此静态变量,也就是说在类装载时,只分配一块存储空间,所有此类的对象都可以操控此块存储空间,当然对于final则另当别论了。
static定义的变量会优先于任何其它非static变量,不论其出现的顺序如何。
static{}内的代码,是用来进行显式的静态变量初始化,这段代码只会初始化一次,且在类被第一次装载时。在涉及到继承的时候,会先初始化父类的static变量,然后是子类的,依次类推。
通常一个普通类不允许声明为静态的,只有一个内部类才可以。这时这个声明为静态的内部类可以直接作为一个普通类来使用,而不需实例一个外部类。但是,不能从静态内部类的对象中访问非静态的外围类对象和方法(可访问外部静态的对象、方法)。
作者:
匿名
时间:
2011-7-25 16:21
静态方法
通常,在一个类中定义一个方法为static,那就是说,用类名而无需本类的对象即可调用此方法。如下所示:
class Simple{
static void go(){
System.out.println("Go...");
}
}
public class Cal{
public static void main(String[] args){
Simple.go();
}
}
调用一个静态方法就是“类名.方法名”,静态方法的使用很简单如上所示。一般来说,静态方法常常为应用程序中的其它类提供一些实用工具所用,在Java的类库中大量的静态方法正是出于此目的而定义的。
静态变量
静态变量与静态方法类似。所有此类实例共享此静态变量,也就是说在类装载时,只分配一块存储空间,所有此类的对象都可以操控此块存储空间,当然对于final则另当别论了。看下面这段代码:
class Value{
static int c=0;
static void inc(){
c++;
}
}
class Count{
public static void prt(String s)
{
System.out.println(s);
}
public static void main(String[] args)
{
Value v1,v2;
v1=new Value();
v2=new Value();
prt("v1.c="+v1.c+" v2.c="+v2.c);
v1.inc();
prt("v1.c="+v1.c+" v2.c="+v2.c);
}
}
结果如下:
v1.c=0 v2.c=0
v1.c=1 v2.c=1
由此可以证明它们共享一块存储区。static变量有点类似于C中的全局变量的概念。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2