面向对象 - 了解面向对象

返回目录

面向过程与面向对象的区别

    • 面向过程:面向过程是按步骤实现,并将步骤对应成方法,一步一步最终完成,适合简单任务,不需要过多协作的情况,例如“如何开车”:1.系安全带 2.启动发动机 3.挂挡 4.踩油门 5.走。
    • 面向对象:面向对象是先思考“如何设计这个事物”,先规划好大的框架,再完善框架内的东西,例如“如何造车?”:1.车架 2.发动机 3.座椅 4.挡风玻璃 5.轮胎 6.内饰。更适用于协作完成大型工程。
    • 相辅相成:面向过程和面向对象是相辅相成的,都是解决问题的思维方式,也都是代码组织的方式,宏观上使用面向对象把握大局,细微处理仍然是面向过程。例如造车,每一个车的部件都是一个对象,将这些对象拼装在一起就造成了一台车,但这些对象(部件)需要详细的制作流程,这些制作流程就是面向过程。

数据管理与企业管理共通之处

    • 数据无管理:当数据量非常少,例如只有几个、十几个变量的时候,非常简单无需细致的管理;就像企业初期只有2、3个人,不需要很细致的管理模式,闷头做事就行了。
    • 数组管理:当数据量较大时,可以使用数组等方式分类管理,否则会很乱;就像一些中小公司部门制,会计部、销售部、技术部等。
    • 对象管理:当数据量特别大的时候,就需要使用对象来进行管理;就像大型企业,按项目来管理,例如支付宝项目组、淘宝项目组,这些项目组在细分为技术部门、宣传部门、会计部门等。

对象和类的概念

    • 对象(Object):对象也可以叫实例(instance)、对象是具体的事物会在内存中生成。
    • 类(Class):类是对对象的抽象,类是一种抽象的数据类型,类是对象的模板,系统根据类的定义生成对象;例如造车:类就是图纸,对象就是车,类中的步骤信息就是语句/方法,根据类中的语句/方法,将对象造出来。
      抽象指的是:抽出像的部分,从具体事物抽出、概括出它们共同的方面、本质属性与关系等,而将个别的、非本质的方面、属性与关系舍弃;例如人怎么知道眼前的物体是辆车?1.见过被定义为车的物体 2.找出共同点(车架、车窗、轮子等特征) 3.见到一个物体识别特征,如果有车的特征那么这就是一辆车

      // 类的定义方式
      public class Test{ //每个源文件必须且只能有一个public类,并且类名与文件名保持一致
        public static void main(String[] args){ //main方法,程序入口,必须有
          test3 t = new test3(); //通过test3类创建test3对象
          t.testFF(); //调用test3类中的testFF方法
        }
      }
      // 一个java文件可以定义多个类(class)
      class test1{
      }
      class test2{
      }
      class test3{
        int a = 1; //一个类可以包含属性(成员变量)
        void testFF(){ //也可以包含一个方法或多个方法
          System.out.println("我是一个方法");
        }
        void testFF2(){
          System.out.println("我是方法2");
        }
      }

 

对象创建的步骤详解

    • 创建对象:构造方法是创建对象的重要途径,通过new关键字调用构造器时,构造器也确实返回该类的对象,但这个对象并不是完全由构造器负责创建。创建一个对象分为如下四步:
      • 分配对象空间,并将对象成员变量初始化为默认值(布尔值是false、数值是0、引用类型为空)
      • 执行属性值的显式初始化
      • 执行构造方法(至此对象已创建,进行更进一步的初始化工作)
      • 返回对象的地址给相关的变量