Java的static修饰符
static可以用来修饰类中的成员,包括变量和方法。
(1)static修饰的成员属于类本身,无static修饰的成员属於单个实例,因此static修饰的成员不能访问没有static修饰的成员(静态成员不能访问非静态成员);**
(2)static修饰的成员(变量、方法)可以直接用类来调用,也可以用类的实例来调用(但是底层机制依然是采用该类来调用的,因此无论创建了多少个对象,其调用静态成员时的结果都一样),但是无static修饰的成员必须创建该类的实例,才可以调用。
class Person{
int age;
int height;
//定义一个非静态方法
public void info(String name) {
System.out.println(name+"的年龄是:"+age+",身高是:"+height);
}
//定义一个静态方法
static void show() {
System.out.println("hello word");
}
//定义一个两参构造器
Person(int age,int height){
this.age=age;
this.height=height;
}
}
public class t {
public static void main(String[] args){
Person.show(); //类调用静态方法
//Person.info(); 编译出错,info()是实例方法,必须创建Person的实例才可以调用
Person zhang=new Person(24,160);
zhang.info("zhang");
zhang.show(); //实例调用静态方法
}
}
输出结果:hello word
zhang的年龄是:24,身高是:160
hello word