首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

self和super的区别

(1)self调用自己方法,super调用父类方法      (2)self是类,super是预编译指令      (3)[self class]和[super class]输出是一样的     ...①当使用 self 调用方法时,会从当前类的方法列表中开始找,如果没有,就从父类中再找;而当使用 super 时,则从父类的方法列表中开始找,然后调用父类的这个方法。...②当使用 self 调用时,会使用 objc_msgSend 函数: id objc_msgSend(id theReceiver, SEL theSelector, ...)。...以 [self setName:] 为例,编译器会替换成调用 objc_msgSend 的函数调用,其中 theReceiver 是 self,theSelector 是 @selector(setName...:),这个 selector 是从当前 self 的 class 的方法列表开始找的 setName,当找到后把对应的 selector 传递过去。

1.2K110

PHP中this,self,parent的区别

{一}PHP中this,self,parent的区别之一this篇 面向对象编程(OOP,Object OrientedProgramming)现已经成为编程人员的一项基本技能。...这里我主要谈的是this,self,parent 三个关键字之间的区别。从字面上来理解,分别是指这、自己、父亲。...PHP中this,self,parent的区别之二self篇 此篇我们就self的用法进行讲解 首先我们要明确一点,self是指向类本身,也就是self是不指向任何已经实例化的对象,一般self使用来指向类中的静态变量...假如我们使用类里面静态(一般用关键字static)的成员,我们也必须使用self来调用。还要注意使用self来调用静态变量必须使用:: (域运算符号),见实例。 <?...{三}PHP中this,self,parent的区别之三parent篇 此篇我们就parent的用法进行讲解。

2.2K20
您找到你想要的搜索结果了吗?
是的
没有找到

深入浅析python 中的self和cls的区别

python 中的self和cls 一句话描述:self是类(Class)实例化对象,cls就是类(或子类)本身,取决于调用的是那个类。...b.foo3("大熊猫") B.foo3("大熊猫") @staticmethod和@classmethod的用法 相同: @staticmethod和@classmethod都可以直接类名.方法名()来调用 区别...B, hello', name, cls.a) 重点应关注@staticmethod和@classmethod调用本类或其他类的函数和属性的区别 例子1: 关键看第二句 subclass B, hello...和cls的区别 1、self表示一个具体的实例本身。...总结 到此这篇关于深入浅析python 中的self和cls的区别的文章就介绍到这了,更多相关python 中的self和cls内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持

6.3K21

iOS学习——属性引用self.xx与_xx的区别

在iOS开发过程中,我们用@proprety声明一个属性后,在代码中我们可以用self.xx与_xx来获取到这个属性。但是一直有一个疑惑,那就是这两个之间有什么区别呢?...1 @property 与 @synthesize   在说self.xx与_xx之前,我们先了解一下@property 以及 @synthesize之间的区别和联系,说到@property 以及 @synthesize...,我们就不得不提到iOS中 成员变量和属性 之间的区别和联系了。   ...同时,我们提到了self.xx和_xx的一点区别,其中self.xx是调用的xx属性的get/set方法,而_xx则只是使用成员变量_xx,并不会调用get/set方法。...两者的更深层次的区别在于,通过存取方法访问比直接访问多做了一些其他的事情(例如内存管理,复制值等),例如如果属性在@property中属性的修饰符有retain,那么当使用self.xx的时候相应的属性的引用计数器由于生成了

893160

python self

类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候你不为这个参数赋值,Python会提供这个值。...这个特别的变量指对象本身,按照惯例它的名称是self。 虽然你可以给这个参数任何名称,但是强烈建议你使用self这个名称——其他名称都是不赞成你使用的。...):             print "hello self!"  ...In [4]:  #如果去掉self的话就会报错 n [6]: class Testself:         def testself():         print "hello self!"  ...======================================================================  类将它们的第一个参数绑定到所属的实例上,这正是类和函数的区别

64110

3分钟短文 | PHP new self 跟 new static 啥区别

引言 之前的文章我们已经讲过,在 PHP 类的创建过程中,使用 self 作为类本身的引用,使用 $this 作为类对象的引用。 ? 而在 self 和 static 的使用上,有这细微的差别。...特别是类继承过程中,self 可能带来意想不到的反应,也正如那篇文章所说,建议使用 static 作为类本身的引用。 本文再来探讨,类内的 new self 与 new static 有什么区别。...学习时间 self 总是指向 new 关键字所声明的类;static 在静态绑定中,可以指向层级结构中的任意类。 下面举一个例子。 ? 类B继承了类A的方法。...对于 get_self 方法,返回的是类A本身。而static则返回的是调用者的类,也就是说,谁调用,static就指向谁。self 则持续地指向声明的类。...因为 self 引用的是类本身,调用 class 静态方法也完全行得通。

1.8K10

php面向对象程序设计中self与static的区别分析

本文实例讲述了php面向对象程序设计中self与static的区别。分享给大家供大家参考,具体如下: 1、假设我们有个Car类,它有2个方法:model()和getModel()。...class Car{ public function model(){ //这里我们使用了关键字self self::getModel(); } protected function getModel...(){ echo 'I am car'; } } 实例化后调用方法: $car = new Car(); $car- model(); // 输出:I am car 关键字self使得我们调用了Car...3、关键字self的工作原理是:它会调用当前类的方法。 因为model()方法只在Car类中定义的,所以对self来说当前类就是Car类。...self::getModel()就是调用Car类中的getModel方法。 这似乎不是我们想要的,如何解决呢?

40420

$this、self和static

image.png 关于类属性、方法调用有3个 $this、self、static $this->foo(); selff::foo(); static::foo(); $this指向当前对象...self::指向类,一般用来访问当前类的静态变量和静态方法,运行之前已经确定指向哪个类。 <?...class Person { public static $name = "小红"; public static function getName() { echo self...不同,它指向类本身,不指向任何实例化对象,一般用来访问类中的静态变量和静态方法; 上例中 new 了两个对象,并修改了其中一个对象的 name 属性,另一个对象的 name 属性值也改变了,所以说,self...static 和 self 一样,都是指向类,一般都用来访问类中的静态变量和静态方法,但是又有一些不一样,具体来讲:self 写在哪个类里,实际调用的就是这个类;static 则是写在父类里,然后通过子类用到了这个

71820
领券