美文网首页
详述面向对象(2)

详述面向对象(2)

作者: Java中最亮的BUG | 来源:发表于2018-02-10 21:31 被阅读0次

    1. 代码:Student s = new Student(); 做了哪些事情?

    (1)把Student.class文件加载到内存

    (2)在栈内存s开辟空间

    (3)在堆内存为学生对象申请空间

    (4)给学生的成员变量进行默认初始化。null,0

    (5)给学生的成员变量进行显示初始化。林青霞,27

    (6)通过构造方法给成员变量进行初始化。张艺兴,30

    (7)对象构造完毕,把地址赋值给s变量

    2. static关键字

    (1)静态的意思。可以修饰成员变量和成员方法。

    (2)静态的特点:

      A: 随着类的加载而加载

      B: 优先与对象存在

      C: 被类的所有对象共享

        这其实是我们判断该不该使用静态的依据。

        举例: 饮水机和水杯的问题思考

      D: 可以通过类名调用

        既可以通过对象名调用,也可以通过类名调用,建议通过类名调用。

    (3)静态内存图

      静态的内容在方法区的静态区

    (4)静态的注意事项

      A: 在静态方法中没有this对象

      B: 静态只能访问静态

    (5)静态变量和成员变量的区别

      A: 所属不同

        静态变量: 属于类,类变量

        成员变量: 属于对象,对象变量,实例变量

      B: 内存位置不同

        静态变量: 方法区和静态区

        成员变量: 堆内存

      C: 生命周期不同

        静态变量: 静态变量是随着类的加载而加载,随着类的消失而消失

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

      D: 调用不同

        静态变量: 可以通过对象名调用,也可以通过类名调用

        成员变量: 只能通过对象名调用

    (5) main方法是静态的

      public: 权限最大

      static: 不用创建对象调用

      void: 返回值给jvm没有意义

      main: 就是一个常见的名称

      string[] args: 可以接受数据,提供程序的灵活性

        格式: java MainDemo hello world java

    相关文章

      网友评论

          本文标题:详述面向对象(2)

          本文链接:https://www.haomeiwen.com/subject/tfphtftx.html