美文网首页
面向对象

面向对象

作者: hjk | 来源:发表于2019-04-19 15:02 被阅读0次

    局部变量

    形式参数,方法体变量,代码块变量

    • 栈:局部变量的存储
    • 堆:对象的存储,对象的垃圾回收由虚拟机来控制。我们不能控制,我们只能通过引用去使用对象。

    成员变量

    成员变量:类变量和实例变量。类变量可以由类和实例调用,但是不建议使用实例来调用,实例变量属于对象,只能用对象来调用

    实例变量和类变量的区别?

    1. 生命周期间不同。

    static

    • 本质上定义了变量和方法属于类还是对象,static修饰的变量和方法存放在一个特定的内存区域(方法区)(共享数据区)jdk1.8实际已经改变,独立于对象存在,这样可以节约空间,还所以可以实现线程共享。
    • 修饰的成员优于对象存在,因为static的成员随着类加载就已经存在了。所以static不可以访问非静态变量,应为此时对象甚至都没有产生。
    • 使用方法:类名.静态成员
    • static存储的数据是共享数据,对象中存储的是特有数据

    this

    最大的作用就是让类中一个方法,访问该类里的另一个方法或 Field。

    public class Dog{
      public void jump(){
             ......
    }
      public void run(){
      this.jump();
    }
    

    this可以省略。即便是省略,也是一种假象。对于 static 修饰的方法而言,则可以使用类来直接调用该方法,如果在 static 修饰的方法中使用 this关键字,则这个关键字就无法指向合适的对象。所以,static 修饰的方法中不能使用 this 引用。由于 static修饰的方法不能使用 this 引用,所以 static 修饰的方法不能访问不使用 static 修饰的普通成员,因此 Java语法规定:静态成员不能直接访问非静态成员。

    方法

    Java就没有函数一说,方法不能独立存在,只能属于一个类或者一个对象。

    相关文章

      网友评论

          本文标题:面向对象

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