黑马程序员技术交流社区

标题: 类与对象 [打印本页]

作者: SF_NEVERMORE    时间: 2015-10-14 18:42
标题: 类与对象
类与对象之间的关系
使用计算机语言就是不断地在描述现实生活中的事物。
java中描述事物通过类的形式体现,类是具体事物的抽象,概念上的定义。
对象即是该类事物实实在在存在的个体。类与对象
类就是图纸,汽车就是堆内存中的对象。
对于同一类事物可以抽取它们的共性的内容,定义在类中.

通过该类建立的每一个汽车实体都具有该属性,并可以有对象特有的属性值。
类的定义
属性:对应类中的成员变量。
行为:对应类中的成员函数。
定义类其实在定义类中的成员(成员变量和成员函数)。

成员变量和局部变量的区别
成员变量:
1.成员变量定义在类中,在整个类中都可以被访问。
2.成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。
3.成员变量有默认初始化值。
局部变量:
1.局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效。
2.局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放。
3.局部变量没有默认初始化值。

匿名对象
匿名对象是对象的简化形式。
匿名对象两种使用情况:
1.当对对象方法仅进行一次调用时;
2.匿名对象可以作为实际参数进行传递。


作者: 迷茫不堪的年纪    时间: 2015-10-14 19:00
应该还有匿名对象只可被调用一次,同时调用之后就消失被回收了
作者: SF_NEVERMORE    时间: 2015-10-15 16:39
迷茫不堪的年纪 发表于 2015-10-14 19:00
应该还有匿名对象只可被调用一次,同时调用之后就消失被回收了

多谢大神提点
作者: Love1027    时间: 2015-10-15 17:48
类存在整个内存中,对象存在堆内存中;类可以直接调用静态方法,对象只可以调用一般方法
作者: dai2686779    时间: 2015-10-15 18:40
6666666666666666666
作者: wx_HWRW5aF7    时间: 2015-10-15 18:58
Love1027 发表于 2015-10-15 17:48
类存在整个内存中,对象存在堆内存中;类可以直接调用静态方法,对象只可以调用一般方法 ...

对象也可以调用该类的静态方法
作者: Love1027    时间: 2015-10-15 19:51
wx_HWRW5aF7 发表于 2015-10-15 18:58
对象也可以调用该类的静态方法

{:2_34:}类不可以调用一般方法。我把自己绕进去了。
作者: Love1027    时间: 2015-10-15 19:52
wx_HWRW5aF7 发表于 2015-10-15 18:58
对象也可以调用该类的静态方法

{:2_34:}类不可以调用一般方法。我把自己绕进去了。
作者: wx_HWRW5aF7    时间: 2015-10-15 19:55
Love1027 发表于 2015-10-15 19:52
类不可以调用一般方法。我把自己绕进去了。

其实通常说的一般方法是指非构造方法,静态方法是被static修饰的一般方法
作者: 迷茫不堪的年纪    时间: 2015-10-16 01:30
Love1027 发表于 2015-10-15 17:48
类存在整个内存中,对象存在堆内存中;类可以直接调用静态方法,对象只可以调用一般方法 ...

亲,内存主要分为哪些内存呢?               无非是栈内存和堆内存吧?  我可以认为 对象>类>静态方法么?  我认为定义的类一般在堆内存有相应的地址哦。
作者: Love1027    时间: 2015-10-16 07:17
迷茫不堪的年纪 发表于 2015-10-16 01:30
亲,内存主要分为哪些内存呢?               无非是栈内存和堆内存吧?  我可以认为 对象>类>静态方法么 ...

Java内存主要有栈、堆和方法区。类在整个内存中,类中定义的静态成员变量和成员方法在方法区中,非静态成员变量、引用在堆内存中,引用变量也可以说引用的地址值、局部变量在栈内存中。
作者: SF_NEVERMORE    时间: 2015-10-16 09:05
Love1027 发表于 2015-10-16 07:17
Java内存主要有栈、堆和方法区。类在整个内存中,类中定义的静态成员变量和成员方法在方法区中,非静态成 ...

之前一直以为内存只有栈内存和堆内存。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2