static 关键字
1、修饰成员 不属于对象,在加载类的时候 已经为静态成员分配好内存栈中,可以通过KeyWord.name来访问
classKeyWord{
publicstaticStringname="HelloWorld";
}
publicclassStaticKeyWord{
publicstaticvoidmain(String[]args) {
System.out.println(KeyWord.name);
}
}
2、修饰方法 访问 KeyWord.sayHello()
classKeyWord{
publicstaticStringname="HelloWorld";
publicstaticvoidsayHello(){
System.out.println(name);
}
}
publicclassStaticKeyWord{
publicstaticvoidmain(String[]args) {
System.out.println(KeyWord.name);
KeyWord.sayHello();
}
}
3、修饰类,比如静态内部类
静态内部类是属于外部类,而不属于外部类的对象
创建静态内部类的时候是不需要将静态内部类的实例对象绑定到外部类的实例对象上。
可以访问外部的静态成员和和静态方法
实例化 StaticKeyWord.Hello hello = new StaticKeyWord.Hello hello();
classKeyWord{
publicstaticStringname="HelloWorld";
publicstaticvoidsayHello(){
System.out.println(name);
}
//静态内部类对象生成
publicstaticvoidstaticClassConstructor(){
StaticKeyWord.Hellohello=newStaticKeyWord.Hello();
}
//普通内部类对象生成生成
publicstaticvoidnoStaticClassContructor(){
StaticKeyWordstaticKeyWord=newStaticKeyWord();
StaticKeyWord.NoStaticClassHellonoStaticClassHello=
staticKeyWord.newNoStaticClassHello();
}
}
publicclassStaticKeyWord{
privatestaticStringkey="static";
publicstaticvoidmain(String[]args) {
System.out.println(KeyWord.name);
KeyWord.sayHello();
System.out.println(newHello().getKey());
}
//静态内部类 属于类
staticclassHello{
publicStringgetKey(){
returnkey;
}
}
//内部类 属于对象
classNoStaticClassHello{
publicStringgetKey(){
returnkey;
}
}
}
4 修饰静态代码块 在类加载的时候会执行静态块的代码
publicclassStaticBlock{
static{
System.out.println("===============");
}
publicstaticvoidmain(String[]args) {
System.out.println("HelloWorld StaticBlock");
}
}
//执行结果
===============
HelloWorldStaticBlock
5 修饰包导入 导入其它类的静态成员
importstaticjava.lang.String.CASE_INSENSITIVE_ORDER;
网友评论