static也可以修饰方法,使之成为静态方法,我们通常用的入口函数,也就是main方法就是一个静态方法。
注意事项:
- 静态方法可以直接调用静态变量,不能调用非静态成员变量。
public class HelloWorld {
String name = "爱慕课";
static String hobby = "imooc";
public static void print(){
System.out.println(HelloWorld.name);//不能直接调用非静态成员
System.out.println(HelloWorld.hobby);//可以直接调用静态成员
}
}
2.可以通过创建类的对象来调用非静态成员
public class HelloWorld {
String name = "爱慕课";
static String hobby = "imooc";
public static void print(){
HelloWorld hello = new HelloWorld();
System.out.println(hello.name);//不能直接调用非静态成员,创建对象调用非静态成员
System.out.println(HelloWorld.hobby);//可以直接调用静态成员
}
}
- 普通成员方法可以直接访问非静态成员和静态成员
public class HelloWorld {
String name = "爱慕课";
static String hobby = "imooc";
public void print(){
System.out.println(name);//普通方法可以直接调用非静态成员
System.out.println(HelloWorld.hobby);//普通方法可以直接调用静态成员
}
}
4.静态方法不能直接访问非静态方法,通过对象来访问
public class HelloWorld{
//非静态方法
public void show(){
System.out.println("welcome to imooc");
}
//静态方法
public static void print(){
System.out.println("爱慕课");
}
//main方法也是静态方法
public static void main(String[] args){
//创建对象来调用非静态方法
HelloWorld hello = new HelloWorld();
hello.show();
//静态方法多种调用方式
HelloWorld.print();
print();
hello.print();
}
}