一切都是对象

Posted liupiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一切都是对象相关的知识,希望对你有一定的参考价值。

一.Java所基于的语言是smalltalk.具备5个特性。

1) 万物皆为对象

2) 程序是对象的集合,对象之间是通过发送消息来通信

3) 每个对象都有自己的由其它对象所构成的存储

4) 每个对象都拥有其类型

5) 某一特定类型的对象都能接收同样的消息

个人总结:对象需要我们通过程序的入口,主动或者被动的创建它,创建后,对象可以看作是存储在内存中一个数据类型,它有自己的行为和属性,比一般我们所知道简单类型具备更加满足我们需求的功能和属性,甚至在这个对象中使用了其他数据类型。在对象中使用了对象。

二.面向对象和面向过程的区别?

面向对象和面向过程有着本质区别,面向过程的核心思维是过程,第一步做什么,第二步做什么,很清楚明了。而面向对象,我们分析问题是,这个问题中有哪些对象和类,再分析我们设计这个类,这个类具备哪些属性和方法,同样的多个类之间的关系是如何的。

三.对象和对象引用

在java中,对象和对象引用经常成对出现,对象的引用和对象是有本质的区别的,并且它们之间是有联系的。什么是对象?什么又是对象的引用呢?

1.何谓对象?

有一句话,万物皆对象。对象:每个对象都是某个类的一个实例。简而言之,对象就是类的实例。

2.何谓对象引用

在java编程思想中,提到过每种编程语言都有自己操纵内存中元素的方式,可以是直接的,也可以是间接的。在java中,一切视为对象,对对象的操纵就是通过对象的引用来操作的。通过我们创建一个对象是通过new关键字来实现的

Cat cat = new Cat();

上面的代码,cat不是一个对象,仅仅只是Cat类实例对象的一个引用。对象和对象的引用未必同时存在内存中,一个引用可以指向多个对象,而同一个对象可以被多个引用所指向。

四.什么是类?

类是描述了具备相同属性(数据元素)和行为(功能)的对象集合。所以根本上,类就是一种数据类型,我们构建一个新的类,其实是构建一种新的数据类型,这种数据类型能够满足我们的某种需求,而这种需求最终也是由我们自己来定的。

五.特例:基本类型

通过new是将对象存储在java堆中,用new创建一个对象---特别是小的简单的对象,往往不是很有效,对于这些类型,java采取与C和C++相同的方法,不采用new来创建变量,而是创建一个并非是引用的"自动"变量,这个变量直接存储“值”,并置于堆栈中,这样更加高效。java中每种基本类型所占的存储空间的大小是固定的。

六.引用类型和基本类型的区别?

引用类型和基本类型有着巨大的区别,当声明一个int  i=0时,系统会马上给这个i分配一个内存空间(在栈内存里面分配一小块区域用来装数字0),里面装着一个值为0,以后使用i这个名字马上就可以访问这个内存空间里面的值,这就是基本数据类型,所以基础类型就只占一块内存。基础类型之外的类型全都叫引用类型,我们定义一个Mouse  m,这个m就是一个引用类型的数据。引用类型有什么重要的特征——引用类型占2块内存。我们定义好这个类之后,需要使用new关键字把这个类的对象实例化出来,也就是真真正正造出一个对象出来才能使用这个对象。

七.成员变量和局部变量的区别?

在JAVA里面的任何变量首先应该要声明,然后再赋值,然后再使用。成员变量和局部变量有一个重要区别:成员变量在类里面声明时如果不进行初始化,那么JAVA会默认给它初始化,而局部变量JAVA不会默认给它初始化,所以在方法里面声明一个局部变量如果不给它初始化时就会出错。默认初始化大多数都是0,boolean类型的为false,引用类型的为null,如过不记得JAVA对成员变量默认的初始化是多少的话,那就这样做,定义一个成员变量,不给它初始化,然后直接打印这个成员变量,打印出来的结果就是JAVA默认的初始化的值。

以上是关于一切都是对象的主要内容,如果未能解决你的问题,请参考以下文章

一切都是对象

Java学习记录-1.一切都是对象

一切都是对象

python里的类与一切事物都是对象

一切都是对象

第二章----一切都是对象