java中的static
来源:互联网 发布:淘宝怎么选发货地 编辑:程序博客网 时间:2024/06/06 19:31
最近贴吧有个小伙伴问我一些关于static关键字的问题,我当时感觉没有把一些根本的东西解释清楚,后来又翻了翻Think in java ,仔细学习了一下。
static是代表静态的意思,这个关键字可以用来修饰变量、方法、代码块、还有类。
1、static修饰变量时,表示这个变量是一个静态的变量,它被该类和所有该类创建的对象所共享,可以通过类名加点直接访问。
例子:
public class StaticExpample{
public static int i = 1;
public static void main(String[] args){
System.out.println(StaticExpample.i);
}
}
结果为1;
则这个i属性可以用StaticExpample.i直接访问。
2、static修饰的方法为静态方法,静态方法只可以访问该方法外的静态变量和静态方法,否则会报错。
例子:就是上面的程序,不过加了一个非静态的属性。
public class StaticExpample{
public static int i = 1;
public int j =2;
public static void main(String[] args){
System.out.println(j);
}
}
这个程序编译通不过,java: non-static variable j cannot be referenced from a static context,会报这个错误。
3、static修饰的代码块,它是在类被第一次加载的时候执行的。
例子:
public class StaticExpample{
public static int i = 1;
static{
i++;
}
public static void main(String[] args){
System.out.println(i);
}
}
这样结果就变为2了。
4、static只可以修饰内部类,普通的类它是不能修饰的,它的作用就是使内部类可以像普通的类一样初始化,不需要先声明一个外部类。
例子:
public class OuterClass{
static class InnerClass{
int i = 0;
}
}
如果像这样InnerClass有static修饰,InnerClass初始化new OuterClass.InnerClass()就行了。
如果类是这样:
public class OuterClass{
class InnerClass{
int i = 0;
}
}
则InnerClass的初始化:OuterClass outerClass = new OuterClass();
OuterClass.InnerClass innerClass = new outerClass.InnerClass();
感觉这个类就像静态变量了一样,可以类名加点访问了。
最后总结一下:static可以修饰变量、方法、代码块、和类,修饰变量和代码块是在类的第一次加载到内存中执行的,修饰方法和类可以看上面叙述的,感觉很详细了。
- Java中的静态static
- Java中的static关键字
- JAVA中的static关键字
- JAVA中的static用法
- Java中的static(1)
- 说说Java中的static
- 了解Java中的Static
- JAVA中的static
- java中的static
- java中的static
- Java中的static介绍
- java中的static
- java中的static详解
- Java中的static
- java中的static详解
- java中的static详解
- java中的static详解
- java中的Static
- SAS学习笔记之_N_
- java.io.FileNotFoundException: class path resource [XXXXX.xml] cannot be opened
- ZOJ - 1203 Swordfish (最小生成树 Prim)
- jQuery的deferred对象详解
- SQL中 decode()函数简介
- java中的static
- 液晶LCD1602实验
- 疯狂java_chap6
- page,request,session,application四个域对象的使用区别
- Problem G
- 矩阵的物理意义(三)
- 保存
- C++ Primer Plus的若干收获--(八)
- MAVEN常用命令