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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

构造方法不也是方法到底是什么东西,为啥不能用static修饰呢
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端

10 个回复

倒序浏览
静态方法是用来初始化成员变量、实例化对象的,你如果给他加静态,根据静态只能访问静态的原理,那么,成员变量是不是都应该加静态,变量加静态后就成本类的共享数据了,那么你能保证你的所有变量都是应该被共享的吗?所以,不能加静态。这只是个人理解,可能说的不对,你做一下参考。
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
抱歉,上面说错了,构造方法用来初始化成员变量、实例化对象的,不是静态方法……
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
构造方法用于初始化一个实例对象,所以static修饰是没有任何意义的;
static可以修饰成员变量和成员方法:
特点是随着类的加载而加载,优于对象的存在。构造方法是用于初始化对象。
构造方法作用是初始化一个实例,如果加上static 可以的话,那么 ,可以使用对象名调用。
使用对象名调用用于初始化对象,这样看是没有意义的。
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
你用static修饰了之后  类名点调用  根本就没对象...
回复 使用道具 举报
Routee 中级黑马 2016-11-6 18:11:21
8#
static修饰的话只要类加载方法区就会创建对象,这样不符合面向对象思想
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
Jarc 高级黑马 2016-11-6 18:28:48
9#
对象都没有,构造已经来了。就像娘还没怀孕呢,宝宝生了
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
上面2楼说的都很有道理,

我说一下我的理解:

构造方法是用来创建对象用的(空参,有参),即实例化,
而静态是用来共享的,也可以通过类名点形式调用,静态是优先于对象存在的,你对象都没有创建,然后类名点调用或者去进行一些别的操作,是矛盾的,
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马