zoukankan      html  css  js  c++  java
  • java 面向对象

    一 面向对象

    1.面向对象思想

      面向过程的程序设计方式,是遇到一件事时,思考“我该怎么做”,然后一步步实现的过程。

      例如:公司打扫卫生(擦玻璃、扫地、拖地、倒垃圾等),按照面向过程的程序设计方式

    会思考“打扫卫生我该怎么做,然后一件件的完成”,最后把公司卫生打扫干净了。

      面向对象的程序设计方式,是遇到一件事时,思考“我该让谁来做”,然后那个“谁”就是对象

    ,他要怎么做这件事是他自己的事,反正最后一群对象合力能把事就好就行了。

      例如,公司打扫卫生(擦玻璃、扫地、拖地、倒垃圾等),按照面向对象的程序设计方式会思考

    “我该让谁来做,如小明擦玻璃、让小丽扫地、让小郭拖地、让小强倒垃圾等”,这里的“小明、小丽、小

    郭、小强”就是对象,他们要打扫卫生,怎么打扫是他们自己的事,反正最后一群对象合力把公司卫生

    打扫干净了。

    2.面向对象举例

    先使用面向过程说明买电脑这件事:

      假如我们需要买组装电脑,这时首先会在网上查询具体每一个硬件的参数和报价。然后会去电脑城

    进行多家询价,接着询价结束后回家根据具体的结果分析出自己比较满意的哪家报价,接着会到这家店

    里进行组装,组装时还需要进行现场监督,组装完成安装相应的系统,然后电脑抱回家。

      分析上述整个过程大体分一下几步:上网查询参数和报价、电脑城询价、现场安装和监督、抱电脑回家。在整个过程中我们参与了每一个细节,并且会感觉相当累。

     使用面向对象说明买电脑这件事:

      假如我们需要买组装机,这时应该找一个懂电脑硬件的人,让他帮

    我们查看参数和报价,并进行询价和杀价,以及现场组装监督。而我们自己并不需要亲历亲为具体怎么做

    ,只要告诉这个人我们想要的具体需求即可。

    3.面向对象思维的好处

    (1)面向对象思维方式是一种更符合人们思考习惯的思想

    (2)面向过程思维方式中更多的体现的是执行者(自己做事情),面向对象中更多的体现是指挥者(指挥对象做事情)。

    (3)面向对象思维方式将复杂的问题简单化。

    二 类与对象

    1.对象在需求中的使用

    需求:把大象装冰箱里

    对象:大象、冰箱

    分三步:

      1、打开冰箱门

      2、将大象装进去

      3、关闭冰箱门

    分析发现打开、装、关闭都是冰箱的功能。即冰箱对象具备如下功能:

      冰箱打开

      冰箱存储

      冰箱关闭

    用伪代码描述,上述需求中有两个具体的事物 大象  冰箱

    描述大象:

    class 大象

    {

    }

    描述冰箱

    class冰箱

    {

    void 打开(){}

    void 存储(大象){}

    void 关闭(){}

    }

    使用对象:

      1、创建冰箱的对象

      冰箱 bx = new 冰箱();  

      2、调用冰箱的功能

        对象.功能();

        bx.打开();

        bx.存储(new 大象());

        bx.关闭();

    2.对象的内存图解

     4.类和对象的区别

         面向对象的思想中提出两个概念,即类和对象。其中,类是对某一类事物的抽象描述,而对象用于表示

    现实中该类事物的个体。

    5.局部变量和成员变量的区别

    区别一:定义的位置不同

      定义在类中的变量是成员变量

      定义在方法中或者{}语句里面的变量是局部变量

    区别二:在内存中的位置不同

      成员变量存储在堆内存的对象中

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

    区别三:生命周期不同

      成员变量随着对象的出现而出现在堆中,随着对象的消失而从堆中消失(gc垃圾回收机制)

      局部变量随着方法的运行而出现在栈中,随着方法的弹栈而消失

    区别四:初始化不同

      成员变量因为在堆内存中,所有默认的初始化值

      局部变量没有默认的初始化值,必须手动的给其赋值才可以使用。

    6.基本数据类型和引用数据类型作为参数传递

    基本数据类型:

     

     引用数据类型:

    人生如逆旅,我亦是行人

  • 相关阅读:
    nginx 配置优化(简单)
    Nginx 安装
    Smokeping安装教程
    test [ ] 四类
    if语句中的判断条件(nginx)
    力扣 1431. 拥有最多糖果的孩子 python
    力扣 1672. 最富有客户的资产总量+1512. 好数对的数目 python
    力扣 剑指 Offer 58
    力扣 8. 字符串转换整数 (atoi)python--每日一题
    力扣 7. 整数反转python 每日一题
  • 原文地址:https://www.cnblogs.com/jiejava/p/13230610.html
Copyright © 2011-2022 走看看