04、面向对象

1、面向对象概念:

   *面向对象是相对面向过程而言

   *面向对象和面向过程都是一种思想

   *面向过程强调的是功能行为

   *面向对象将功能封装进对象,强调具备了功能的对象。

   *面向对象是基于面向过程的

2、面向对象和面向过程的区别:

  *举例:

    把大象装进冰箱;

      面向过程:

        **打开冰箱;

        **存储大象:

        **关上冰箱。

        对于面向过程思想,强调的是过程(动作)。

          如C语言

      面向对象:

        **冰箱打开

        **冰箱存储

        **冰箱关闭

           如C++  Java  C#

           对于面向对象思想,强调的是对象(实体)。

3、特点:

  *面向对象就是一种常见的思想。符合人们的思考习惯

  *面向对象的出现,将复杂的问题简单化

  *面向对象的出现,让曾经在过程中的执行者,变成了对象中的指挥者。

  *有对象用对象,没对象造对象用对象,维护对象之间的关系

 

    面向对象的特征:

    封装(encapsulation)

    继承(inheritance)

    多态

 

  完成需求时:

    先要去找具有所需的功能的对象来用。

    如果该对象不存在,那么创建一个具有所需功能的对象。

    这样简化开发并提高复用。

 

  开发的过程:其实就是不断的创建对象,使用对象,指挥对象做事情。

  设计的过程:其实就是在管理和维护对象之间的关系。

 

  构造代码块

     作用:给对象进行初始化。

     对象一建立就运行,而且还优先于构造函数执行。

     构造代码块和构造函数的区别:

          构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象进行初始化

   

  构造代码块中定义的是不同的对象共性的初始化内容。

4、类与对象

  (1)类:用java语言对现实生活中的事物进行描述。

      通过类的形式来体现。

      怎样描述?

        对于事物描述通常只关注两个方面

        一个是属性,一个行为

        只要明确该事物的属性和行为,并定义在类中即可。

    对象:其实就是该类事物实实在在存在的个体。

 

  (2)类与对象之间的关系?

    类:事物的描述

    对象:该类事物的实例。在java中通过new来创建。

 

    类类型引用变量,指向了该类对象。

    定义类就是定义类的成员:

    成员:成员变量-->属性

        成员函数-->行为。

         对于同一类事物可以抽取它们的共性的内容,定义在类中。

       可以理解为:

        类就是图纸

        汽车就是堆内存中的对象

 
 

  代码示例:

class Car{//对Car这类事物进行描述

    String color = "red";

    int num = 4;

    void show(){

        System.out.println("color="+color+"..num="+num);

    }

}

class CarDemo{

    public static void main(String[] args){

        Car c = new Car();//建立对象

        c.color = "black";//对对象的属性进行修改

        c.show();//使用对象的功能。

    }

}

  

  (3)成员变量和局部变量的区别:

    *成员变量定义在类中,整个类中都可以访问。

     局部变量定义在函数、语句、局部代码块中,只在所属的区域有效。

    *成员变量存在于堆内存的对象中。

     局部变量存在于栈内存的方法中。

    *成员变量随着对象的创建而存在,随着对象的消失而消失

     局部变量随着所属区域的执行存在,随着所属区域的结束而释放。

    *成员变量都有默认初始值

     局部变量没有默认初始值。

 

 (4)匿名对象。没有名字的对象。

    new Car();匿名对象。其实就是定义对象的简写形式

    *当对象对方法仅进行一次调用的时候,就可以简化成匿名对象。

    *匿名对象可以作为实际参数进行传递。

 

原文地址:https://www.cnblogs.com/zyh-blog/p/3162334.html