面向对象和面向过程
面向对象是一种以事物为中心的编程思想。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为,面向对象是将事物高度抽象化。面向过程是一种以过程为中心的编程思想。面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候依次调用即可,面向过程强调的是工作的执行。 面向对象是相对于面向过程而言,站在面向对象的角度去看问题,你是对象的动作的指挥者;站在面向过程的角度去看问题,你是动作的执行者。
对象和类
对象是类的一个实例;对象主要通过new关键字,newInstance()方法,clone()方法,工厂方法和反序列化方法创建;对象根据需要创建可创建多次;对象在创建时分配内存。
类是创建对象的蓝图或模板;只能根据class关键字来定义类;类只声明一次;类的创建不需要分配内存。
成员变量和局部变量
成员变量:成员变量定义在类中,在整个类中都可以被访问;成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中;成员变量有默认初始化值。
局部变量:局部变量定义在局部范围内,如:函数内,语句内等,只在所属的区域有效;局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放;局部变量没有默认初始化值
若成员变量没有设置属性值,成员方法中同名局部变量也没有定义变量类型,那么该局部变量其实就是成员变量。
匿名对象
没有引用类型变量指向的对象称作为匿名对象,所以不会给匿名对象赋予属性值,因为永远无法获取到,并且两个匿名对象永远都不可能是同一个对象。
匿名对象好处:1、简化书写 2、节省内存
匿名对象的应用场景:1、如果一个对象需要调用一个方法,调用完这个方法之后,该对象就不再使用了,这时候可以使用匿名对象。执行完毕后该对象就变成垃圾,可以被GC回收 2、可以作为实参调用一个方法。