永发信息网

静态代码块和静态方法的区别,static用法

答案:2  悬赏:10  手机版
解决时间 2021-04-19 15:33
静态代码块和静态方法的区别,static用法
最佳答案
1、静态方法:需要在项目启动的时候就初始化,在不创建对象的情况下,这种代码是被动执行的(静态方法在类加载的时候 就已经加载 可以用类名直接调用)
使用类的静态方法时,注意:
a、在静态方法里只能直接调用同类中其他的静态成员(包括变量和方法),而不能直接访问类中的非静态成员(这是因为,对于非静态的方法和变量,需要先创建类的实例对象后才可使用,而静态方法在使用前不用创建任何对象)
b、 静态方法不能以任何方式引用this和super关键字,因为静态方法在使用前不用创建任何实例对象,当静态方法调用时,this所引用的对象根本没有产生。
c、静态变量是属于整个类的变量而不是属于某个对象的。注意不能把任何方法体内的变量声明为静态
2、静态代码块:有些代码必须在项目启动的时候就执行,这种代码是主动执行的(当类被载入时,静态代码块被执行,且只被执行一次,静态块常用来执行类属性的初始化)
3、区别:两者的区别就是:静态代码块是自动执行的; 静态方法是被调用的时候才执行的.
全部回答
1. 创建对象$object = new class(),然后使用”->”调用:$object->attribute/function,前提是该变量/方法可访问。   2. 直接调用类方法/变量:class::attribute/function,无论是静态/非静态都可以。但是有前提条件:   a. 如果是变量,需要该变量可访问。   b. 如果是方法,除了该方法可访问外,还需要满足:   b1) 如果是静态方法,没有特殊条件;   b2) 如果是非静态方法,需要改方法中没有使用$this,即没有调用非静态的变量/方法,当然,调用静态的变量/方法没有问题。   然后我们再看一下使用$object->… 和使用class::… 都有什么区别:   1. 使用$object->… ,需要执行构造函数创建对象;   2. 使用class::… 调用静态方法/变量,不需要执行构造函数创建对象;   3. 使用class::… 调用非静态方法/变量,也不需要执行构造函数创建对象。   然后奇怪的地方就出来了,既然2和3都一样,那静态方法/变量存在还有什么意义呢?   静态 static   声明类成员或方法为 static ,就可以不实例化类而直接访问,不能通过一个对象来访问其中的静态成员(静态方法除外)。静态成员属于类,不属于任何对象实例,但类的对象实例都能共享。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
六字爱情古诗
带反义词的小学诗句,关于带有桃花的诗句
清朝与喝酒有关的诗词,与山水有关古诗词
违章和违规有什么区别
刀剑乱舞次郎太刀台词,怎么样很厉害吧是刀剑
七月份最后一天祝福语,中考结束的文言文祝福
公司现在经营的 在公司经营范围上没有写可以
男生说上火是什么意思,男朋友说上火了是什么
联想手机a788t下载91黄历怎么样把它设置在主
请把下面几个短句改写为一个长句。(4分)要求
哀思老人去世诗句,描写老年人的诗句
关于打拳的名言。?
国外风景的句子,关于外国风光,异域文化的好词
单选题The teacher with his
行业资质证书怎么查询,如何查到企业资质
推荐资讯
立邦新时时丽内墙乳胶漆怎么使用
飞机上让带干木耳 不是托运~化妆水可托运多少
甲沟炎鼓脓了怎么办(不碰不疼)
红酒高脚杯什么品牌的好
晨光文具促销活动标语,关于文具的句子大全
亡神主官方,三度改住场,骨肉多刑克,出外置
which season is the w____ in the year,Tara
阻燃管和刚性阻燃管一样吗??
关于英美文学的论文,英语文学毕业论文范文怎
罗汉松的果有什么作用
只要功夫深的下一句是,只要功夫深后面一句是
直角三角形边分为8.6.10。高多少?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?