java 类中函数前加和不加static有什么不同

来源:百度知道 编辑:UC知道 时间:2024/07/06 00:08:14
java 类中函数前加和不加有什么不同
像这样的
public class ClassName{
static void prt(string s){
System.out.println(s);
}
void rprt(string s){
System.out.println(s);
}
}

这个表示这个方法为静态方法! 在其它类中可以直接通过类名去调用这个方法!例如
public static void main(String[] args){
ClassName.prt("abc");
}
如果不加static,则只有通过该类的对象去调用。
例如
public static void main(String[] args){
ClassName name=new ClassName();
name.prt("abc");
}

static表示的静态。

  • 如果此函数是静态的,会在程序初始化过程中直接进行内存加载,此方法内的所有方法内容必须是静态的,否则会报错静态方法引用动态变量。方法调用:“类名.方法”

  • 如果此函数是动态的,那么只有在调用的时候才会被主动加载一次,之后释放内存。方法调用:必须先实例化出来一个类,之后再通过实例化类名+方法的形式调用。

static void prt(string s){
System.out.println(s);
}
这个表示这个方法为静态! 在其它类中可以直接通过类名去调用这个方法!不需实例化一个对象!
而这个void rprt(string s){
System.out.println(s);
}
就只能在本包内调用访问!

static表示这个方法为类方法,不属于任何对象实例,而是类所有,描述对象的共有动作,可以用类名直接调用:
ClassName.prt();而不需要new ClassName().prt("string");