您的位置:首页 > 编程语言 > Java开发

java编程思想之一切都是对象

2017-03-06 15:14 204 查看
一、创建新的数据类型:类

类是由一组相同属性和行为对象的结合,定义了对象的属性和行为

使用class关键字来定义一个新类如:

class ATypeName(){/*class body goes here*/}

二、类的组成

1、一旦定义了一个类,就可以在类中定义两种类型的属性:字段和方法。字段可以是任意类型的对象,也可以是基本类型的一种。每一个对象都有其用来存储字段的空间,普通字段不能在对象间共享。

如果类的成员变量是基本类型,即使没有进行初始化,java也会确保它有一个默认值;然而这种初始化的方法并不适合局部变量

   基本类型      默认值    
byte0
short0
int0
long0L
float0.0f
double0.0d
char'\u0000'
booleanfalse
2、java的方法决定了一个对象能够接收怎样的信息,方法的基本组成部分包括:名称、参数列表、返回值、方法体,下面是它的基本形式
ReturnType methodName(/*Argument list*){

 /*method body*/

 }

返回类型指定了在调用方法之后从方法返回的值;参数列表给了要传给方法的信息的类型和名称。方法和参数列表它们合起来称为“方法签名”,它们合起来可以唯一的标识出某个方法。

java中的方法只能作为类的一部分创建,方法只能通过对象才能调用,且这个对象必须能执行这个方法调用,如果调用类中不存在的方法,编译器会提示错误

3、方法的返回值

return关键字的的用法,它包括两个部分的意思。首先它表示“已经完成了,离开此方法”;如果此方法产生了一个值,这个值放在return 语句后面。如果返回类型是void,return关键字的作用只能用来退出该方法,但如果返回值不是void,那么无论在何处返回,编译器都会强制返回一个正确类型的返回值。

三、类与对象的关系

类是由一列相同属性和行为的对象集合,类是对象的模板

四、如何操作对象

在java中一切都被视为对象,用引用操作对象,可以将这个情景想象成用遥控器(引用)来操作电视剧(对象),只要握住这个遥控器就能操作电视机。此外即使没有电视机的存在遥控器也能单独存在也就是说你拥有了一个引用,并不一定需要有对象与之相关联如:

String s;

这里创建的只是引用并不是对象。如果此时向s发送消息,会出现运行时异常。

一旦创建了引用,就希望它能够与新对象相关联,通常使用new操作符来达到这个目的,new关键字的意思是“给我一个新的对象”,所以前面的例子可以写成:

String s = new String("aa");

五、对象的存储

程序运行时,对象是怎么进行放置安排的,内存是如何分配的,对于这些的理解对我们有很大的帮助。有五个地方可以存储数据:

1、 寄存器:这是最快的存储区,它处于处理器内部,但是寄存器数量有限所以进行按需分配,不能直接控制(C和C++可以向编译器建议寄存器的分配方式)

2、堆栈(其实就是栈):这个是用来存放对象的引用,但是java对象并不存在这个地方。位于通用RAM(随机访问存储器),通过指针从处理器那里获得直接支持。堆栈直接向下移动分配新的内存,向上移动释放内存,这是一种快速有效的存储方法,速度仅次于寄存器,java系统必须知道存储在堆栈区所有项的确却生命周期

3、堆:用来存放java所有的对象,一种通用的内存池。堆比栈的好处是编译器不需要知道数据存在堆中的存活时间。当需要一个新对象时只要new出来一个,然后在堆中就会分配出存储空间

4、常量存储:常量值通常直接存放在程序代码内部

5、非RAM存储:数据存活于程序之外,不受程序控制,在程序没有运行的时候也可以存在,这里有两个例子:流对象和持久化对象。在流对象中对象转化为字节流发送到另一台机器上;持久化对象中对象被存储在磁盘上

特例:基本类型,创建的对象并不是存在堆中而是存在堆栈中

六、对象的销毁

java的对象不具备和基本类型相同的生命周期,当用new创建一个对象时,它可以存活于作用域之外,这些对象继续存活在内存中。java 中有个垃圾回收器,用来监视那些用new创建出来的对象,并且辨别那边不在被引用的对象,随后释放这些对象的内存空间,所以我们不用担心内存回收问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java