疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java中的类和对象


 

   

  Java中,或者说所有面向对象的编程语言中,都有两个特别重要的概念——类和对象。

  相较现实,类,就像是一个设计好的工程图纸,清清楚楚标注了建筑的大小以及材料,而对象则是依据这个图纸建立起来的实际存在的建筑。当然,虽然是按照同一张图纸,不同的建筑之间也有差别,比如楼栋编号。

  类和对象也是如此。从关系上来说,类是对象的抽象,对象是类的实例化。什么意思呢?“人类”就是一个类,而“我”就是这个类中的一个对象。类规定了对象所具有的全部属性和方法,而对象之间的差异,则取决于属性的不同数值以及不同的方法调用。

  从内存分配上来讲,类本身是不占据任何内存的,就像一张图纸不会占据建筑用地一样。而对象,在被创建的那一刻,就拥有了一块属于自己的内存空间——尽管这个空间的大小是由类确定的。

  以一个名为People的类为例,在执行语句:People me = new People(); 时,计算机做了什么事情呢?

  分析语句的结构:类名(People) 对象名(me) = new 构造方法((可带参数));这是Java中一个最基本的创建对象的语句。

  首先从等号右边开始执行,new调用构造函数,根据类的内容,在堆中开辟了一块相应大小的内存——这个过程实际上是创建对象的过程。

  等号左边的People me,执行的操作是在栈中开辟了一块内存,用于存放地址,这个地址用me来标记。

  最后,等号执行赋值操作,将new在堆中开辟的内存的地址,赋值给me。

  从上面的过程中可以看出Java的一个特性:非基本数据类型(如对象)都是引用类型。也就是说,对象名,实际上只是一个地址,这个地址指向对象的具体内容。