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();
}
}