echo "Shooting\n"; } public function dunk() { echo "Dunking\n"; } public function pass() { echo "Passing\n"; } } /** * 1. 类实例化为对象时使用new关键字,new之后紧跟类的名称和一对括号。 * 2. 使用对象可以像使用其他值一样进行赋值操作 */ $jordan = new NbaPlayer("Jordan", "198cm", "98kg", "Bull", "23"); // 访问对象的属性使用的语法是->符号,后面跟着属性的名称 echo $jordan->name . "\n"; // 调用对象的某个方法使用的语法是->符号,后面跟着方法的名称和一对括号 $jordan->run(); $jordan->pass(); $james = new NbaPlayer("James", "203cm", "120kg", "Heat", "6"); echo $james->name . "\n"; // 当对象变量被赋值为Null的时候,对象的析构函数会被自动调用 // 同一个类的其他对象不受影响 $james1 = $james; // 引用赋值操作会产生对象的一个新的引用 $james2 =& $james; // 使用&的引用赋值操作不会产生对象的一个新的引用 $james = null; echo "From now on James will not be used anymore.\n";
} public function jump() { echo "Jumping\n"; } public function dribble() { echo "Dribbling\n"; } public function shoot() { echo "Shooting\n"; } public function dunk() { echo "Dunking\n"; } public function pass() { echo "Passing\n"; } public function getAge() { echo $this->name . "'s age is " . ($this->age - 2) . "\n"; } } // 类名加“::”可以访问类的静态成员 // 静态成员不需要实例化就可以访问 echo "The president is " . NbaPlayer::$president . "\n"; NbaPlayer::changePresident("Adam Silver"); echo "The president is changed to " . NbaPlayer::$president . "\n";
echo "Jumping\n"; } public function dribble() { echo "Dribbling\n"; } public function shoot() { echo "Shooting\n"; } public function dunk() { echo "Dunking\n"; } public function pass() { echo "Passing\n"; } } /** * 1. 类实例化为对象时使用new关键字,new之后紧跟类的名称和一对括号。 * 2. 使用对象可以像使用其他值一样进行赋值操作 */ $jordan = new NbaPlayer("Jordan", "198cm", "98kg", "Bull", "23"); // 访问对象的属性使用的语法是->符号,后面跟着属性的名称 echo $jordan->name . "\n"; // 调用对象的某个方法使用的语法是->符号,后面跟着方法的名称和一对括号 $jordan->run(); $jordan->pass(); $jordan->eat("apple"); // 只要是Human类的子类的对象,就可以调用eat方法
public static function changePresident($newPresident) { self::$president = $newPresident; //改变静态成员的数据 echo parent::$sValue; }
{ echo "jumping\n"; } public function run() { echo "runing\n"; } public function dribble() { echo "dribbling\n"; } public function shooting() { echo "shooting\n"; } public function dunk() { echo "dunking\n"; } public function pass() { echo "passing\n"; } } //给构造函数传参 //每一次 new 实例化对象的时候,都会用类名后面的参数列表 调用 构造函数 自动传参给构造函数 $jordan = new NbaPlayer("joana", "198", "98kg", "bull", "123"); //对象中的属性 方法 可以通过 ->来访问 : 实例名称->属性 echo $jordan->name . "<br/>"; $jordan->eat("apple"); //子类NbaPlayer可以调用 父类Human的属性和父类的方法
{ echo "jumping\n"; } public function run() { echo "runing\n"; } public function dribble() { echo "dribble\n"; } public function shooting() { echo "shooting\n"; } public function dunk() { echo "dunking\n"; } public function pass() { echo "passing\n"; } } //类到对象的实例化 //类的实例化 new 后面紧跟 类的名称() $jordan = new NbaPlayer(); //对象中的属性 方法 可以通过 ->来访问 : 实例名称->属性 echo $jordan->name . "<br/>"; $jordan->dribble() . "<br/>"; $jordan->run() . "<br/>";
public function shooting() { echo "shooting\n"; } public function dunk() { echo "dunking\n"; } public function pass() { echo "passing\n"; } } //给构造函数传参 //每一次 new 实例化对象的时候,都会用类名后面的参数列表 调用 构造函数 自动传参给构造函数 $jordan = new NbaPlayer("jordan", "198", "98kg", "bull", "123"); //对象中的属性 方法 可以通过 ->来访问 : 实例名称->属性 echo $jordan->name . "<br/>"; $jordan->dribble(); echo "<br/>"; $jordan->run(); echo "<br/>------------------------------<br/>"; $james = new NbaPlayer("james", "198", "98kg", "bull", "123"); echo $james->name . "<br/>"; //james //析构函数 在程序执行完 后调用 如果 $james = null 那么程序到此结束 会调用析构函数 打印出 destroing james //当对象不再使用的时候 会触发 析构函数 //如果 $james 没被置空 那么 程序是在 echo "from now on james will not be used<br/>"; //这一句才算执行完 这句之后再调用 析构函数 destroing james //$jams1 = $jams; //相当于创建一个副本,复制; //$jams2 = &$jams; //相当于取一个别名;
echo "Jumping\n"; } public function dribble() { echo "Dribbling\n"; } public function shoot() { echo "Shooting\n"; } public function dunk() { echo "Dunking\n"; } public function pass() { echo "Passing\n"; } public function getAge() { echo $this->name . "'s age is " . ($this->age - 2) . "\n"; } } $jordan = new NbaPlayer("Jordan", "198cm", "98kg", "Bull", "23"); // step1, 证明public和protected的属性可以被子类和自身访问 $jordan->info(); // step2,证明public的属性可以被其他类访问 echo $jordan->getAge() . "\n"; // step3,证明private的属性只能被自身访问 // 把这行代码添加到构造函数试试 echo $this->isHungry . "\n";