首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

$this、selfstatic

,用来访问当前对象非静态变量非静态方法。...// 小红 $p::$name = "小明"; $p::getName(); // 小明 $p2::getName(); // 小明 self this 不同,它指向类本身,不指向任何实例化对象...,一般用来访问类中静态变量和静态方法; 上例中 new 了两个对象,并修改了其中一个对象 name 属性,另一个对象 name 属性值也改变了,所以说,self 是指向当前类对象无关,所有的对象共用一个值...static self 一样,都是指向类,一般都用来访问类中静态变量和静态方法,但是又有一些不一样,具体来讲:self 写在哪个类里,实际调用就是这个类;static 则是写在父类里,然后通过子类用到了这个...static,这个 static 指向是这个子类,官方称之为 后期静态绑定 。

71920

php中selfstatic区别

php中selfstatic区别 通过一些示例,我们可以很容易看出selfstatic区别。假定我们有class Car – 它有两个方法,modelgetModel。...对于self解释 关键字“self工作原理是:它会调用当前类(current class)方法。因为model方法只在class Car中定义,所以对它来说当前类就是class Car。...可以使用关键字staticstatic关键字延迟静态绑定(late static binding) 在PHP5.3中,加入了一个新特性,叫做延迟静态绑定。它可以帮我们实现多态,解决上面的问题。...; } } 我们只是将class Car中self替换成了static,并未对class Mercedes作修改。...php中selfstatic 现在我们将例子中selfstatic替换,可以看到,两者区别在于:self引用是当前类(current class)而static允许函数调用在运行时绑定调用类

53520

selfsuper区别

(1)self调用自己方法,super调用父类方法      (2)self是类,super是预编译指令      (3)[self class][super class]输出是一样     ...①当使用 self 调用方法时,会从当前类方法列表中开始找,如果没有,就从父类中再找;而当使用 super 时,则从父类方法列表中开始找,然后调用父类这个方法。...:),这个 selector 是从当前 self class 方法列表开始找 setName,当找到后把对应 selector 传递过去。...当编译器遇到[super setName:]时,开始做这几个事:      1)构建 objc_super 结构体,此时这个结构体第一个成员变量 receiver 就是子类, self 相同。...而第二个成员变量 superClass 就是指父类 调用 objc_msgSendSuper 方法,将这个结构体 setName sel 传递过去。

1.3K110

【静态延迟加载】self关键字static关键字区别

"Main Phone"; } public static function getBrand(){ self::setBrand(); } } //huawei...这说明我们调用 self 关键代表是代码中它所在那个类 即 Phone 这个类 //先实现一个手机工厂类 class Phone{ public static function...setBrand(); //将 self 改为 static } } //huawei 手机工厂 class HuaWei extends Phone{ public static function...关键字改为了 static 关键字,当值行代码时 这里static代表是当前正在执行类 例如执行 HuaWei::getBrand(); 时 static 代表是 HuaWei XiaoMi...::getBrand(); 时 static 代表是 XiaoMi 这里总结一下 静态延迟加载含义:把本来在定义阶段固定下来表达式或变量,改在执行阶段再决定。

45320

staticpublic区别

一直在使用kotlin,以前学java编写部分知识忘记了,现在重新学一下,总结了一下,与君共勉。...public static代表是静态方法,可以不通过创建所属对象进行访问;直接public代表是非静态方法,需要先new一个对象进行访问。...1.若是一个成员被声明为static,他就能够在他任何对象创建之前被访问,而不必引用任何对象。你可以将方法变量都声明为static。...image.png image.png 2.静态方法可以直接调用静态方法,访问静态变量,但是不能直接访问实例变量实例方法。即使在同一个类之中也不行。...image.png image.png 一般来说,我们使用时通常将publicstatic一起连用,但是也可以独自使用static,若是声明为private static就不能别外界调用。

61310

C语言中static,conststatic const 区别

在这个测试程序里,我试图在初始化变量c值之后再修改c值,编译直接报错,告诉我c已经是一个只读变量了,不可以改值。...2.static在函数内时候,表明这个变量在函数生命周期结束之后也不会被释放。 ?...static使用测试 在第一次调用test()时,如果static int b没有被我赋初值,也会被默认赋值成0。然后执行自增运算,所以输出1。...第二次调用test()时如果是普通变量,则会被重新分配内存,但static类型变量上次执行test函数之后没有被释放,而是保存在全局变量区,所以继续加一变成2。...对比一下非static变量会怎样: ? 3.static在函数外时候,表明这个变量作用域只在该.c文件里,不能作用于整个工程。

3.7K10

Java 中staticstatic区别(方法变量)

Java当中staticstatic变量区别 static 修饰变量称为类变量或全局变量或成员变量,在类被加载时候成员变量即被初始化,与类关联,只要类存在,static变量就存在。...static修饰变量在加载时候先于main方法加载在内存中数据共享区-------方法区,而非static变量在加载时候,是要创建变量才加载在堆内存中。...static方法static方法区别 static修饰方法也static一样。先于main方法被加载到方法区,以便共享使用。...静态static方法中不能使用this或者super关键字,因为static方法是先于对象创建之前就已经加载方法,是属于类方法,而thissuper指向是本类对象或者父类对象,非静态方法是属于对象...,方法里可以用thissuper。

62030

php面向对象程序设计中selfstatic区别分析

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

40420

​再谈PHP中selfstatic

再谈PHP中selfstatic 之前文章中有介绍过selfstaticparent传递问题。今天,通过一个小实验,我们来看看selfstatic操作变量问题。...通过这个简单例子,我们可以看出两点: self写在哪个类里面,它固定指向就是当前这个类 static就是哪个对象调用它,它指向就是这个调用者 从代码中我们可以看出,B类没有重写selfName(...)方法,所以B类调用selfName()时调用是父类AselfName()方法,self在这个方法中指向是A类。...static就比较简单了,例子中都是由B类C类来调用A类staticName()方法,根据谁调用就指向谁来看,输出结果符合我们预期,B类对象指向是B类,C类对象指向是C类。...我们也可以转而理解为self是个常量,写在哪里就不会变了,它就是指明当前这个类。而static是个变量,哪个类用到它了它就被赋值成调用它这个类。

45920

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 static $this 这些高频关键字,需要我们熟练掌握。 Happy coding :_)

1.8K10

PHP程序员:你过来,给我说说 $this,selfstatic 有什么区别

那么问题来了,你写了这么多 PHP 代码,搞得清楚 self $this 区别吗?本文就来简要说一说。 学习时间 简单地说, $this 指向当前对象实例,self 指向当前类。...上面这个例子很明确地使用了静态属性,动态属性,在构造函数内调用。实例化时执行。 如果反过来用就出错了,比如使用: self::$non_static_member . ' ' ....$this->static_member; self 调用了非静态属性,而 $this 调用了静态属性,这是错误用法。...引申:尽量别用 self::,要用 static:: self 简单好用,但是作用域叫人恼火。因为它作用域是在定义时,而不是执行时。比如这么个例子: ?...使用 static 替换 self。 还是那个规则:$this 引用是当前实例,static 引用是当前类本身。 我们从优秀代码中学习用法。

1K20

深入浅析python 中selfcls区别

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

6.4K21

static与final区别

一、 1、static变量 对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类过程中完成静态变量内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐...从这里就可以知道finalstatic变量区别了 2、静态方法 静态方法可以直接通过类名调用,任何实例也都可以调用,因此静态方法中不能用thissuper关键字,不能直接访问所属类实例变量实例方法...(就是不带static成员变量成员成员方法),只能访问所属类静态成员变量成员方法。...使用final方法原因有二: 第一、把方法锁定,防止任何继承类修改它意义实现。 第二、高效。编译器在遇到调用final方法时候会转入内嵌机制,大大提高执行效率。...特别要注意一个问题: 对于被staticfinal修饰过实例常量,实例本身不能再改变了,但对于一些容器类型(比如,ArrayList、HashMap)实例变量,不可以改变容器变量本身,但可以修改容器中存放对象

36810

C语言中staticextern区别用法

1.两者特点         两者都是C语言中关键字,static是静态意思,可以用来修饰局部变量,修饰全局变量,修饰函数,extern是用来声明外部符号。...2.作用域生命周期 2.1作用域:         作用域是程序设计理念,通常来说,一段程序代码中所用到名字并不总是有效,而限定这个名字可用性代码范围就是这个名字作用域。...0; i<5; i++) { test(); } return 0; } 3.3运行结果 代码1: 代码2: 3.4区别         代码1test函数中局部变量...3.5结论         static修饰局部变量改变了变量生命周期,生命周期改变本质是改变了变量存储类型,本来一个局部变量是储存在内存栈区,但是被static修饰后存储到了静态区。...存储在静态区变量全局变量是一样,生命周期就和程序生命周期就一样了,只有程序结束变量才能销毁,内存才能回收,但作用域是不变

7910

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

static在CC++中用法区别

其中register不常用到,下面主要说说autostatic区别。 1. 存储空间分配生存周期不同 auto类型局部变量就是普通局部变量(不加修饰局部变量默认为该类型)。.../函数 在C中 static有了第二种含义:用来表示不能被其它文件访问全局变量函数。...这是与普通成员函数最大区别, 也是其应用所在, 比如在对某一个类对象进行计数时, 计数生成多少个类实例, 就可以用到静态数据成员....在这里面, static既不是限定作用域, 也不是扩展生存期作用, 而是指示变量/函数在此类中唯一性. 这也是”属于一个类而不是属于此类任何特定对象变量函数”含义....中staticextern关键字 一.C语言中static关键字     在C语言中,static可以用来修饰局部变量,全局变量以及函数。

2.6K10
领券