码迷,mamicode.com
首页 > 编程语言 > 详细

java中的static关键字

时间:2015-06-12 15:15:23      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:static

static是静态的意思。

static关键字:

1.static修饰的变量叫做“静态变量”.

2.static修饰的方法叫做“静态方法”.

3.static还可以定义静态语句块.

以下例子演示:static定义静态语句块

static定义的静态语句块在类加载阶段执行,并且只执行一次,并且是自上而下的顺序执行

public class StaticTest01{
	
	//静态语句块
	static{
		System.out.println("1");
	}
	
	static{
		System.out.println("2");
	}
	
	static{
		System.out.println("3");
	}
	
	static{
		System.out.println("4");
	}
	
	//入口
	public static void main(String[] args){
		System.out.println("main execute!  1");
		System.out.println("main execute!  2");
	}
	
}//1 2 3 4 main execute!1 main excute!2

静态方法不能直接调用成员方法,成员变量和使用this关键字。因为静态方法的访问时"类名."方式。

关于实例语句块

/*
	关于实例语句块
		每一次调用构造方法之前会执行一次。
		实例语句块执行顺序也是自上而下。
*/

public class StaticTest02{

	//静态语句块
	static{
		System.out.println("A");
	}
	
	//实例语句块
	{
		System.out.println("1");
	}
	
	
	{
		System.out.println("2");
	}
	
	
	{
		System.out.println("3");
	}
	
	//构造方法
	StaticTest02(){
		System.out.println("StaticTest02无参数的构造执行!");
	}
	
	//入口
	public static void main(String[] args){
		
		//调用构造方法
		new StaticTest02();
		
		new StaticTest02();
		
		new StaticTest02();
	}
}// 1 2 3 4 StaticTest02无参数的构造执行!
 // 1 2 3 4 StaticTest02无参数的构造执行!
 // 1 2 3 4 StaticTest02无参数的构造执行!
 
 
 /*
static修饰的变量叫做“静态变量”
		
变量分类:
1.局部变量
2.成员变量(实例变量,非静态变量)
3.静态变量(方法区)
		
什么时候变量声明成静态变量?
如果这个属性所有的对象都有,并且这个属性的值是相同的,则该属性声明成静态的属性。
成员变量:创建java对象的时候初始化。
静态变量:在类加载阶段赋值,并且只赋值一次。
*/
public class StaticTest04{
	
	public static void main(String[] args){
		
		Animal a1 = new Animal("AAA",10);
		Animal a2 = new Animal("BBB",11);
		
		//如何访问(类名.)
		System.out.println(Animal.type);
		
		//也可以使用 引用.
		System.out.println(a1.type);
		
		
		Animal a3 = null;
		System.out.println(a3.type); //静态变量底层访问的时候一定使用的  类名. 和对象无关,不会出现空指针异常。
		
	}
}


//抽象现实世界中的“陆生”动物
class Animal{
	
	//Field
	//成员变量(一个对象一份.)
	//成员变量在创建对象的时候初始化,并且存储在堆中的每一个对象中。
	String name;
	int age;
	
	//静态变量,被存储在方法区.
	//所有的java对象共享这一份。
	//所以静态变量是类级别的,使用“类名.”的方式访问.
	static String type = "陆生";
	
	//Constructor
	Animal(String name,int age){
		this.name = name;
		this.age = age;
	}
}


本文出自 “gaogaozi” 博客,请务必保留此出处http://hangtiangazi.blog.51cto.com/8584103/1661136

java中的static关键字

标签:static

原文地址:http://hangtiangazi.blog.51cto.com/8584103/1661136

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!