<?php
date_default_timezone_set("PRC");/*
* 1.静态属性用于保存类的公有数据
* 2.静态方法里面只能访问静态属性
* 3.静态成员不需要实例化对象就可以进行访问
* 4.类的内部可以通过self或者static关键字访问自身静态成员
* 5.可以通过parent关键字访问父类的静态成员
* 6.可以通过类的名称在类定义外部访问静态成员
*
*/
class Human{
public $name;
protected $height; //只有自身和子类可以访问
public $weight;
private $isHungry = true; //不能被子类访问public static $sValue = "Static value in Human class"."\n";public function eat($food){
echo $this->name."'s eating "."'$food"."\n";
}public function info(){
echo "HUMAN :".$this->name. ";".$this->height.";".$this->isHungry."\n";
}
}
class Animal{}//类的定义以关键字class开始,后面是类的名称,类的命名通常第一个字母大写,以中括号开始和结束
//在PHP中用extends关键字表示类的继承,后面跟父类的类名
//PHP中extends后只能跟一个类的类名,这是PHP中的单继承原则
class NBaplayer extends Human
{
// public $name = "Jordan"; //定义属性
// public $height = "198cm";
// public $weight = "98kg";
public $team = "Bull";
public $playernumber = "23";private $age = "40"; //Private的类成员只能在内部被访问//静态属性在定义时在访问控制关键字后面添加static关键字即可
public static $president = "David Stern";
// 静态方法在定义时在访问控制关键字后面添加static关键字即可
public static function changePresident($newpresdt){
//在类定义中使用静态成员时,用self或者static关键字后面跟::操作符即可
//注意,在访问静态成员属性时,::后面需要跟$符号
self ::$president = $newpresdt;
//使用parent关键字访问父类中的静态成员
echo parent::$sValue."\n";
}//构造函数,在对象被实例化时自动调用
function __construct($name,$height,$weight,$team,$playernumber)
{
echo "in NBaplayer constuctor\n";
$this->name = $name; //$this是php里面的伪变量,表示对象自身,可以通过$->this的方式访问对象的属性和方法
$this->height = $height;
$this->weight = $weight;
$this->team = $team;
$this->playernumber = $playernumber;
echo $this->height."\n";
}//析构函数,在程序执行结束时自动调用
//析构函数通常被用于清理程序使用的资源。比如,程序使用了打印机,那么可以在析构函数里释放打印机资源
function __destruct()
{
echo "Destroying ".$this->name."\n";
}//定义方法
public function run()
{
echo "running\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";
}
}
//类到对象的实例化
//类的对象为实例化时使用关键字new,后面是类的名称和一堆括号
// $jordan = new NBaplayer("Jordan","198cm","98kg","Bull","23");
// $james = new NBaplayer("James","203cm","120kg","Heat","6");
//对象中的成员属性通过->符号来访问
//在类定义外部访问静态属性,可以用类名加::操作符的方法来访问类的静态成员
echo NBaplayer::$president." Before change"."\n";
NBaplayer::changePresident("Aadam Siver");
echo NBaplayer::$president."\n";
echo Human::$sValue."\n";
// echo "Jordan : ".$jordan->president."\n";
// echo "James : ".$james->president."\n";
echo $jordan->name."\n";
//echo $jordan->getAge();
// $jordan->info();
// $jordan->eat("Apple"); //在子类中的对象上可以直接访问父类中定义的属性和方法
//对象中的成员方法通过->符号来访问
// $jordan->dribble();
// $jordan->dunk();
// $jordan->jump();
// $jordan->pass();
// $jordan->run();
// $jordan->shoot();
//
// //每一次用new实例化对象的时候,都会用类名后面的参数列表调用构造函数
// $james = new NBaplayer("James","203cm","120kg","Heat","6");
// echo $james->name."\n";// //通过把变量设置为Null,可以出发析构函数的调用
// //当对象不会再被使用的时候,会触发析构函数
// $james1 = $james;
// $james2 = &$james;
// $james2 = null;
// $james1 = null;
// echo "From now on James will not be used.\n";
?>

转载于:https://www.cnblogs.com/phperlinxinlan/p/6395379.html

PHP面向对象编程简单实例相关推荐

  1. python面向对象编程138讲_Python面向对象编程简单讲解

    学习目标: 1-面向对象编程 2-类和对象 3-对象的属性和方法 4-类的特性 Python面向对象编程 一种编程程序的设计思想,把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数.把计算机 ...

  2. Python-100-days 面向对象编程-简单想法学习写21点游戏(一)

    简单想法学习写21点游戏(一) (以此记录学习体会) 年已半百,仅初中时学过点Basic,高数.英语早已丢给大学老师,看着这部分面向对象编程,经常有种感受:眼睛,会了!:脑,不会!.什么对象啊,类方法 ...

  3. Python 进阶_OOP 面向对象编程_实例属性和方法

    目录 目录 构造器和解构器 构造器 __init__ 真构造器 __new__ 解构器 __del__ 实例方法 Python 中的 抽象方法 实例属性 查看实例属性 实例属性和类属性的区别 访问不可 ...

  4. 桌面邮件飞机源码——VB.NET网络编程简单实例

    最近闲来无事,用VB.NET制作了一个快速发送邮件的小程序,关于界面的控件设计我就不再做过多的说明啦,关于VB.NET的新手来说,可以先学习一下控件的基本使用方法,然后对本代码进行修改和完善,希望大家 ...

  5. 【手把手教你】Python面向对象编程入门及股票数据管理应用实例

    1 前言 一般而言,在学习或练习python的初级阶段,在Jupyter Notebook(spyder或pycharm)上进行逐条执行语句和代码,这样可以起到交互的良好效果.但是如果要进行大一点的项 ...

  6. 【Golang第8章:面向对象编程】Go语言的结构体是什么,怎么声明;Golang方法的调用和声明;go语言面向对象实例,go语言工厂模式;golang面向对象的三大特性:继承、封装、多态

    介绍 这个是在B站上看边看视频边做的笔记,这一章是Glang面向对象编程 这一章内容较多,内容有Go语言的结构体是什么,怎么声明:Golang方法的调用和声明:go语言面向对象实例,go语言工厂模式: ...

  7. python浓缩(13)面向对象编程

    为什么80%的码农都做不了架构师?>>>    本章主题 ? 引言 ? 面向对象编程 ? 类 ? 实例 ? 绑定与方法调用 ? 子类,派生和继承 ? 内建函数 ? 定制类 ? 私有性 ...

  8. 第十章 Golang面向对象编程(上)

    结构体 看一个养猫问题 张老太养了两只猫猫:一只名字叫小白,今年3岁,白色.还有一只叫小花,今年100岁,花色.请编写一个程序,当用户输入小猫的名字时,就显示该猫的名字,年龄,颜色.如果用户输入的小猫 ...

  9. go 面向对象编程-1

    结构体 一个程序就是一个世界,有很多对象(变量) golang语言面向对象编程说明 golang也支持面向对象编程(OOP),但是和传统的面向对象编程有区别,并不是纯粹的面向对象语言.所以说golan ...

最新文章

  1. 用C语言实现Ping程序功能
  2. 一蹴而就的解释是什么_健身会让我们成为什么样的人?
  3. HBase底层存储原理——我靠,和cassandra本质上没有区别啊!都是kv 列存储,只是一个是p2p另一个是集中式而已!...
  4. bugfree3.0.2版本升级--更新版
  5. 数据结构面试的常客,一文带你深入了解堆
  6. 科大星云诗社动态20210514
  7. eclipse编码页面中文乱码在哪更改编码?
  8. 关于一类docker容器闪退问题定位
  9. springBoot的一些注解以及静态资源的处理
  10. python flask将读取的图片返回给web前端
  11. 3D-06-打飞碟(物理运动)
  12. Photoshop插件-黑白(三)-脚本开发-PS插件
  13. 84 岁 iOS 女程序员,不得不服!
  14. 推荐一个比较好用的画廊展示图片(支持无限轮播)的控件ViewPagerGallery
  15. 华为认证三个等级区别在哪?
  16. Leetcode_96_Unique Binary Search Trees
  17. zipfile的压缩和解压缩
  18. CSS3自定义滚动条样式 -webkit-scrollbar
  19. Python爬虫学习(四)爬取图片素材网站素材
  20. 应届毕业生到底有哪些优势呢

热门文章

  1. python nose(二)
  2. 数据量高并发的数据库优化
  3. directory not found for option
  4. 图像处理之基础---高斯低通滤波在指定区域画放大圆形图
  5. 学习python时报SyntaxError: Non-ASCII character '\xe5' in file解决方法
  6. 二极管7种应用电路详解之四
  7. 使用训练数据结构代替注意力机制
  8. AltiumDesigner PCB导入CAD
  9. spring框架使用Quartz执行定时任务实例详解
  10. MyBatis—insert语句返回主键和selectKey标签