A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 未发光的金子 中级黑马   /  2014-3-29 21:15  /  1161 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

关于static 我这种说法有没有错误 大家看下 :凡是包含主函数的那个类里的方法都要用static修饰

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

5 个回复

倒序浏览
main方法是一个静态方法,如果main中调用了其他的方法就要使用静态,
静态方法可以直接通过类名调用,任何的实例也都可以调用,因此静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法(就是不带static的成员变量和成员成员方法),只能访问所属类的静态成员变量和成员方法。因为实例成员与特定的对象关联!这个需要去理解,想明白其中的道理,不是记忆!!!
因为static方法独立于任何实例,因此static方法必须被实现,而不能是抽象的abstract。

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
不对的、 静态方法是在类一加载的时候就存入内存中。完了你可以直接用类名调用而不需要创建对象。。main 是虚拟机的入口。 虚拟机执行的时候从main方法中往下执行

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
这句话不太准确,主函数虽然是静态的,但是调用主函数的类不一定是静态的,类里的方法就更不可能都是静态的了。你是不是想说调用主函数的方法里的方法都是静态的。注意类与方法的本质是不同的。如果把类换成方法,我想应该是正确的了。

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
不正确。
一旦用static修饰就表明这个方法是“类方法“,也就表明无需创建实例就可调用这个方法~某种程度上这是更高的要求,但是都要用明显是”必须“的意思,这与我们的编码经验也不符~~
正好整理过主方法的相关知识点,贴在下面,不知是否对你理解这个问题有帮助:
主方法:是java程序中必不可少的一个方法,是java应用程序的入口。在java应用程序中必须包含一个可被jvm调用的类,这个类被称为主类,主类必须含有主方法,java程序执行的第一个方法就是主方法。
Public static void main(String[] args){}或Public static void main(String args[]){}
两种形式完全等价,差别在于参数的声明方式。主方法的参数是一个数组,因此这种差别仅仅因为数组有两种声明方式!
Public:入口;static:类方法,表明无需创建实例就可调用!;void:没有返回值
主方法的参数是一个String类型的数组。args是参数的名称,可以改。。。【不管程序中是否使用了主方法的参数,也不管程序执行过程中是否在命令行中提供了参数,主方法在定义时都必须有参数!】

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
         这句话是不对的,如果你的main方法中并未直接调用这个方法,就不要声明为静态的,否则浪费内存空间了,因为静态static是随着类的加载而加载的,生命周期比较长。而且我们在main方法内,可以通过创建本类对象来调用其他的方法。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马