`

第三章 面向对象的工具

 
阅读更多

computer.class.php

<?php
	class Computer {
		public $_name = 'dell';
		public function _run() {
			echo '运行';
		}	
	}
?>

 

person.class.php

<?php
	class Person {	
	}
?>

 

demo1.php

<meta charset="UTF-8">
<?php
	//引入类文件即可
	//require 'computer.class.php';
	//1.如果要包含多个类文件,是不是要一一引入。
	//2.引入多个类文件,如果有用不到的,就会产生浪费
	//3.引入了类文件,可能会遗漏,比如说,创建了一个对象,而这个对象的类文件没有引入。就会产生错误
	//$_className = 类名
	//只要实例化了,那么 $_className = 'Computer';
	function __autoload($_className) {
		require strtolower($_className).'.class.php';
	}
	$computer = new Computer();
	$person = new Person();
	echo $computer->_name;
	$computer->_run();
?>

 

demo2.php

<meta charset="UTF-8">
<?php
	class Computer {
		public function _run() {
			echo '运行';
		}		
		//采用__call()方法屏蔽调用
		//__call()里面有两个参数
		public function __call($_methodName,$_argList) {
			echo $_methodName.'()方法不存在';
			print_r($_argList);
		}
	}
	$computer = new Computer();
	$computer->_go();
?>

 

demo3.php

<meta charset="UTF-8">
<?php
	class Computer {
		public function _run() {
			echo '运行';
		}	
		public function __toString() {
			return '我是对象的字符串!';
		}
	}
//	$computer = new Computer();
//	echo $computer;
	echo new Computer();
?>

 

demo4.php

<meta charset="UTF-8">
<?php
	class Computer {
		public $_name = 'dell';
		public function _run() {
			echo '运行';
		}	
	}
	//引用传递
	$computer1 = new Computer();
	$computer2 = $computer1;
	$computer2->_name = 'ibm';
	echo $computer1->_name;
?>

 

demo5.php

<meta charset="UTF-8">
<?php
	class Computer {
		public $_name = 'dell';
		public function _run() {
			echo '运行';
		}	
	}
	//独立实例
	$computer1 = new Computer();
	$computer2 = new Computer();
	$computer1->_name = '联想';
	echo $computer1->_name;
?>

 

demo6.php

<meta charset="UTF-8">
<?php
	class Computer {
		public $_name = 'dell';
		public function _run() {
			echo '运行';
		}	
	}
	//对象克隆
	$computer1 = new Computer();
	$computer1->_name='联想';
	$computer2 = clone $computer1;
	//echo $computer2->_name;
	$computer2->_name = 'ibm';
	echo $computer2->_name;
	echo $computer1->_name;
?>

 

demo7.php

<meta charset="UTF-8">
<?php
	class Computer {
		public $_name = 'dell';
		public function _run() {
			echo '运行';
		}	
		public function __clone() {
			echo '克隆了';
			$this->_name = '联想';
		}
	}
	$computer1 = new Computer();
	$computer2 = clone $computer1;
	echo $computer1->_name;
	echo $computer2->_name;
?>

 

demo8.php

<meta charset="UTF-8">
<?php
	class Computer {
		public function _run() {}
		private function _go() {}
		public $_name = 'dell';
		private $_model = 'i7';
	}
	class NoteComputer extends Computer {	
	}
	interface Person {
	}
	$computer = new Computer();
	$notecomputer = new NoteComputer();
	//1.检查类是否存在
	echo class_exists('Computer');
	//2.获取对象的类名
	echo get_class($computer);
	//3.获取类中公共的方法
	print_r(get_class_methods($computer));
	//4.获取类中的字段
	print_r(get_class_vars('Computer'));
	//5.获取子类的父类
	echo get_parent_class($notecomputer);
	//6.判断接口是否存在
	echo interface_exists('Person');
	//7.判断对象是否是这个类,$notecomputer的类的父类是Computer
	echo is_a($notecomputer,'Computer');
	//8.判断对象是否是类的子类。
	echo is_subclass_of($notecomputer,'Computer');
	//9.判断对象是否有这个方法
	echo method_exists($computer,'_run');
?>

 

demo9.php

<?php
	//反射,了解一下,入门
	//查看自定义类
	class Computer {
		public function _run() {}
		private function _go() {}
		public $_name = 'dell';
		private $_model = 'i7';
		public static $_cpu;
		public static function tool() {
			
		}
		const PI = 3.14;
	}
	//使用反射列出他们的信息
	Reflection::export(new ReflectionClass('Computer'));
?>

 

demo10.php

<?php
	class Computer {
	}
	//系统内置的类 
	//Reflection::export(new ReflectionClass('DateTime'));
	$rc = new ReflectionClass('DateTime');
	echo $rc->getName();
	echo $rc->getFileName();
	print_r($rc->getConstants());
?>

 

 

 

 

分享到:
评论

相关推荐

    第一章 面向对象的基础

    在第一章“面向对象的基础”中,我们将深入探讨这一核心编程概念。 首先,理解“对象”是OOP的关键。对象是程序中的实体,它包含了数据(称为属性或成员变量)和操作这些数据的行为(称为方法或函数)。通过创建...

    第19章 面向对象的工具

    在实际开发中,我们常使用的面向对象工具包括集成开发环境(IDEs)如Eclipse、IntelliJ IDEA,它们提供了强大的面向对象设计支持,包括类图视图、代码自动完成、重构工具等。此外,版本控制系统如Git,可以帮助团队...

    面向对象软件工程

     第三章 软件过程  第四章 软件团队  第五章 软件工程工具  第六章 测试  第七章 从模块到对象  第八章 可复用性和可移植性  第九章 计划与估算  第二部分 软件生命周期工作流  第十章 需求工作流...

    第二章 面向对象编程

    面向对象编程是软件开发中的一种核心概念,尤其在JavaScript中,它允许我们通过类和对象来组织和处理数据。在本章中,我们将深入探讨JavaScript中的面向对象编程思想及其实践。 1. **JavaScript中的对象编程基础** ...

    C++面向对象程序设计_第三版_谭浩强_课后答案[1-14章

    根据提供的文件标题、描述以及部分无法识别的内容,我们可以聚焦于《C++面向对象程序设计》这本书,特别是由谭浩强编著的第三版,并且关注的是该书第1-14章的课后习题答案。 ### C++面向对象程序设计概述 C++是一...

    VC++面向对象与可视化程序设计(第三版)黄维通 第六章

    第六章的内容在“VC++面向对象与可视化程序设计(第三版)黄维通”中主要聚焦于面向对象编程(OOP)的概念以及如何利用Microsoft Visual C++(VC++)进行可视化程序设计。黄维通老师的这本书是许多学习者深入理解C++...

    c++第三章面向对象的程序设计 课件

    面向对象的程序设计是C++的核心特性之一,它基于类和对象的概念,使得代码更加模块化,易于维护和扩展。本章将详细讲解这些概念及其应用。 首先,类是面向对象编程的基础,它是一个蓝图或者模板,定义了一组数据...

    第3章 面向对象方法

    在本讲义的第三章中,我们将深入探讨面向对象方法的核心原理及其在实际软件开发中的应用。 一、面向对象的基本概念 1. 对象:对象是面向对象编程的基础,它包含数据(属性)和操作数据的方法(行为)。对象是现实...

    第16章 LabVIEW中的面向对象编程,labview面向对象的框架,LabView

    5. LabVIEW中的面向对象框架:LabVIEW提供了强大的OOP工具,如类库(Class Library)、事件结构(Event Structure)和对象引用(Object Reference)。类库可以组织和管理类,事件结构处理对象间的通信,对象引用则...

    第八章 面向对象.docx

    ### 第八章 面向对象 #### 一、面向对象的基本概念 面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它使用“对象”来设计软件。面向对象的核心思想是将数据和处理这些数据的方法封装成一个...

    03第三章面向对象的设计与实现.ppt共60页.pdf.z

    本资料“03第三章面向对象的设计与实现.ppt共60页.pdf.zip”是一个压缩包,包含了60页的PPT,旨在深入探讨这一主题。以下是基于这个主题的详细知识点讲解: 1. 面向对象编程(OOP)基础: - 类与对象:类是创建...

    第章面向对象测试技术.ppt

    在面向对象测试技术中, testers 需要了解面向对象软件的结构和行为,掌握面向对象测试技术的方法和工具。 testers 需要了解面向对象软件的每个阶段,包括面向对象分析、面向对象设计、面向对象编程等,并掌握相应的...

    第7章 面向对象分析-1.pptx

    面向对象分析的过程可以分为三个阶段:第一阶段是面向对象分析方法,第二阶段是面向对象建模,第三阶段是面向对象设计。面向对象分析方法是指通过识别和描述系统中的对象、类和关系,建立系统的模型的过程。在这个...

    VC++面向对象与可视化程序设计(第三版)黄维通 第七章

    《VC++面向对象与可视化程序设计(第三版)黄维通 第七章》是一本深入讲解使用Microsoft Visual C++进行面向对象编程和可视化程序开发的教材。黄维通教授是该领域的专家,他的这本书旨在帮助读者掌握C++的面向对象...

    Java与UML面向对象程序设计.pdf

    第3章阐述了如何使用Java来编写面向对象程序。第4章介绍面向对象的分析和设计。第5章使用这些面向对象观点分析了图形用户界面(GUI)和Java Swing类库。第6章以一个小规模的Java应用程序为实例,将前5章的内容结合到...

    面向对象程序设计与C++语言

    C++语言是实现面向对象编程的主要工具之一,由Bjarne Stroustrup于1983年在C语言的基础上扩展而来,旨在提供更高级别的抽象和模块化能力。 在学习面向对象编程时,首先要理解的是类(Class)和对象(Object)。类是...

    UML面向对象设计与分析

    4. **第3章:类图、对象图和包图** - 类图描绘了类、接口、操作和关联等元素,以及它们之间的关系。 - 对象图是类图在特定场景下的实例化,显示了类的实例和它们的相互连接。 - 包图用于组织和管理系统的模块化,...

    武汉大学JAVA教程 第03章-面向对象特征

    面向对象编程(Object-Oriented Programming,OOP)是现代软件开发中的一种核心思想,它源自于面向对象的哲学理念,旨在模拟现实世界中的对象及其交互。Java 语言是完全支持面向对象特性的,它是第四代编程语言的...

Global site tag (gtag.js) - Google Analytics