OOP中常用的关键字【修辞的比较】:
final: 可以加在类和类中方法的前面. 但是不能加在属性的前面
它的作用:1.修辞类时,则不能被继承. 2.子类不能被重写.
static: 可以加在类的属性与方法前面, 但是不能加在类的前面.
作用: 进行类的全局共享
类内访问static成员以及类的成员调用.
代码
1,静态方法可以调用静态变量
2,实例调用静态方法
3,静态方法不能调用非静态变量
4. 对于非静态变量与方法,主要是通过this关键字来进行访问本类中的例1:classSTest1
{privatestatic$test1;privatestatic$test1_1;public$test2;publicstaticfunctionInitialization()
{
self::$test1_1++; //静态方法调用静态变量;
self::$test1=newSTest1();echoself::$test1_1."
";returnself::$test1;
}publicfunctionget_static(){$this->test2=12;echo"
输出test2=".$this->test2."
";return"##";
}
}
const: 只能应用于类的属性. 要进行访问它,只能通过self来进行访问,而不能通过对象来进行访问.
访问时,它可以通过类来进行直接访问
const关键字的应用
class MyClass { //声明一个MyClass类,在类中声明一个常量,和一个成员方法
const CONSTANT = 'CONSTANT value'; //使用const声明一个常量,并直接赋上初使值
function showConstant() { //声明一个成员方法并在其内部访问本类中的常量
echo self::CONSTANT."
"; //使用self访问常量,注意常量前不要加“$”
}
}
echo MyClass::CONSTANT . "
"; //在类外部使用类名称访问常量,也不要加”$”
$class = new MyClass(); //通过类MyClass创建一个对象引用$class
$class->showConstant(); //调用对象中的方法
this关键字:
主要是在对象内部进行访问,每个成员方法内进行访问.其中它所指的是实例化的对象.
this关键字在成员方法上的应用.
function __construct($name="", $sex="男", $age=1) { //构造方法用来创建对象并初使化成员属性
$this->name = $name; //为成员属性name在创建对象时赋初值
$this->sex = $sex; //为成员属性sex在创建对象时赋初值
$this->age = $age; //为成员属性age在创建对象时赋初值
}
如:$person1=new Person("张三", "男", 20); 则this所代表的则是$person1这个对象
对象的访问修辞符:
PHP5所支持访问修辞符:
public(公有的、默认的),private(私有的)和protected(受保护的)三种。
public 公有修饰符,类中的成员将没有访问限制.
默认情况:
var $name,
function getName(),
class MyClass ,
它所默认都是public
受保护事情
protected 保护成员修饰符,被修饰为protected 的成员不能被该类的外部代码访问。但是对
于该类的子类有访问权限,可以进行属性、方法的读及写操作,该子类的外部代码包括其的子类都
不具有访问其属性和方法的权限。
例:protected $name;
protected function say(){};
private protected public
同一个类中√ √ √
类的子类中√ √
所有的外部成员√