黑马程序员技术交流社区
标题:
构造方法为什么不能用static修饰呢?大神帮我解读一下,拜谢了!!!
[打印本页]
作者:
cyongcar
时间:
2016-11-6 12:00
标题:
构造方法为什么不能用static修饰呢?大神帮我解读一下,拜谢了!!!
构造方法不也是方法到底是什么东西,为啥不能用static修饰呢
作者:
Belive丶Me
时间:
2016-11-6 12:39
静态方法是用来初始化成员变量、实例化对象的,你如果给他加静态,根据静态只能访问静态的原理,那么,成员变量是不是都应该加静态,变量加静态后就成本类的共享数据了,那么你能保证你的所有变量都是应该被共享的吗?所以,不能加静态。这只是个人理解,可能说的不对,你做一下参考。
作者:
Belive丶Me
时间:
2016-11-6 12:48
抱歉,上面说错了,构造方法用来初始化成员变量、实例化对象的,不是静态方法……
作者:
L10052108
时间:
2016-11-6 12:48
构造方法用于初始化一个实例对象,所以static修饰是没有任何意义的;
static可以修饰成员变量和成员方法:
特点是随着类的加载而加载,优于对象的存在。构造方法是用于初始化对象。
构造方法作用是初始化一个实例,如果加上static 可以的话,那么 ,可以使用对象名调用。
使用对象名调用用于初始化对象,这样看是没有意义的。
作者:
IceLoveInFire丶
时间:
2016-11-6 13:19
楼上说的很详细
作者:
想跳楼
时间:
2016-11-6 14:16
666666666666
作者:
ylz1997
时间:
2016-11-6 14:37
你用static修饰了之后 类名点调用 根本就没对象...
作者:
Routee
时间:
2016-11-6 18:11
static修饰的话只要类加载方法区就会创建对象,这样不符合面向对象思想
作者:
Jarc
时间:
2016-11-6 18:28
对象都没有,构造已经来了。就像娘还没怀孕呢,宝宝生了
作者:
zhouxiong
时间:
2016-11-6 22:25
上面2楼说的都很有道理,
我说一下我的理解:
构造方法是用来创建对象用的(空参,有参),即实例化,
而静态是用来共享的,也可以通过类名点形式调用,静态是优先于对象存在的,你对象都没有创建,然后类名点调用或者去进行一些别的操作,是矛盾的,
作者:
袁志娜
时间:
2016-11-6 23:40
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2