请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

类变量,实例变量的概念好难

听不太懂,self,的变量是实例变量么

正在回答

2回答

self的是实例变量。要搞清楚这个,还是需要你理解类和对象的关系。实例有很多份,类只有一个。

0 回复 有任何疑惑可以回复我~
  • 提问者 car #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2017-11-25 10:16:17
小王子抓猫咪 2017-11-27 22:15:25

如果你是编程新手,那么理解这个概念最好的方法就是将类和对象的关系理解为抽象与具体的关系

比如:马和黑马白马的关系

马 就是 类,是抽象的。

而白马,黑马则是具体的,是对象。

而self其实可以理解为在class内部如何调用具体的实例对象时 使用的一个变量符号

在其他语言中这个self可以理解为就是this 比如JavaScript

当然在PHP中也是有self这个关键字的

类变量,实例变量。在类中定义的变量很多时候也叫类的成员,包括:属性和方法。

类变量就是指类自身的属性,可以不用实例化就能访问,当然在实例上访问也是可以的。一般用于定义某个类自身具有的特点。这样所有的实例都能够访问这样一个值,同时便于节约内存。

而实例变量则是指某个具体的实例才拥有的属性,一般用来定义特殊的实例,比如黑马,白马。马都是有颜色的,那么黑马就是毛的颜色为黑色的马,白马则是毛的颜色为白色的马。这样毛的颜色就是一个实例属性,用来搞特殊化的。这种属性只能通过实例进行访问,不要将其设置为类的属性。

每一门面向对象的语言在对象这一块都是大同小异的。只是部分上的区别,比如类方法的可访问性,静态与实例方法,构造函数,魔术方法,属性定义getter,setter等细微不同。

建议有空多对比对比不同的语言就会发现区别了

1 回复 有任何疑惑可以回复我~
  • 提问者 car #1
    谢谢,倒不是什么新手,倒是对这种非编码的概念些理解不深
    回复 有任何疑惑可以回复我~ 2017-11-27 23:11:14
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信