面向对象——概念(成员变量、静态变量、成员方法、静态方法、垃圾回收机制、重载、包)
静态变量和成员变量的区别:
1、成员变量描述的是对象的特征,包含在对象之中。不同的对象成员变量彼此独立。一个对象成员变量的改变,不会影响其他对象。
静态变量独立在对象之外,是所有对象共享的变量。静态变量改变后会影响所有对象。
2、成员变量只能通过对象.的方式访问。而静态变量,可以通过对象.的方式访问,也可以通过类名.的方式访问。所以静态变量也称为类变量
3、成员变量存放在堆空间中,静态变量存放在数据段中。
静态方法和成员方法的区别:
1、静态方法加载时机在对象之前,可以通过对象.和类名.的方式访问。而成员方法只能通过对象.的方式访问。
2、静态方法不能直接访问成员变量和成员方法。成员方法可以访问成员变量和静态变量
垃圾回收机制:
虚拟机进行垃圾回收时,回收的是没有被变量指向的对象。该过程程序员无法控制。但是可以通过调用System.gc(),加快垃圾回收的速度。
变量按作用域分,分为三种:
1、局部变量,存放在栈空间中,书写在方法或语句块中。语句块一结束,变量空间马上释放。所以,局部变量不能跨方法或语句块使用。
2、成员变量(属性):存放在堆中,书写在方法外,类中。随对象产生而产生,随对象销毁而消失。
3、静态变量(类变量):存放在数据段中,书写在方法外,类中。加上static修饰符。常驻内存,不会消失。
重载概念:
重载发生在同一个类中,两个方法的方法名相同,参数列表不同(参数类型、参数个数参数位置),和返回类型无关。调用方法时。根据方法的参数来决定执行哪个方法。
包:
就是文件夹,通过package定义该类所在的包。
包的作用:
1.可以组织相关的类
2.可以做到信息隐藏。即去掉public后,类不能被其他包调用
如果一个包中的类,要想访问别的包中的类,可以通过import,导入该类。下面两种包中的类无需导入可以直接使用。
1.本包中的类
2.、java.lang包中的类