面向对象小结(一)

<?php
/*
 * 1、静态属性用来保存类里面的公有数据
 * 2、静态方法里面只能访问静态属性
 * 3、静态成员不需要实例化
 * 4、类的内部可以通过self或static关键字来访问自身静态成员
 * 5、可以通过parent关键字访问父类的静态成员
 * 6、可以通过类的名称在类定义外部访问静态成员
 */

class Human{
	public $head='头';
	public function eat($food)
	{
		echo $this->name.'在吃'.$food;
	}

	public function header()
	{
		echo '我有八个'.$this->name.'七个'.$this->ball;
	}
}

//php中可以用extends来表示对父类的继承,后面跟父类的类名
class NbaPlayer extends Human{
	//private的私有成员只能在类的内部被访问,如果定义在父类,子类就不能访问
	private $age=20;			
	public $name='james';
	protected $ball='篮球';
	//构造函数,在对象被实例化的时候调用
	// function __construct($name)
	// {
	// 	// echo 'my name is construct';
	// 	$this->name=$name;

	// 	//父类中的属性,可以通过$this来实现
	// 	// echo $this->head;
	// }

	// //析构函数,在程序结束后会自动调用
	// function __destruct()
	// {
	// 	echo 'my name is destroy';
	// 	echo $this->name;
	// }
	public static $color="red";

	//静态方法只能访问静态属性
	public static function secai()
	{
		//访问类中的静态成员用self关键字
		echo self::$color;
	}

	public function jump()
	{
		echo 'l love jump';
	}

	public function nianling()
	{
		echo $this->name.'的年龄为'.$this->age;
	}
}

//类实例化为对象时使用关键字new,new之后紧跟类的名称和一对括号
//每一次用new实例化对象的时候,都会用类后面的参数列表调用构造函数
// $player=new NbaPlayer();

//对象中的成员属性可以通过->符号来访问
// echo '<br/>'.$player->name.'<br/>';

//对象中的成员方法可以通过->符号来访问
// $player->jump();

//访问父类中的方法
// $player->eat('apple');

//访问父类中的方法,父类的方法里面能访问子类的公共属性和受保护的属性,但不能访问私有属性
// $player->header();

//在类外访问静态方法用:: ,静态方法加(),无论静态成员在父类还是子类都能访问
NbaPlayer::secai();

//在类外访问静态属性用::,静态属性加$号
// echo NbaPlayer::$color;

?>

猜你喜欢

转载自blog.csdn.net/qq_42249896/article/details/84645103