Java学习之路---对象篇(Object)

什么是对象?

Java是一种面向对象的语言,那么什么是对象呢?我们将问题空间中的元素及其在解空间中的表示称之为“对象”。
“万物皆对象”:将对象视为一个变量,可以用来存储数据,也可以要求他进行一系列的操作。可以抽取问题的任何概念化构建,将其表示为程序中的对象。
Booch对对象提出了一个简洁的描述:对象具有状态、行为和标识。这表示每个对象可以拥有其内部数据(对象的状态,比如一个类(人),具有身高、性别等数据)以及特有的方法(对象产生的行为,比如吃饭、睡觉等行为)

对象的创建和生命周期

创建对象

方式一

通过将对象置于堆栈(RAM)(自动变量(auto)或限域变量(scope))或静态存储区域内实现。这种方式将存储空间的分配和释放置于优先考虑的位置。反而失去了灵活性。如果试图解决一些没有确切数量和生命周期和类型的问题,那么这种方式就显得过于受限了。

方式二

堆(heap)的内存池中动态的创建对象(RAM)。存储空间在运行时是被动态管理的,如果需要一个新的对象,那么可以在需要的时刻直接在堆内存中创建,此时大大提高了程序的灵活性,但是相应的需要的存储空间和时间成本会大大的增加。
类描述了具有相同特性(数据元素)和行为(功能、方法)的对象的集合,一个类实际上就是一个数据类型。一旦创建一个类,那么就可以根据这个类来创建任意多个对象,再通过对象去操作其特性和行为。
例:有一个类名为 Light,Light中具有行为Open()、off(),具有属性 name;
利用这个类创建对象:Light lt=new Light();
此时lt就是一个对象名。可以通过对象名调用其属性和方法:lt.Open(),lt.name;

对象的生命周期

垃圾回收机制

在堆栈中创建的对象,编译器可以确定对象存活的时间,并且可以直接自动的销毁它。但是,如果是在堆内存上动态的创建的对象,编译器不确定它的生命周期,从而无法自动地去销毁他,此时就需要“垃圾回收器”机制(处理内存释放问题),它能自动的发现对象什么时候不再被使用,继而直接销毁它。垃圾回收器减少了所必须考虑的议题和必须编写的代码,它提供了更高层的保障,可以避免暗藏的“内存泄露”问题

对象的作用域

对象的作用域同变量的作用域相同,如果在某个区域中定义的对象,那么超过这片区域,就不能调用该对象了。
例子:
{
String s=new String();
}//超过这片区域就不能调用s对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值