java static 关键字详解

static关键字 

实际是指定了这些变量和方法在内存中的“”固定位置“”stack storage,可以理解为所有实例对象共有的内存空间

stack 初始化有两种属性:

instance属性在创建实例的时候初始化

static属性在类加载
也就是第一次使用到这个类的时候初始化

提到static 关键字 就要想到3点分别是

1.static 修饰的 类

java中static一般用来修饰成员变量或者函数。但是有一种特殊的用法 用static 修饰内部类,普通类是不允许声明为静态的。只有内部类才可以。用static修饰的内部类可以直接作为一个普通类来使用,而不需要直接实例一个外部类。

main 方法中的内部类

public class Demo {
	public static void main(String[] args){
		inner in = new inner();      //由于内部类没有声明成静态类导致了在 静态方法中调用动态方法的错误
		
	}
	public class inner{
		public void innerMethod(){
			
		}
	}
}
public class Demo {
	public static void main(String[] args){
		inner in = new inner();      //加了static关键字修饰后可以正常使用
		
	}
	public static class inner{
		public void innerMethod(){
			
		}
	}
}

2.static 修饰的 成员方法

static修饰的成员方法可以直接通过类名访问 成员方法只能调用static修饰的成员变量。


3.static 修饰的 变量

static 修饰的变量的意义是不需要实例化某个类就可以直接调用

全局变量

还是可以通过类名调用

你可能感兴趣的:(java)