黑马程序员技术交流社区

标题: 关于主函数的静态修饰符 [打印本页]

作者: zhouchao    时间: 2013-7-5 11:26
标题: 关于主函数的静态修饰符
本帖最后由 zhouchao 于 2013-7-20 11:19 编辑

求教!! 静态方法只能调用静态变量
但是
class StaticTest
{
    String name;
    public void show()
    {
        System.out.println(name);
    }
    public static void main(String[] args)
    {
        show();//静态方法只能调用静态方法,而静态方法却只能访问静态变量,如果在主函数中要输出非静态name该如何解决
    }

}




作者: 王靖远    时间: 2013-7-5 12:06
new个实例对象调用
作者: zhouchao    时间: 2013-7-5 12:21
王靖远 发表于 2013-7-5 12:06
new个实例对象调用

那是否是主函数访问 实例对象 而实例对象调用非静态方法和属性呢
作者: 王靖远    时间: 2013-7-5 12:25
zhouchao 发表于 2013-7-5 12:21
那是否是主函数访问 实例对象 而实例对象调用非静态方法和属性呢

主函数和主函数所在的类没什么关系,主函数是程序的入口。虚拟机创建实例对象,实例对象调用该实例所在类的非静态方法和属性。
作者: zhouchao    时间: 2013-7-5 12:30
王靖远 发表于 2013-7-5 12:25
主函数和主函数所在的类没什么关系,主函数是程序的入口。虚拟机创建实例对象,实例对象调用该实例所在类 ...

哦 谢谢!
作者: ヾ浅蓝╮深蓝ゞ    时间: 2013-7-5 12:38
用java的反射技术可以实现
作者: zhouchao    时间: 2013-7-5 12:40
ヾ浅蓝╮深蓝ゞ 发表于 2013-7-5 12:38
用java的反射技术可以实现

请问该如何实现呢?
作者: zhou5852    时间: 2013-7-12 21:24
额  我想问到这样的问题 必然是还没有理解到 什么是类,什么是对象的问题上。。。。。
类,在我以计算机硬件的方面来分析,它是一块内存分配的模式,类 就是告诉虚拟机 如何使用这块内存,是一个如何分配内存的计划。。。
而对象  是在内存中存在的东西,就是用1010这样已经在内存中规划好了的,能使用的
现在String 在类中 就是告诉虚拟机,我要开辟个这样的空间  存个这样的东西进去,但是就是告诉它一个想法,还没在内存中存在。
当你使用 new 关键字的时候,内存就会根据你这个new 之后的类 的计划详细的分配到内存中,这个时候你才可以使用它。
其实类中的方法一旦加上static  这个方法便不再是对象的方法了,而是类的方法。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2