2018-3-5面向对象(代码片段)

凉冰婵 凉冰婵     2022-10-22     583

关键词:

今天学习了有关“面向对象”的内容:

传统的面向对象:把将要完成的工作,一个步骤一个步骤的实现,最终完成目标。

现代的面向对象:把要做的事情提前存起来,等到需要用的时候调用,相当于设计方法和方法的调用。

面向对象主要是设计思想上的极大提升。面向过程是解决简单问题的自然的思维过程,面向对象是解决大规模的复杂问题的良好思想。

面向对象的基本概念:

类:表示一个群体。有“共同特征”,某一类事物的总称。

对象:表示群体中的个体,万事万物皆为对象。

1、定义类:

定义类的语法中,包括定义属性、定义方法、定义常量三种。

2、创建类的对象:

3、使用对象:

//定义类
class
c1 var $name="匿名"; var $sex="未知"; var $age=18; function f1() echo "函数f1被调用!"; const pi=3.14;
//创建类的对象
$person1=new c1(); $person2=new c1(); $person1->name="张三"; $person1->sex="男"; $str1=$person1->name; echo "$str1的性别为:".$person1->sex."<br />"; $person1->f1();

创建对象的基本形式:

①$对象名1=new 类名();

②可变类名:

$CName="C1";
$person3=new $CName();   //可变类(名)

③$对象名3 = new  self;     //self指代类本身,这行代码只能在类内部方法中使用。

④通过对象创建对象

$person4=new $person3;    //通过对象创建该类的新对象

对象的传值:

php中,传值方式有值传递和引用传递。

值传递:拷贝数据本身。传递结束,有两份数据,但两变量“相互独立”。

引用传递:传递结束,数据只有一份,两个变量同时指向该数据。

面向对象:默认值传递,可以引用传递。

class p
    var $v1=10;

$p1=new p();
$p2=$p1->v1;
$p1->v1=20;
var_dump($p1);
var_dump($p2);

输出结果为:$p1=20

      $p2=10

class p
    var $v1=10;

$p1=new p();
$p2=$p1;  //传的是v1,不是v1的值
$p1->v1=20;
var_dump($p1);
var_dump($p2);

输出结果为:$p1=20

      $p2=20

class p
    var $v1=10;

$p1=new p();
$p2=&$p1->v1;
$p1->v1=20;
var_dump($p1);
var_dump($p2);

输出结果为:$p1=20

      $p2=20

面向对象的方法:

例:

//斜边
class person
    var $x=1;
    var $y=1;
    var $pi=1;
    function getxiebian($a,$b)
        $s1=$a*$a+$b*$b;
        $s2=pow($s1,0.5);
        return $s2;
    

$p1=new person();
$xie1=$p1->getxiebian(3,4);
echo "<br />斜边1=$xie1";

$this关键字:

$this是一个“伪对象”,代表当前所属类的当前对象。

//类与对象的创建   “自我介绍”
class Person
    public $name="匿名";
    public $age=28;
    public $PI=3.14;
    function intro()
        echo"<b/>hi,大家好,我叫".$this->name;
        echo",今年".$this->age."岁<br/>";
    

$p1=new Person();
$p1->name="张三";
$p1->age=20;
$p1->intro();
$p2=new Person();
$p2->name="李四";
$p2->age=22;
$p2->intro();

一个系统函数:get_class(对象) 

作用:获得某个对象的“所属类名”——结果只是一个类名字符串。

$class_name = get_class($p1);   //结果是:”Person” 

静态属性

定义:只隶属于类本身——也可以看做是所有对象的“共有数据”。

使用:

//静态属性
class C1
    static $v1=10;    //静态属性

C1::$v1=100;    //修改静态属性的值
$s1=C1::$v1;    //取得静态属性的值
echo "s1=$s1";
$c1=new C1();
$c2=new c1();
echo "<br/>c1的中的静态属性v1=".$c1::$v1;
$c1::$v1=1000;    //通过$c1修改了静态属性值
echo "<br/>c2的中的静态属性v1=".$c2::$v1;

静态方法

方法的前面加上static关键字修饰,就变成了静态方法。

静态方法同样隶属于类,而不是隶属于具体对象。使用方法跟静态属性类似:

类名::静态方法名();

静态方法是只隶属于类,而为所有对象所“共有”。

注意1:$this在静态方法中不能使用。

self:代表当前类。

class S2
    public $v1=1;
    static function getNew()
        return new self;    //self代表"当前类"
                            //new self代表当前类的一个对象

echo"<hr />";
$obj2=S2::getNew();        //t通过S2的静态方法得到该类的一个新对象
var_dump($obj2);

构造方法和析构方法:

构造方法是“创建”对象的时候会自动调用。

析构方法是“销毁”对象的时候会自动调用。

class student
    public $name="匿名";
    public $sex="未知";
    static $age=18;
    const food="馒头";
    function intro()
        echo"<b/>hi,大家好,我叫".$this->name;
        echo",我是".$this->sex."生<br/>";
        echo ",我爱吃".self::food."。<br>";
    
    function __construct($n,$s)  //构造方法
        $this->name=$n;
        $this->sex=$s;
    
    function __destruct()  //析构方法
        echo"<br/>被销毁了";
    

echo"<hr/>";
$student1=new student(‘刘能‘,‘男‘);
$student1->intro();
$student2=new student(‘赵四‘,‘男‘);
$student2->intro();
echo"<hr/>";

 

面向对象与面向过程(代码片段)

#面向过程函数方式实现代码重用#面向对象不仅可以函数方式实现代码重用,还可以实现数据重用  查看详情

面向对象(代码片段)

面向对象含义Java的核心思想就是OOP(面向对象编程)OO:面向对象面向过程:线性思维面向对象:分类思维面向过程和面向对象不可分割,面向对象相当于一个框架,面向过程相当于具体执行流程抽象:把共性抽取出来抽"像&quo... 查看详情

面向对象概述(代码片段)

1.1面向对象思想1.1.1面向过程思想与面向对象思想A:什么是面向过程面向过程,其实就是面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然后由这些功能方法相互调用,完成需求。例如:吃煎饼果子利用面向过程的思... 查看详情

面向对象(代码片段)

结构化程序设计和面向对象程序设计的区别面向过程,以函数为中心吃(猪八戒,西瓜)面向对象,以对象为中心猪八戒.吃(西瓜)面向对象更接近自然语法。面向对象的基本特征(缺一不可)抽象封装继承多态JavaScript也使用... 查看详情

面向对象(代码片段)

一.函数式编程和面向对象的对比  面向过程:根据业务逻辑从上到下写垒代码  函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可  面向对象:对函数进行分类和封装,让开发“更快更好更强..... 查看详情

php面向对象(代码片段)

1.面向对象介绍     面向对象是一个编程思想。编程思想有面向过程和面向对象     面向过程:编程思路集中的是过程上     面向对象:编程思路集中在参与的对象2.面向对... 查看详情

go语言面向对象(代码片段)

面向对象基本概念面向对象思想面向对象(ObjectOriented,OO)是软件开发方法面向对象是一种对现实世界抽象的理解,是计算机编程技术发展到一定阶段后的产物ObjectOrientedProgramming-OOP——面向对象编程面向对象和面向过程区别面... 查看详情

面向对象简介(代码片段)

一、学习目标1.面向对象的技术语法2.面向对象的编程思想二、面向对象的概念OOP(Object-Programming,面向对象的编程)技术为编程人员敞开了一扇大门,使其编程的代码更简洁、更易于维护,并且具有更强的可重用性。三、OOP达到了... 查看详情

面向对象编程(代码片段)

面向对象编程文章目录面向对象编程两种编程方式类和对象的定义面向对象编程三步骤一、定义类二、造对象三、发消息案例静态方法、类方法面向对象解决实际问题魔术方法面向对象四大支柱继承多态对象之间的关系最终总结... 查看详情

python之面向对象(代码片段)

一、三大编程范式python是一门面向对象的编程语言。不同的编程样式有不同的风格,不同的风格有他不同的牛逼之处。三大编程范式:面向过程编程函数式编程面向对象编程二、面向对象设计与面向对象编程面向对象设计(Object... 查看详情

面向对象(oop)基本概念(代码片段)

面向对象编程--ObjectOrientedProgramming简称OOP目标了解面向对象基本概念0.1面向对象基本概念面向过程和面向对象,是两种不同的编程方式对比面向过程的特点,可以更好第了解什么是面向对象1.1过程和函数过程是早期的一个编程概... 查看详情

面向对象入门(代码片段)

  面向对象是软件开发方法。面向对象的概念和应用已经超越了程序设计和软件开发,电影《无间道》的拍摄就用了面向对象的思想。面向对象是一种对现实世界理解和抽象的方法。  那python中的面向对象是什么样的呢?什... 查看详情

javascriptjavascript面向对象(代码片段)

查看详情

phpmysqli面向对象(代码片段)

查看详情

初始面向对象(代码片段)

面向过程:一切以事务的发展流程为中心.面向对象:一切以对象为中心.一切皆为对象.具体的某一个事务就是对象打比方:大象进冰箱步骤:第一步,开门,第二步,装大象,第三步,关门面向对象:大象,你进冰箱.此时主语是大象.我操纵的... 查看详情

面向对象——面向对象进阶(代码片段)

一、isinstance与issubclass方法1、isinstance是用来判断对象是否是某个类  isinstance(obj,class)2、issubclass是用来判断一个类是否为另一个类的子类  issubclass(Bar,Foo)1classFoo:2pass345classBar(Foo):6pass789obj=Foo()10print(isinstance(obj,Foo) 查看详情

面向对象(代码片段)

面向对象标签(空格分隔):面向对象面向对象:类:任何事物归为一类,就是一系列相似特征与技能的结合体;强调:站在不同的角度得到的分类是不一样的;对象和类:在现实世界中:先有对象,后有总结出来的类在程序中... 查看详情

面向对象编程(上)(代码片段)

第四章面向对象编程(上)4.1面向对象(OOP)和面向过程(POP)4.2Java语言的基本元素:类和对象4.3对象的创建和使用4.1面向对象(OOP)和面向过程(POP)面向对象和面向过程二者都是一种思想,面向对象是相对于面向过程而... 查看详情