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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

static为什么不可以修饰构造方法

10 个回复

倒序浏览
视频教程里面都有
回复 使用道具 举报
java规定了静态和构造函数的加载顺序,静态的加载优先于对象的建立。被static修饰的成员变量和成员方法独立于该类的任何对象,它随类的加载而加载且不依赖类特定的实例,被类的所有实例共享。构造函数为类中的成员变量赋初始值,饰构造方法的调用是随对象的建立调用的。所以static不可以修饰构造方法。

评分

参与人数 1技术分 +1 收起 理由
洋葱头头 + 1

查看全部评分

回复 使用道具 举报
因为构造方法是用来初始化类的,只有当对象被new的时候才用构造方法初始化而静态是随着类的加载而加载,所以如果static修饰构造方法,那构造方法应该什么时候加载呢
回复 使用道具 举报
构造方法是为了创建对象的,如果你用static修饰之后 那么这个对象就会一直存在,java觉得你用static修饰有意义吗?,构造方法目的就是创建对象的时候对对象进行初始化的,用Static修饰完全找不到一点意义
回复 使用道具 举报
构造方法是为了初始化,假如构造方法可以用static修饰啊,那么类名.构造方法调用构造方法的时候这个时候构造方法中的所有调用成员变量都要是static的,一点意义都没有啊,java中没有意义的全部都会禁用

评分

参与人数 1黑马币 +1 收起 理由
洋葱头头 + 1

查看全部评分

回复 使用道具 举报
static随着类的出现而出现,而构造方法是创建对象时出现的
回复 使用道具 举报
bolt 中级黑马 2016-2-11 20:31:17
8#
本帖最后由 bolt 于 2016-2-11 20:32 编辑

你好,静态,有固定稳定不变的含义。静态是根据类的加载而加载的,先于对象而存在的。
构造方法是针对对象的创始化,视乎对象不同也会不同,这就决定了构造方法不可能是静态的,也就没必要加。

回复 使用道具 举报
这是规则吧,记住就行了
回复 使用道具 举报
初始化顺序
回复 使用道具 举报
静态是跟类相关的,构造方法是跟对象相关的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马