A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qingshan 中级黑马   /  2014-11-27 17:22  /  1333 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

看毕老师的视频的时候,一开始毕老师说现实中是先有对象,后有类。而计算机中是相反的,先有类而后有对象。那么问题就来了。后面老师又说成员变量在内存中是因为对象存在,才在堆内存中存在。感觉有点晕了。



6 个回复

倒序浏览
对象中的所有成员都是作为对象的一部分封装在一起的。创建对象的过程包含对其成员分配内存空间并初始化的过程。
回复 使用道具 举报
成员变量随着对象的存在而存在,消失而消失。成员变量只是对象的属性。车子的颜色属性时黑色,没有车怎么说车的颜色。
回复 使用道具 举报
组合关系
回复 使用道具 举报
非静态的成员变量是在对象创建的时候才进行初始化的。每一个对象中的成员变量都是都是对象本身所特有的,所以只有对象被创建了,非静态的成员变量才有意义。
回复 使用道具 举报
所有编程语言都提供抽象机制,JAVA由C++发展而来沿用了C++的面向对象抽象机制。较早期的“命令式”语言(FORTAN,BASIC,C等)所做的主要抽象仍要求在解决问题时基于计算机结构,而不是基于所要解决问题的结构来考虑。面向对象方式通过向程序员提供表示问题空间中的元素的工具而使我们可以更进一步,使我们不必受制于计算机的数据结构。我们将问题空间(毕老师所说现实)中的元素及其在解空间(计算机)中的表示称为“对象”。其实质就是像计算机添加新的数据类型(通过定义类)。你后半句话所提到的(毕老师说成员变量在内存中是.....)成员变量是所创建类实例化后对象中的域(成员变量),类的实例化在计算机中的体现就是文件加载进内存,完成对象初始化。对象初始化的过程毕老师说的很仔细不多赘言......(水平有限,仅表我个人浅见,不足处忘技术大牛不要笑话小弟)
回复 使用道具 举报
所有编程语言都提供抽象机制,JAVA由C++发展而来沿用了C++的面向对象抽象机制。较早期的“命令式”语言(FORTAN,BASIC,C等)所做的主要抽象仍要求在解决问题时基于计算机结构,而不是基于所要解决问题的结构来考虑。面向对象方式通过向程序员提供表示问题空间中的元素的工具而使我们可以更进一步,使我们不必受制于计算机的数据结构。我们将问题空间(毕老师所说现实)中的元素及其在解空间(计算机)中的表示称为“对象”。其实质就是像计算机添加新的数据类型(通过定义类)。你后半句话所提到的(毕老师说成员变量在内存中是.....)成员变量是所创建类实例化后对象中的域(成员变量),类的实例化在计算机中的体现就是文件加载进内存,完成对象初始化。对象初始化的过程毕老师说的很仔细不多赘言......(水平有限,仅表我个人浅见,不足处忘技术大牛不要笑话小弟)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马