• 类和引用内存分析和封装


    一、面向对象——找人帮自己办事(自己省事),面向过程——事情都亲力亲为;

    概念:

     

     二、类

    使用对象:导包、创建、使用(点属性/点方法)

    引用类型的初始值都是null;

    三、内存分析

    首先是方法区,方法区存储的是.class数据信息(成员变量、成员方法、main方法..);

    方法压栈执行,方法里的对象名相当于变量名,方法中的变量是局部变量;

    new出来的对象都堆内存中,除了基本数据类型(对象名保存的是地址值和对象内容信息都在占内存中,可以直接 =),引用数据类型的对象名 = 运算时候用的是栈内存中的对象名存储的是地址值,指向堆内存中这个对象的地址值;

    1、调用对象内存图:

    栈内存中变量名称保存的是堆内存中该对象的地址值; 

    方法调用执行结束,立刻从栈内存中消失,立即弹出,出栈,下面的方法重见天日,永远是只执行栈内存的压在最上面的方法;堆内存中创建的对象保存的成员方法的信息是方法区该方法的地址值;

    2、phone1和phone2两个对象内存图:

    3、两个对象引用指向同一对象:

     4、对象作为方法参数传递:

     5、对象类型作为方法的返回值

     三、成员变量和局部变量

    1、区别

    垃圾回收是jvm工作,不是程序控制;

    局部变量不赋初始值不能用:

     四、封装

    1、方法封装

    2、关键字private

    成员变量默认是public,被调用时候可以直接 点.成员变量 = 赋值,

    设置为private的成员变量,要添加getXxx和setXxx方法,供外界赋值和获取值,可以在get/set方法体中控制外界调用时候设置值合理不合理处理;

    3、private修饰的成员变量,的getXxx方法特例:

    boolean类型的成员变量get方法是 isXxx();

     

     4、this关键字

    五、构造方法——创建对象的方法

     六、定义一个标准的对象类

  • 相关阅读:
    HDU 4034 Graph:反向floyd
    POJ 2728 Desert King:最优比率生成树
    求树的最大独立集,最小点覆盖,最小支配集 贪心and树形dp
    AtCoder ARC061E Snuke's Subway Trip 最短路
    hdu4126_hdu4756_求最小生成树的最佳替换边_Kruskal and Prim
    洛谷 P2633 Count on a tree
    POJ3241 最小曼哈顿距离生成树
    HDU6315 Naive Operations 线段树
    ACM-ICPC 2018 沈阳赛区网络预赛-B,F,G
    LCA
  • 原文地址:https://www.cnblogs.com/wmqiang/p/11247485.html
Copyright © 2020-2023  润新知