类与对象
来源:互联网 发布:centos的vmdk文件下载 编辑:程序博客网 时间:2024/04/30 23:55
在面向对象的编程语言中,类是对对象的抽象,在类中可以定义对象的属性和方法的描述;对象是类的实例,类只有被实例化后才能被使用。
定义类
在PHP中,使用关键字class加类名的方式定义类,然后用大括号包过类体,在类体中定义类的属性和方法。类的格式如下:
<?phpclass MyClass { private $var; public function fun() { // 。。。。 }}
MyClass为类的名称,两个大括号中间的部分就是类的全部内容。在PHP5以前的版本中,使用关键字var声明类的属性;而在PHP5(包括5)以后的版本中,引入了private、protected和public关键字,分别用来定义私有、保护和共有成员,这就可以使程序更加安全。类和定义成员函数的方法与定义普通函数的方法相同,而且还可以用关键字private、protected和public对成员函数的访问权限进行限定。
注意:
一个类,即一对大括号之间的全部内容都要在一个代码段中,即一个"<?php ..... ?>"
之间,不能分割成多块儿,例如:
<?php class MyClass{ //..?><?php ../}?>
这种格式是不正确的
实例化类
对类定义完成后并不能直接使用,还需要对类进行实例化,即声明对象。PHP中使用关键字new来声明一个对象。格式如下:
对象名 = new 类名(var0, var1, ….varn)
在对象进行实例化时,需要为类的构造方法指定参数。
例如:
定义一个学生类(Student类),在类体中定义成员变量$name
和$age
分别用来表示学生姓名和年龄;__construct()为类的构造方法,用于为类的成员变量初始化;最后定义方法getNameAndAge()来输出学生信息
<?phpclass Student{ private $name; private $age; public function __construct($name, $age)//定义构造方法 { $this->name = $name; $this->age = $age; } public function getNameAndAge() { return "学生" . $this->name . "今年" . $this->age . "周岁"; }}$student = new Student("小明", 15);echo $student->getNameAndAge();
运行结果为:
学生小明今年15周岁
使用对象
对类定义完成后,需要将其进行实例化后才能使用,对象可以调用类中的公有属性和公有方法,即被关键字public修饰的属性和方法。调用方法如下:
对象名->属性; //调用类的属性
对象名->方法; //调用类的方法
对上述代码中可以发现,PHP调用类的属性和方法使用符号”->”而非”.”,与其他的一些语言不同,初学者应该注意,不要混淆。
例如:
定义类BOOK,并在类中定义公有成员bookName
代表书名,公有方法getBookName()
用来获取图书名称。对Book类进行实例化后分别通过bookName
属性和getBookName()
方法在页面中输出图书名称。
<?phpClass Book{ public $bookName; public function __construct($bookName)//定义构造方法 { $this->bookName = $bookName; } public function getBookName() { return $this->bookName; }}$book = new Book("《PHP从入门到放弃》");echo $book->bookName;echo "<br>";echo $book->getBookName();
运行结果为:
《PHP从入门到放弃》
《PHP从入门到放弃》
注:如果将类体中的属性或方法声明为私有或保护的成员,再次运行本实例将提示信息错误。所以从上面的实例可知,PHP的属性只能直接调用类的公有属性和公有方法。
成员变量
在类中所定义的变量成为成员变量(也可成为属性或字段)。成员变量用来保存信息数据,或与成员方法进行交互来实现某项功能。
定义成员变量的格式一般为:
变量声明符 成员变量名。
说明:变量声明符可以使用public,private,protected,static和final中的任意一个。(有关这些的详细用法,小编正在更新,敬请期待)
访问成员变量和访问成员方法是一样的,只要把成员方法换成成员变量即可,格式为:
对象名->成员变量
例如:
在MyClass类中声明一个成员变量$class_name
,接着为这个变量声明两个成员方法$setClassName()
和$getClassName()
。实例化MyClass类并为类的构造函数传递参数”Hello PHP”,最后输出结果
<?phpclass MyClass{ public $class_name; function setClassName($name) { $this->class_name = $name; } function getClassName(){ return $this->class_name; }}$c_book = new MyClass();$c_book->setClassName("Hello PHP");echo $c_book->class_name.'<br>';echo $c_book->getClassName();
运行结果为:
Hello PHP
Hello PHP
成员函数
在类体中所定义的函数称为成员函数或成员方法,主要是为了实现某项功能,在PHP4.x中定义成员函数的方法与定义普通函数的方法相同,而在PHP5.x中可以为成员方法设置权限修饰符,从而可以有效的提高代码的逻辑性和安全性。PHP5.x中定义类的成员函数的语法格式如下:
访问权限修饰符 function 成员函数名 (var0, var1, …, varn)
{
//函数体
}
例如:
定义类MyClass并在类体中定义属性$name
,定义公有方法setName()
和getName()
分别用来为属性$name
赋值和获取$name
的值,代码如下:
<?phpClass MyClass{ private $name; public function setName($name) { $this->name = $name; } public function getName() { return $this->name; }}$myClass = new MyClass();//对类进行实例化$myClass->setName("计算机");echo $myClass->getName();
运行结果为:
计算机
纯手打,有关面向对象的详细讲解,仍在持续更新,如有不到之处,望多多指正。
- OOP-----类与对象对象
- OOP-----类与对象对象
- 对象与元类对象
- 对象与类类型
- C02(类与对象)
- 类与对象(PHP5)
- 类与对象
- 区分类与对象
- 类与对象
- 类与对象
- 类与对象
- C#类与对象
- 对象与类
- 类与对象总结
- js类与对象
- C++ 类与对象
- 类与对象
- 类与对象概述
- 可重入函数/不可重入函数
- 【QT】:QT中的信号和槽
- IIS发布时的注意事项
- python 数据结构
- angular学习(一)—— 概览
- 类与对象
- Hibernate查询语言(HQL)
- Android自定义View之贝塞尔曲线图
- JDK容器与并发—Queue—ArrayBlockingQueue
- android MultiDex multiDex原理(一)
- 【动态规划】复制书稿
- Android java 中如何优雅的结束线程
- Struts2图片的上传下载
- IT技术人的一点点思考