OOP练习题

更新时间:2024-06-28 18:21:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、选择题

1、如何让一个对象实例调用自身的该对象的方法函数?mymethod??d

A.$self=>mymethod(); B.$this->mymethod();

C.$current->mymethod(); D.$this::mymethod();

2、以下是一个类的声明,其中有两个成员属性,对成员属性正确的赋值方式是(d) class Demo { private $one; static $two;

function setOne($value) { $this->one=$value; } }

$demo=new Demo();

A.$demo->one=\ B.Demo::$two=\

C.Demo::setOne(\ D.$demo->two=\

3.以下说法错误的是(d) A. final关键字标识的类不能被继承

B. final关键字标识既可以标识成员方法,也可以标识成员属性 C. 在静态方法中只能访问静态成员 D. 将类中的成员属性定义为常量使用const

4.一个类继承父类的同时实现多个接口的正确写法(b) A.class 类名extends 父类名,接口1,接口2,……{ }

B.class 类名 implements接口1,接口2,…… extends 父类名{ } C. class 类名extends 父类名 implements接口,1接口2,……{ } D. class 类名 implements父类名 implements接口,1接口

5.下面哪一项不是PHP中面向对象的机制(d)

A.类 B.属性、方法 C.单一继承 D.多重继承

6.如果成员没有声明限定字符,属性的默认值是:(C) A.private B.protected C.public D.final

7.PHP中调用类文件中的this表示(A)

A.用本类生成的对象变量 B.本页面 C.本方法 D.本变量

8.在PHP5的类的定义中,无法使用3P修饰的内容是(B) A.属性 B.静态方法 C.常量 D.方法

9.定义抽象类时需要加的修饰关键字(B) A.public B.interface C. implements D.abstract

10.一个类继承父类的同时实现多个接口的正确写法(B) A.class 类名extends 父类名,接口1,接口2,……{ }

B.class 类名 implements接口1,接口2,…… extends 父类名{ } C. class 类名extends 父类名 implements接口,1接口2,……{ } D. class 类名 implements父类名 implements接口,1接口2,……{ }

11.自动加载类函数(C)

A.include() B. require() C.__autoload() D.__call()

12.如果父类中方法加上private修饰关键字,子类在继承中重载此方法不可以使用的修饰关键字() A.var B. public C.protected D.private

13、除了使用function __construct()定义构造方法外,还可以使用(D) A.function __destruct() B. function 类名()

C.function __tostring() D.function __call()

14、获得实例化对象所属类名字的函数()

A. get_class() B. get_object_vars() C. get_class_methods()

15.以下哪个不属于面向对象编程的三大特性( ) A.接口 B. 封装 C.继承 D.多态

16.下列代码执行后,$array数组所包含的值是( )

$array=array('1','1'); foreach($array as $k=>$v){ $v=2; }

var_dump($array); ?>

A array(‘2’,’2’) B array(‘1’,’1’) C array(2,2)

17.以下代码执行结果为( )

$a=?hello?; function print_A(){

D araay(Null,Null) $a=?php mysql?; global $a; echo $a; } echo $a; print_A(); ?>

A hello B php mysql C hellohello D hello php mysql

18.关于类的说法错误的是: A.抽象类中必须有抽象方法 B.接口中不能有静态属性 C.一个类可以实现多个接口

D.final关键字声明的方法不能被重写

19.关于对象中克隆的说法错误的是: A.clone是复制了一个对象变量

B.clone的对象和原对象使用instanceof判断结果相同 C.clone的对象改变一定会影响原对象

D.__clone魔术方法是克隆对象时才会被触发的方法

20.下面四个魔术方法哪一个是需要两个参数

A.__get B.__set C.__isset D.__unset

21.class demo{

private $name = ‘zhangsan’; public function __get($a){ return true; }

public function __set($b){ return false; }

public function __isset($c){ return true; }

public function unset($d){ echo ‘true’; } }

上面的四个魔术方法那个是错误的: A.__get B.__set C.__isset D.__unset

22.修饰成员属性的关键字错误的是 A.public B.static C.private D.final

23、阅读下面PHP程序代码,写出执行结果: Class test{ Private $name;

Public function __construst($name){ $this->name=$name;

Echo ?{$this->name}?被构造; }

Public function __destruct($name){ $this->name=$name;

Echo ?{$this->name}?被析构; }

$t1 = new test(?X?); $t2 = new test(?Y?); }

A X被构造 Y被构造 X被析构 Y被析构 B X被构造 X被析构 Y被构造 Y被析构 C X被构造 Y被构造 Y被析构 X被析构

24、阅读下面PHP程序代码,写出执行结果:

class Test{

public $x = 10; protected $y = 100; private $z = 1000;

public function __get($name){ return $this->$name*2; } }

$t = new Test();

echo $t->x.\

A10:100:1000 B10:200:2000 C10:200:1000 D20:200:2000 25.关于PHP 5中的异常,下列四句描述中哪句是错误的( )。 A.异常也是一个类

B.为了抛出我们自建的异常,我们必须使用throw语句实现 C.异常在抛出后会在父一层被自动消灭掉

D.要容忍某些特定的异常,我们应该使用try…catch语法的同时,留空catch段

二、简答题

1.写出8个魔术方法?

__get UNSET ISSET SET CALL 2.构造方法和析构方法什么时候被调用?

3.三种访问控制修饰符在访问和继承时的区别?

4.PDO中开启、提交、回滚事务的方法?

本文来源:https://www.bwwdw.com/article/njg3.html

Top