面向对象——概念(成员变量、静态变量、成员方法、静态方法、垃圾回收机制、重载、包)

静态变量和成员变量的区别:

    1、成员变量描述的是对象的特征,包含在对象之中。不同的对象成员变量彼此独立。一个对象成员变量的改变,不会影响其他对象。

        静态变量独立在对象之外,是所有对象共享的变量。静态变量改变后会影响所有对象。

    2、成员变量只能通过对象.的方式访问。而静态变量,可以通过对象.的方式访问,也可以通过类名.的方式访问。所以静态变量也称为类变量

    3、成员变量存放在堆空间中,静态变量存放在数据段中。

 

静态方法和成员方法的区别:

 

    1、静态方法加载时机在对象之前,可以通过对象.和类名.的方式访问。而成员方法只能通过对象.的方式访问。

 

    2、静态方法不能直接访问成员变量和成员方法。成员方法可以访问成员变量和静态变量

垃圾回收机制:

  虚拟机进行垃圾回收时,回收的是没有被变量指向的对象。该过程程序员无法控制。但是可以通过调用System.gc(),加快垃圾回收的速度。

 

变量按作用域分,分为三种:

 

      1、局部变量,存放在栈空间中,书写在方法或语句块中。语句块一结束,变量空间马上释放。所以,局部变量不能跨方法或语句块使用。

 

      2、成员变量(属性):存放在堆中,书写在方法外,类中。随对象产生而产生,随对象销毁而消失。

 

      3、静态变量(类变量):存放在数据段中,书写在方法外,类中。加上static修饰符。常驻内存,不会消失。

 

重载概念:

      重载发生在同一个类中,两个方法的方法名相同,参数列表不同(参数类型、参数个数参数位置),和返回类型无关。调用方法时。根据方法的参数来决定执行哪个方法。

包:

   就是文件夹,通过package定义该类所在的包。

包的作用:

     1.可以组织相关的类

     2.可以做到信息隐藏。即去掉public后,类不能被其他包调用

  如果一个包中的类,要想访问别的包中的类,可以通过import,导入该类。下面两种包中的类无需导入可以直接使用。

       1.本包中的类

       2.java.lang包中的类

 

 

 

 

原文地址:https://www.cnblogs.com/jichuang/p/6536656.html