找出一组数组中最大值最大值的角标最小值最小值的角标及平均数
Posted 花花妹子最努力~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了找出一组数组中最大值最大值的角标最小值最小值的角标及平均数相关的知识,希望对你有一定的参考价值。
面向对象
概念:按类进行分类,类是表示彼此之间可能互不相同,但是具有一些共同点的对象集合
多态性:不同的类对同一操作可以有不同的行为
继承:允许我们使用子类在类之间创建层次关系
类
关键字:class
结构 :class classname{ }
作用域关键字:public、private、protected
构造函数:初始化(___construct($params))
析构函数:与构造函数相对。在所有该类的引用都会被重置或超出作用域时自动发生(__destruct)
类的实例化:new
class main{ function __construct($params) { echo $params; } } $a=new main("123"); //输出123 $b=new main(); //输出空
ps:___construct要跟new 带的参数一致
通过函数来实现对属性的访问:
__set:当外部无法访问某个类变量时,通过该方法设置值
__get:当外部无法访问某个类变量时,通过该方法获取值
class main{ private $name; private $age; public function __construct($name="",$age=18) { $this->name=$name; $this->age=$age; } function __get($name) { // TODO: Implement __get() method. return $this->$name; } function __set($name, $value) { // TODO: Implement __set() method. $this->name=$value; } function say(){ echo $this->name.$this->age; } } $a=new main("cmf",18); $a->name="hello"; //如果没有__set,则会出错 echo $a->age; //如果没有__get,则会出错
使用private和public关键字控制访问
- 默认是public
- public:公有属性。类的内部和外部都可以访问
- private:私有属性。只能在类的内部访问。使用__set\\__get可以在外部使用该属性
- protected:只能在内部使用
继承
关键字:extends
ps:继承是单方向的。子类可以从父类或超类继承特性(public、protected)
通过private和protected访问修饰符来控制需要继承的内容
- public:公有属性,继承类外部和内部都可以使用
- private:无法被子类继承(方法和属性)
- protected:被继承,只能在子类内部用,在外部无法使用
class main{ public $name; private $age; protected $money; protected function say(){ echo "say"; } private function run(){ echo "run"; } public function hair(){ echo "hair"; } } class test extends main{ function __construct() { this->name="test"; $this->age=18; //致命错误,无法继承 $this->money="more and more"; $this->say(); $this->run(); //致命错误 $this->hair(); } } $cmf=new test();
重载:重新定义父类的属性及方法
class a{ public $attribute="a"; function oreration(){ echo $this->attribute; } } class b extends a{ public $attribute="b"; function oreration() { parent::oreration(); //输出b echo "hello"; } } $b=new b(); $b->oreration();
禁止继承和重载:final
class a{ public $attribute="a"; final function oreration(){ echo $this->attribute; } } class b extends a{ public $attribute="b"; function oreration(){} //致命错误,无法重载final的方法 }
实现接口:可以解决多重继承的问题,一个类可以继承一个类,但是可以实现一个或多个接口
interface Displayable{ function say(); //没有花括号 } class test implements Displayable{ function say() //如果没有实现接口中的制定方法,会发生致命错误 { echo "hello"; } }
静态方法及per-class常量
- 在没有实例化类的情况下可以访问
- 在一个静态方法中,不能使用this关键字
class Math{ const pi=3.14159; static function squared($input){ $this->name=\'123\'; //致命错误 return $input*$input; } } echo Math::pi; //输出3.14159 echo Math::squared(8); //输出64
检查类的类型和类型提示:instanceof
- 检查一个对象是否为特定类的实例
interface a{ function say(); } class aa implements a{ function say(){} } class bb {} $aa=new aa(); $bb=new bb(); echo $aa instanceof a; //true echo $bb instanceof a; //false
克隆对象:clone
- 复制一个已有的对象
- 如果不需要克隆过来的默认属性,可以在基类中创建一个__clone()方法
抽象类:
abstract class a{ abstract function func($param1,$param2); }
重载方法:__call
- 必须带2个参数,一个方法名称,一个参数
/** * __call方法是调用不可见(无权限或不存在)的方法时,自动调用 * $aa->hello(123); * 没有hello方法,调用call("hello",\'123\') */ class a{ public function __call($name, $arguments) { echo \'你想调用我不存在的方法\', $name, \'方法\'; echo \'还传了一个参数\'; print_r($arguments); } } $aa=new a(); $aa->hello(123); //输出:你想调用我不存在的方法hello方法还传了一个参数Array ( [0] => 123 )
实现迭代器和迭代
- 通过forrach方法循环取出一个对象的所有属性
class myclass{ public $a=5; public $aa=55; public $aaa=555; public function hello{ echo "hello"; //致命错误 ,只能取属性 } } $x=new myclass(); foreach ($x as $attribute){ echo $attribute."<br/>"; }
将类转换成字符串:__toStirng
class test{ public $foo="hello"; public function __toString() { return(var_export($this,true)); //输出所有的属性 // return $this->foo; } } $a=new test(); echo $a; //输出test::__set_state(array( \'foo\' => \'hello\', );
以上是关于找出一组数组中最大值最大值的角标最小值最小值的角标及平均数的主要内容,如果未能解决你的问题,请参考以下文章