JAVA中使用静态方法
编程时我们心里一定要清楚静态方法和类的非静态方法方法的区别:
最根本区别从编译角度来说吧:
1) 静态(static)方法是编译时直接加载加载到内存中(离cpu最近的一块内存区域也称为堆栈),比如程序的public static main(args []){}方法,你能实例话吗?
静态方法不能被实例化,也不允许被实例化!
因此你可以通过“类名”+“.”+“静态方法的名()”来调用
2)非静态方法(类的非静态方法)通过关键字 “new” 字来实例化一个对象(object),这个对象放在内存的另一块区域堆(heap)中。
也就是说编译时,非静态方法必须先实例化类的一个对象,通过“对象名”+“非静态方法名()”来调用,
或者是“对象引用(句柄)”+“.”+“静态方法的名()”;
编程时我们心里一定要清楚静态方法和类的非静态方法方法的区别:
最根本区别从编译角度来说吧:
1) 静态(static)方法是编译时直接加载加载到内存中(离cpu最近的一块内存区域也称为堆栈),比如程序的public static main(args []){}方法,你能实例话吗?
静态方法不能被实例化,也不允许被实例化!
因此你可以通过“类名”+“.”+“静态方法的名()”来调用
2)非静态方法(类的非静态方法)通过关键字 “new” 字来实例化一个对象(object),这个对象放在内存的另一块区域堆(heap)中。
也就是说编译时,非静态方法必须先实例化类的一个对象,通过“对象名”+“非静态方法名()”来调用,
或者是“对象引用(句柄)”+“.”+“静态方法的名()”;
public class Student {
private String name;
//下面两个方法是类的非静态方法封装 属性name,看一下在 main()如何调用
public void set(String init_name) {
this.name = init_name;
}
public String get() {
return this.name;
}
//构造函数
public Student() {}
public Student(String init_name) {
this.name = init_name;
}
//下面是一个静态方法,看一下它在main()中如何调用
public static void PrintClassName() {
System.out.println("该类的名字:Student");
}
}
public class MainClass {
public static void main(String[] args) {
//先调用静态方法,不需要实例化对象
Student.PrintClassName();
//现在调用非静态方法,一定要实例化对象
Student stu1 = new Student();
stu1.set("John");
String stu1_name = stu1.get();
}
}