美文网首页
类成员方法如何调用类成员属性和方法

类成员方法如何调用类成员属性和方法

作者: 布尔教育 | 来源:发表于2016-12-30 11:36 被阅读0次
类别 静态方法调用 非静态方法调用
静态属性 static $name = 'xiaoming' self::$name self::$name
非静态属性$name = 'xiaoming' 不能,报Fatal error,不能使用self::调用非静态属性,也不能使用$this 获取非静态属性的值 $this->name
静态方法public static function say() self::say() self::say()
非静态方法public function say() php5中,不能使用$this调用非静态方法,但是可以使用self::调用 $this->say()
  • 可以用::调用非静态方法吗?

答:可以,代码照常运行
只是提示Strict Standards: Non-static method Stu::say() should not be called statically in D:\phpStudy2014\WWW\oop\day1\test.php on line 19
当然这里也是有前提的,这个非静态方法中不能调用类成员属性.

  • 类名可以用对象访问符->调用静态方法吗?

不可以,报错

  • 一个对象如何调用类成员静态方法?

方法①用->符号调用,方法②用::符号调用.

  • 一个对象如何调用类成员非静态方法?

方法①用->符号调用
方法②用::符号调用,程序正常运行,但是提示
Strict Standards: Non-static method Stu::say() should not be called statically in D:\phpStudy2014\WWW\oop\day1\test.php on line 21

  • 静态属性跟非静态属性的区别?

非静态属性只有在类实例化对象的那一刻才在内存中开辟空间.这也就是非静态属性不需要实例化就可以调用的原因.
静态属性则在类被加载的那一刻,即使没有被实例化,也会被内存分配空间,而且即使内存中有多个实例化对象,静态属性也只有一份.

静态方法跟非静态方法的区别同上.

  • 静态方法调用非静态属性

不能,报Fatal error
Fatal error: Access to undeclared static property: Stu::$name in D:\phpStudy2014\WWW\oop\day1\test.php on line 15
不能使用self::调用非静态属性

也不能用$this->,否则报错,Fatal error: Using $this when not in object context in D:\phpStudy2014\WWW\oop\day1\test.php on line 15

  • 静态方法中不能使用$this关键字

因为静态方法在加载的过程中,内存就给其分配了空间,所以它不属于任一对象.
故有以下报错
Fatal error: Using $this when not in object context in D:\phpStudy2014\WWW\oop\day1\test.php on line 15

  • 为什么静态方法中可以用self::调用非静态方法?

当一个类中有非静态方法被self::调用时,系统会自动将这个方法转换为静态方法.

相关文章

  • 类成员方法如何调用类成员属性和方法

    可以用::调用非静态方法吗? 答:可以,代码照常运行只是提示Strict Standards: Non-stati...

  • 面向对象

    类成员的定义 成员属性的定义 成员方法的定义 类成员的使用 构造方法 PHP不负责定义这个构造方法,只负责调用构造...

  • @classmethod和@staticmethod的区别

    简介 类的成员 python中类的成员可以分为三大类:字段、方法和属性 类的方法 包括:普通方法、静态方法和类方法...

  • typeScript学习笔记2 类

    “类的成员属性”都是实例属性,而不是原型属性,“类的成员方法”都是“原型”方法。 类的成员修饰符有:public,...

  • 02-面向对象

    类及对象 类的组成成分:属性(成员变量,Field)方法(成员方法,函数,Method) 属性成员变量 vs 局部...

  • 29-成员保护和访问限制

    成员保护和访问限制 隐藏属性 在类的内部,有各种变量和方法。这些数据成员,可以在类的外部通过实例或者类名进行调用,...

  • kotlin精讲-第3章(1)类的创建&属性方法定义以及

    类方法和属性的定义 Kotlin定义类、类的成员、类的成员方法和Java很类似。我们通过IDEA提供的java文件...

  • JAVA:this关键字的用法

     this在类中及时代表当前对象,可以通过this关键字完成当前对象的成员属性,成员方法和构造方法的调用. 那么何...

  • java se 1.6 面向对象

    工具类 类 属性(成员变量):姓名、性别、年龄方法(成员方法):跑、跳、叫类是抽象的、对象是具体的成员方法是没有s...

  • 属性(又称成员变量/filed/域/字段)

    常见的类成员:属性 、 方法 属性 = 成员变量 = field = 域/字段:直接声明在类的一对{ }里 方法 ...

网友评论

      本文标题:类成员方法如何调用类成员属性和方法

      本文链接:https://www.haomeiwen.com/subject/asrmvttx.html