什么时面向对象?
由于现实社会是由各种各样的事物所组成的,而我们编程又是在模拟现实社会,那么在程序也要用一些东西来表示现实社会中的事物,这些东西就是程序中的对象。我们在程序中使用这些对象,对其特征和行为进行操作进行编程,这就是面向对象编程。
面向对象编程的优点
提高代码复用性。
使用者无需关心具体细节。
转变程序员角色,更加符合人的思维习惯。
什么是类
类是用来描述对象的。由于对象是虚拟出来的东西,是看不见摸不着的,我们需要在程序中使用对象,就需要用一种方式来描述对象,然后根据这个描述来创建对象。
类和对象的关系
对象是类的实例,类是对象的描述。
对象的创建
用new 关键字和对象名来创建对象
例:person p = new person( );
这句话先在堆内存中创建了一个对象,然后栈内存中创建一个变量引用了对象的地址。
匿名对象
匿名对象就是没有名字的对象,是对象的简写格式
Car c2= new Car( );
c2.run( );
简写:new Car( ).r un ( );
当对象对方法进行一次调用的时候,可以使用匿名对象来简化。当对对象的成员进行多次调用时,必须起名。
Car car=new Car( );
成员变量和局部变量的区别
1.定义的位置不同。
成员变量定义在类,作用于整个类
局部变量定义函数,作用于整个函数,或者定义在语句,作用于语句内。
2.内存出现的时间和位置不同
成员变量:当对象创建时,出现在堆内存的对象当中
局部变量:随着所区间运算结束,立刻被释放。
3.生命周期不同
成员变量:随着对象的出现而出现,随着对象的消失而消失。
局部变量:随着所属区间运算结束,立刻被释放。
4.初始化值
成员变量:因为在堆内存中,都有默认初始化值。
局部变量:没有初始化值
成员变量的初始化
当一个对象被创建时,会对其中各种类型的成员变量自动进行初始化赋值。基本数据类型初始化值为0,引用数据类型初始化值为null。
对象的生命周期
对象的生命周期从new关键字创建时开始,到没有任何引用到达对象时结束(成为垃圾)。