JAVA static关键字

static关键字的四种用法

1.static变量

       在类中定义变量的时候,加上static后可在同包不同类中通过类名.变量名直接调用

       定义:修饰符  static  数据类型  变量名;

       调用:类名.变量名

       static变量又称静态变量。静态变量在内存中只有一个,所有的对象都可以调用;而非静态变量在创建对象时就被创建,各个对象的非静态变量互不影响。

       static成员变量的初始化顺序按照定义的顺序进行初始化。

       注意:static不允许用来修饰局部变量。

2.static方法

       static方法又称静态方法。静态方法不通过对象就可以进行访问。

public class Main {
	
	public static void main(String [] args) {
		//直接调用,未创建对象
		Main.play();
		play();
	}
	
	public static void play() {
		System.out.println("<<<<");
	}

}

       静态方法不依赖与任何对象,没有对象就没有this,所以没有this.静态方法。

       在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法和变量是依赖于具体的对象才能调用。

       注意:在静态方法中不能访问非静态成员方法和非静态成员变量,但在非静态方法中可以访问静态成员方法和变量。

       想要在不创建对象的情况下调用某个方法,可以将这个方法设置为static方法。最常见的static方法是main方法(主函数)。

3.static代码块(静态块)

       static块可以置于类中的任何地方,static块不能出现在方法内部,类中可以有多个静态块。在类被初次加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次。

       static块可以用来优化程序性能:只会在类加载的时候执行一次。

       普通方法:每次调用都会创建新的对象

public void chat() {
		String name1 = "名字1";
		String name2 = "名字2";
		System.out.println(name1+"和"+name2+"在聊天");
	}

       静态块:只需要在初始化的时候创建一次对象

    private static String name1,name2;
	
	static {
		name1 = "名字1";
		name2 = "名字2";
		System.out.println(name1+"和"+name2+"在聊天");
	}
	
	public void chat() {
		System.out.println(name1+"和"+name2+"在聊天");
	}

4.静态导入

       导入类:

import packageName className; //导入指定的类
import packageName.*; //导入包中所有的类

       静态导入:

import static packageName.className.methonName; //导入某个特定的静态方法
import static packageName.className; //导入类中的所有静态成员

       导入后,可以在当前类中直接用方法名调用静态方法,不必再用className.methonName来访问。

 

       本文借鉴内容:http://www.cnblogs.com/dolphin0520/p/3799052.html

                                http://www.weixueyuan.net/view/6003.html

你可能感兴趣的:(java,static,关键字,用法)