static关键字



1. static关键字可以修饰属性

  • 称为静态属性也叫做类的变量

  • 在方法区(共享区)中存储,并且所有对象都可以访问

  • 与类同生死,也就是说类存在时static修饰的属性就存在

  • 可以使用类名.属性名称,也可以使用引用名称.属性名称

    注意:当引用名称的值为null时,也可以访问静态属性,不会出现空指针异常

  • 类优先于对象,也就是说类的生命周期比较长



2. static关键字可以修饰方法

  • 称为静态方法也叫做类的方法

  • 与类同生死,也就是说类存在时static修饰的方法就存在

  • 可以使用类名.方法名称([参数列表]); ,也可以使用引用名称.方法名称([参数列表]);

注意:当引用名称的值为null时,也可以访问静态方法,不会出现空指针异常

  • 静态方法中只能访问静态属性、静态方法

  • 当方法体中只访问静态属性、静态方法时,可以编写为静态方法



3. static关键字可以修饰代码块

  • 主要完成对静态属性赋值

  • 静态代码块在类第一次被载入时执行


      Student{
    	//静态代码块:完成对静态属性赋值
    	static{
    		address = "北京市";
    		System.out.println("执行了静态代码块。。。。。");
    	}
    	//构造方法:完成对实例变量赋值
    	public Student(){
    
    	}
    	public Student(String name){
    		this.name = name;
    	}
    	//属性
    	String name; //称为非静态属性,也叫做实例变量
    	
    	//static String address = "北京";  //称为静态属性也叫做类的变量
    	static String address;
    
    	//称为静态方法也叫做类的方法
    	public static void print2(){
    
    	}
    	public static void print(){
    		System.out.println("执行了print方法");
    		//System.out.println(name);  //静态方法中只能访问静态属性、静态方法
    		System.out.println(address);
    		print2();
    	}
    	//称为非静态方法也叫做实例方法
    	public void show(){
    		System.out.println("执行了show方法");
    		System.out.println(name);
    		System.out.println(address);
    		print();
    	}
    }
    



原文地址:https://www.cnblogs.com/huochemeiyouhuo/p/12164410.html