面向对象(特点)、局部变量与全局变量的区别、匿名对象、构造函数、

一、
    1,本文档为记录练习面向对象学习的文档。

    2: 面向对象的三大特点: 1)、封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式,
               优点:1、隔离了变化。 2、便于使用,提高了复用性。 3、提高了安全性。
               原则:1、把不必要对外显示的都隐藏掉。 2、对外提供必要的公共方法作为操作接口。
                    (私有是封装的一种表现形式)。

                                       2)、继承:

                                       3)、多态: 必须有 继承 、动态方法的重写 、父类引用指向子类的对象。

     3:面向对象的开发就是在寻找对象使用, 在没有对象使用的情况下, 我们应当自己创造对象使用。
          也可以说是: 找对象 建立对象 使用对象 维护对象之间的关系。

二、对象与类之间的关系

       类: 现实生活中对事物的描述。

   对象: 这一类事物的实实在在的个体。

    生活中有有一类个体:他们都会拿枪、射击、穿迷彩服、越野、杀敌等功能。------这就是一个军人的类。 类有属性(成员变量)和方法(动态属性)。
    而具体到个体: 士兵1号、士兵2号、士兵3号等 就是这个类中的具体实体-----这就是一些士兵的对象。

  而映射到java中 ,这些描述就是class定义的一个类
  具体的对象, 就是new关键字在堆(heap)中创建的实体。

三 成员变量 与 局部变量
  作用范围: 成员变量 作用于整个类的内部
       局部变量 作用于方法或者语句块之中

  内存中的位置 :   成员变量 存在于堆内存中,因为对象的存在而存在。 会先有系统的默认初始化(0 null), 之后才是我们定义个显示初始化。
          在没有引用指向其对象的时候(及变成垃圾对象),被垃圾回收机回收后消失。
          局部变量 存在于栈内存中,因为语句的执行而存在。 必须人工给予初始化,否则次变量不能使用。相关语句执行完毕后自动消失。

四、 匿名对象

  如: new Car(); new Car().color = "blue"; new Car().runCar();

    特点:只能使用一次, 使用之后便会变成垃圾, 等垃圾回收机回收清空内存。
       匿名对象调用其属性没有意义, 调用其方法具有一定的意义。

    使用情况:1)、只对对象的 方法 进行 一次调用 的时候。 这样写比较简便。 如果要对对象的多个成员进行调用,就必须给对象命名。
           2)、可以将匿名对象当成参数紧传递。

构造函数:

    特点:函数名与类名一致, 不能定义返回值类型, 不能使用return语句。 对象建立时就会调用与之实参相对应的构造函数。
       构造函数只在构造是调用一次,之后不能重复调用, 而普通函数可以一直调用。
    作用:给对象进行初始化(在默认初始化和显示初始化之后)。
    注意:1、当没有写构造函数时,系统会自动给加上一个空参、空语句的构造函数, 否则,对象不能被构造出来。
         2、当自定义了构造函数时,在new新对象时就必须按照相对应的形参进行创建。
         3、当有多个构造函数存在时,它们以重载的方式存在, 通过new对象时传入的参数(实参)的不同来调用相应的构造函数。

                 在一个构造函数中可以调用(转到)另一个构造函数。

原文地址:https://www.cnblogs.com/soficircle/p/6602214.html