zoukankan      html  css  js  c++  java
  • Java笔记(十)……面向对象II封装(Encapsulation)

    封装概念

    封装:

    是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

    好处:

      • 将变化隔离。
      • 便于使用。
      • 提高重用性。
      • 提高安全性。

    封装原则:

      • 将不需要对外提供的内容都隐藏起来。
      • 把属性都隐藏,提供公共方法对其访问。

    private(私有)关键字

    private关键字:

      • 是一个权限修饰符。
      • 用于修饰成员(成员变量和成员函数)
      • 被私有化的成员只在本类中有效

    常用之一:

    将成员变量私有化,对外提供对应的set ,get方法对其进行访问。提高对数据访问的安全性。

    构造函数

    特点:

      • 函数名与类名相同
      • 不用定义返回值类型
      • 不可以写return语句

    作用:

    给对象进行初始化。

    注意:

      • 默认构造函数的特点(权限与类相同)。
      • 多个构造函数是以重载的形式存在的。
      • 只运行一次。

    构造函数可以被private关键字修饰,当所有构造函数被私有时,此类不能创建实例对象

    构造代码块

    特点:

      • 为对象初始化
      • 建立对象时即运行,优先于构造函数

    与构造函数的区别:

      • 构造代码块为所有对象初始化
      • 构造函数为对应对象初始化

    this关键字

    特点:

    this代表其所在函数所属对象的引用。

    换言之:

    this代本类对象的引用。

    什么时候使用this关键字

    当在函数内需要用到调用该函数的对象时,就用this

    this语句

    this();

    只能放在构造函数第一行,因为初始化动作要先执行

    一般函数不能调用构造函数,this()不允许出现在一般函数中

    static(静态)关键字

    static关键字:

    用于修饰成员(成员变量和成员函数)

    被修饰后的成员具备以下特点:

      • 随着类的加载而加载
      • 优先于对象存在
      • 被所有对象所共享
      • 可以直接被类名调用

    实例变量和类变量的区别

    存放位置

    1. 类变量随着类的加载存放于方法区中
    2. 实例变量随着对象的建立存放在堆中

    生存周期

    1. 类变量生存周期最长,随着类的消失而消失
    2. 实例变量随着对象的消失而消失

    使用注意

      • 静态方法只能访问静态成员

        • 非静态方法既可以访问静态成员,也可以访问非静态成员
      • 静态方法中不可以写this,super关键字
        • 因为静态优先于对象存在,所以静态中不可以出现this,super
      • 主函数是静态的

    静态利弊

      1. 好处:

        1. 对对象的共享数据进行单独空间的存储,节省空间
        2. 可以直接被类名调用
      2. 弊端:
        1. 生命周期过长
        2. 访问出现局限性

    何时定义

    何时定义静态变量

    对象中有共享数据时(即属性值相同)

    何时定义静态方法

    此方法不访问对象的特有数据时

    静态应用

    工具类

    • 构造函数需私有化
    • 函数被静态修饰提供给外界使用
    • 例如:util包中的Arrays工具类
  • 相关阅读:
    web性能优化
    9.1_the end
    8.28_the end
    1.获取元素绝对位置
    8.14_end
    JavaScript 函数用途
    JavaScirpt事件处理
    《JavaScript语言精粹》读书笔记
    《图解http协议》之HTTPs学习笔记
    Laya 1.x 按文件夹TS代码合并
  • 原文地址:https://www.cnblogs.com/ShawnWithSmallEyes/p/3373825.html
Copyright © 2011-2022 走看看