static是java语言中的一个关键字,static是静态修饰符。它可以做为静态变量和静态方法。
一个类可以创建多个该类的对象,每个对象都有自己的成员,互相独立。但是,在某些时候我们希望该类的所有对象共享一个成员,此时就要使用static了。
1.java中的static修饰符的成员称为静态成员或类成员,它属于整个类所有,即被类的所有对象所共享,静态成员可以使用类名直接访问,也可以使用对象名进行访问。
下面使用具体的例子来说明一下。
eg:package com.hap; public class HelloPa { static String str="小学生";点击打开链接 public static void main(String[] args){ System.out.println("我是一个:"+HelloPa.str); HelloPa hello=new HelloPa(); System.out.println("我不是一个:"+hello.str); } }
试着比较一下静态变量和非静态变量的区别。
2.static静态方法
与静态变量一样,可以使用static修饰方法,称为静态方法或类方法。
eg:package com.hap; public class HelloPa { public static void print() { System.out.println("我是一个小学生"); } public static void main(String[] args){ HelloPa.print(); HelloPa hello=new HelloPa(); hello.print(); } }
注意,下面有几点说明:
1.静态方法可以直接调用同类的静态成员,但不能调用非静态成员。如果静态方法想调用非静态方法,就要创建对象,利用对象来调用。
package com.hap; public class HelloPa { static String name="小明"; String sex="男"; public static void print() { System.out.println("我是一个小学生"); } public static void main(String[] args){ HelloPa hello=new HelloPa(); System.out.println("我是:"+hello.sex+"生"); } }
2.在普通成员方法中,可以直接访问同类的静态变量和非静态变量。
package com.hap; public class HelloPa { static String name="小明"; String sex="男"; public static void print() { System.out.println("我是一个小学生"); } public static void main(String[] args){ HelloPa hello=new HelloPa(); System.out.println("猜猜我是不是:"+hello.name); System.out.println("我是:"+hello.sex+"生"); } }
3.静态方法不能直接访问非静态方法,需要通过对象来访问非静态方法。如:
package com.hap; public class HelloPa { public static void print() { System.out.println("我是一个小学生"); } public void show() { System.out.println("我很爱学习"); } public static void main(String[] args){ HelloPa hello=new HelloPa(); hello.print(); hello.show(); } }