您的位置:首页 > 编程语言 > Java开发

java中的static关键字

2015-06-12 10:38 441 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: