使用静态方法后,对方法的调用直接 类名.方法名
public class Student {
public static void say(){
System.out.println("学生回答了!");
}
}
public class Demo01 {
public static void main(String[] args) {
Student.say();
}
}
输出结果:学生回答了!
如果用非静态方法,则需先实例化这个类(new)
对象类型 对象名 = 对象值
public class Student {
public void say(){
System.out.println("学生回答了!");
}
}
public class Demo01 {
public static void main(String[] args) {
Student stu1 = new Student();
stu1.say();
}
}
输出结果:学生回答了!
关于类对调用还有些特殊情况
1.两个方法都是静态方法可以互相调用。
2.两个方法都是非静态方法可以互相调用。
3.一个为静态方法一个为非静态方法,非静态方法可以调用静态方法,静态方法不能调用非静态方法。
原因:static是和类一起加载对,非静态方法是类实例化之后才存在。
代码解释:
public class Demo02 {
public static void main(String[] args) {}
public static void a(){
b();
}
public static void b(){
a();
}
}
public class Demo02 {
public static void main(String[] args) {}
public void a(){
b();
}
public void b(){
a();
}
}
public class Demo02 {
public static void main(String[] args) {}
public void a(){
b();
}
public static void b(){
a(); //这个不可以!!!
}
}