面向对象(1)-------类与对象

讨论面向对象之前,首先要想一下什么是面向过程

<1>面向过程概述

    其实就是面向具体的每一个步骤和过程,把每一个步骤和过程完成,然后有这些功能方法相互调用,完成功能

    代表语言:c语言

<2>面向对象概述

     面向对象是基于面向过程的编程思想,其强调的是对象,有对象调用功能 。

     特点:

            A:是一种更符合我们习惯的思想

            B:可以将复杂的事情简单化

            C:将我们从执行者变成指挥者

<3>类与对象概述

     java的最基本的单位是类,类是用来描述现实事物的

    类:是一组相关属性的集合      学生

    对象:是该事物的具体体现      班长

<4>类

定义:是用来描述现实世界的事物的

事物两种体现:

                     A:属性     事物的描述信息

                     B:行为     事物能够做什么

类与事物如何对应呢?

      A:成员变量体现属性

      B:成员方法体现行为

<5>类的使用

   格式    类名    对象名   =    new    类名(……);

   对象如何调用成员呢(成员包括成员变量和成员函数)

      成员变量:对象名.变量名

      成员方法:对象名.方法名(……);

<6>对象内存图

  (1)一个对象内存图

         

     (2)方法共用内存图

   

(3)两个引用指向同一个对象

<7>成员变量和局部变量的区别

       A:在类中的位置不同

              成员变量:类中,方法外

               局部变量:方法中,或方法声明上(形式参数)

     B:在内存中位置不同

          成员变量:在堆内存

          局部变量:在栈内存

     C:生命周期不同

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

          局部变量:随着方法的调用而创建,方法调用完毕而消失

    D:初始化值不同

          成员变量:有默认值

         局部变量:无默认值,必须定义,赋值,最后使用

<8>private关键字及使用

      private关键字:是一个修饰符,可以修饰成员变量,也可以修饰成员方法,只能在类中使用

      针对private修饰的成员变量,我们会相应的给出getXXX()和setXXX(),用于获取和设置成员变量,getXXX()和setXXX()用public修饰

<9>封装的概述及好处

    (1)概述

                 A:面向对象三大特征之一

                        面向对象三大特征:封装,继承,多态

                 B:是面向对象编程语言堆客观世界的模拟,客观世界里成员变量都是隐藏在对象内部,外界无法修改

    (2):原则

                A:将不需要对外提供的内容隐藏起来

                B:把属性隐藏,提供公共方法供其访问

    (3)好处

              A:提高代码安全性

              B:提高代码复用性

<10>this关键字及使用

       如果有局部变量名和成员变量名相同,在使用的时候,采用就近原则,就是将变量赋值给本身(局部变量),而不是赋值给成员变量

       如何解决?

                   用this关键字

      this关键字代表所在类对象的引用

        可以看成,当前类定义的对象为this,用this访问成员变量

   <11>构造方法

           (1)作用:给对象的数据进行初始化

           (2)格式:方法名与类名相同

                               没有返回值类型,连void都不写

                               没有具体的返回值

          (3)调用:通过new关键字调用

                        格式:类名    对象名   =   new    构造方法(……);

          (4)注意:

                           A:如果没有构造方法,系统将会提供一个默认无参构造方法

                          B:如果我们提供了构造方法,系统将不会提供一个默认无参构造方法,若想用无参构造方法,我们需自己写无参构造

                         C:构造方法也是可以重载的

         (5)成员变量赋值:

                                        A:setXXX(……)方法

                                        B:带参构造方法

            注意:若返回值类型是类名,则返回的是该类对象

猜你喜欢

转载自blog.csdn.net/hss950910/article/details/81270022