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

    一、成员变量和局部变量的区别:
    1. 在类中的位置不同
    a. 成员变量:在类中方法外
    b. 局部变量:在方法定义中或者方法声明上
    2. 在内存中的位置不同
    a. 成员变量:在堆内存(成员变量属于对象,对象进堆内存)
    b. 局部变量:在栈内存(局部变量属于方法,方法进栈内存)
    ※ 由于内存中的位置不同,所以成员变量和局部变量可以重名。
    3. 生命周期不同:
    a. 成员变量:随着对象的创建而存在,随着对象的消失而消失
    b. 局部变量:对着方法的调用而存在,对着方法的调用完毕而消失
    4. 初始化值不同:
    a. 成员变量:有默认初始化值
    b. 局部变量:没有默认初始化值,必须定义、赋值,然后才能使用。
    注意事项:
    • 局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。
    • 基本数据类型变量包括:byte/short/int/long/float/double/boolean/char
    • 引用数据类型变量包括:数组、类、接口、枚举。

    二、匿名对象的概述和应用
    1. 匿名对象:没有名字的对象
    2. 匿名对象的应用场景:
    a. 调用方法,仅仅只调用一次的时候
    i. 这样做的好处是为了节省代码
    ※ 注意:调用多次的时候不合适,匿名对象调用完毕就变成垃圾,可以被垃圾回收器不定时回收。
    b. 匿名对象可以作为实际参数传递。eg:method(new car());
    匿名对象可以调用属性,但是调用完后没有任何对象指向它,所以没有任何意义。

    三、封装
    1. 封装:是指隐藏对象的属性和实现细节,仅对外提供公共的访问方式。
    2. 封装的好处:
    a. 隐藏实现细节,提供公共的访问方式。
    b. 提高代码的复用性
    c. 提高安全性
    3. 封装的原则:
    a. 将不需要对外提供的内容都隐藏起来。
    b. 把属性隐藏,提供公共的方法对其访问。

  • 相关阅读:
    递归算法
    抽象类(abstract class)和接口(interface)
    静态变量和实例变量
    java 工厂化生产
    win10安装使用ffmpeg+python中使用ffmpy
    C++ Concurrency in Action 读书笔记三:并发操作的同步
    C++ Concurrency in Action 读书笔记二:用mutex互斥锁保护在线程间共享的数据
    C++ Concurrency in Action 读书笔记一:thread的管理
    C++正则表达式 <regex>
    CMake使用Boost
  • 原文地址:https://www.cnblogs.com/snail0404/p/10409682.html
Copyright © 2011-2022 走看看