关于Java中的static的若干问题 首先在Java中main函数要被定义为static,那么静态函数和静态对象只能被静态函数所调用,main函数作为静态的函数,是怎么调用其它函数的,难道说其他的函数都是静态的,这似乎不可能。其中的原理忘知道的网友相告。谢谢!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 静态的直接用类来调classname.methodname非静态的实例化类 后用对象来调 main函数作为静态的函数,调用其它函数A和B,A定义为static,B被定义为Class C中的非静态方法JVM启动时会将定义为static的方法加载到内存中,所以这些方法可以直接调用。而B方法为非静态方法,内存中也不存在B,故不可以直接调用。只能先创建对象C到内存中,通过C.B()来调用B方法。直接调用B编译是不会通过的。 同意楼上的观点JVM启动时先加载静态变量和静态方法非静态需创建对象后才能调用 首先在 main中调用静态方法楼主肯定是没有问题的! 静态方法中调用静态方法这是理所当然的事情。 而在main中调用示例方法的时候是通过类来建立类的实例,通过将类的对象来引用 来调用示例方法。 Static 一般有二个用法: 初始化用。 定义成static 属性或static 方法,还有一个就是static 块。 静态函数和静态对象只能被静态函数所调用 这句话就是错的啊 静态函数和静态对象可以被非static方法使用 这个不是很好理解吗?所谓static方法里不能调用非Static方法,是指在static方法中不通过中间手段直接调用非static方法。比如,class C { void B() { //do something here } static void A() { B(); //不通过任何手段直接调用B,这是不允许的 }}但是,如果通过中间手段,即实例化一个类,然后通过该实例化的对象就可以访问该非static方法(函数)了。比如,class C { void B() { //do something here } static void A() { //B(); //不通过任何手段直接调用B,这是不允许的 C c = new C(); //通过实例化一个类 c.B(); //然后通过该对象去调用方法,是可以的 }}static方法也较静态方法或类方法,即该类被加载到JVM时,该方法也加载了,而类加载时,非static方法也叫实例方法是不被加载的,必须要实例化后才能调用 一道逻辑测试题~!猛人进~! [求助]base64编码与解码 请教各位已经工作了的老兄们,你们刚工作的时候都掌握了什么技能? 如何设置背景图案 大家一起为奥运出力,看我的奥运倒计时问题出在哪里? (applet,线程的关闭) java新手问题 java新建群~招收高手与菜鸟`互相学习互相交流~ 如何编译和运行多个文件的java程序? 一个很迷惑的问题!!! 关于Access数据库连接的问题 java小问题 一个java程序的执行结果
非静态的实例化类 后用对象来调
JVM启动时会将定义为static的方法加载到内存中,所以这些方法可以直接调用。
而B方法为非静态方法,内存中也不存在B,故不可以直接调用。只能先创建对象C到内存中,通过C.B()来调用B方法。直接调用B编译是不会通过的。
静态方法中调用静态方法这是理所当然的事情。
而在main中调用示例方法的时候是通过类来建立类的实例,通过将类的对象来引用
来调用示例方法。
初始化用。 定义成static 属性或static 方法,还有一个就是static 块。
所谓static方法里不能调用非Static方法,是指在static方法中不通过中间手段直接调用非static方法。
比如,class C {
void B() {
//do something here
}
static void A() {
B(); //不通过任何手段直接调用B,这是不允许的
}
}但是,如果通过中间手段,即实例化一个类,然后通过该实例化的对象就可以访问该非static方法(函数)了。
比如,class C {
void B() {
//do something here
}
static void A() {
//B(); //不通过任何手段直接调用B,这是不允许的
C c = new C(); //通过实例化一个类
c.B(); //然后通过该对象去调用方法,是可以的
}
}static方法也较静态方法或类方法,即该类被加载到JVM时,该方法也加载了,而类加载时,非static方法也叫实例方法是不被加载的,必须要实例化后才能调用