关于JAVA中的变量与对象之间的关系

最近在学习JAVA,也看了好多帖子之类的,类与对象的关系算是稍微有点明白,可是变量与对象,数据,接口等等把我搞晕了,举个例子,人类是一个类,张三是对象,人类有身高,体重是人类这个类的属性,可以走路,跑是方法,张三有体重是张三的属性,可以跑是张三的方法,两者的人类与张三之间的属性方法是什么关系?变量到底是什么?变量与对象到底怎么区分,是什么关系?人类可以分为好人,坏人,也可以分为男人,女人,他们是人类的子类吗?为什么又是两种类?数据到底是什么?是不是JAVA中的所有东西都是数据?

希望知道的朋友给讲解下,就拿我举的这个例子给我说下,这么说自己好理解,希望能认真看完所有问题在回答,本人喜欢计算机,而且也想朝这方面发展,非常感谢!!!
还有个问题想问下,是不可以这样理解,JAVA中类是最顶层的东西,是一种数据类型,而对象就是数据?数据是不就是具体的东西呢? 是不在所有的编程语言中都是这样?包括C语言等 ,是不也可以这么理解,能放在内存中的东西才叫数据?或者所有放在内存中的东西才是数据?

对象算是变量呢还是常量,他们三个有什么关系? 类的成员与变量又是什么关系?

1. 两者的人类与张三之间的属性方法是什么关系? 回答: 不知道作者的两者的人类是什么意思, 我们就猜测是两者的方法和属性的关系来回答吧,就像作者说说的,人类是一个类,张三一个对象,那么我们假定这个人类有一个方法: public boolean canRun(){ 如果有腿,能跑,否则不能跑.}, 现在张三有个属性有腿,所以canRun是true,而假定李四,腿是断的,所以canRun是false.这里,张三,李四都是人类这个类的对象,但是由于属性不一样,所以能跑不能跑这个方法返回值是不一样的;所以这边的一个概念是:只要这些对象是某一个类的实例,[这里张三李四都是人类这个类的实例]那么这些对象都能支持相同的方法,但是由于这些实例的属性是不一样的[张三腿是好的,李四是断的],所以这些相同的方法的结果是不一样的.类只有一个,对象却因为他们不同的属性而表现出千七八怪的特性.
2. 变量到底是什么?
这种是什么的哲学问题太难回答,不过我这里可以说下变量的一个作用: 就像作者理解的,对象就是数据,数据又是放在内存里的某个位置,那么你的程序怎么才能知道对象在哪个位置,你要修改对象的某个属性[比如李四的腿被一个高明的医生给医好了,需要把李四这个对象的属性修改下],到底怎么去修改内存里的数据?我们不得不找到那个对象的地址才行,变量就能帮我们这个忙. Person li4=new Person("lisi");的时候,li4这个变量就指向那个地址,如果你非要一个变量是什么的答案,那么告诉你,变量就是一头猪.
3.变量与对象到底怎么区分,是什么关系?如2所示,对象是一些放在内存里的数据,变量就是指向这些数据所在地的东西.
4.人类可以分为好人,坏人,也可以分为男人,女人,他们是人类的子类吗?为什么又是两种类?回答:他们的确都是人类的子类,子类是为了扩展类的功能而存在.我想楼主困惑的是为什么又是两种类这个问题吧?为回答这个,请让我举一个比较粗俗的例子,假定我们需要Person提供一个功能,get第一次生孩子的时间的方法,你想把这个方法加在Person这个类里么?这不大合适吧,因为男人不会生啊,退一步讲,OK,你把生孩子这个东西加到Person这个类里去,那么第一次射精呢?也加进去?抱歉女人不会这个.所以我们会创建女人和男人这两个类,继承Person,同时也提供自己特有的方法在自己的类里[子类,MalePerson和FemalePerson当中,并且给MalePerson和FemalePerson提供自己的方法,另外由于FemalePerson是继承了Person,所以女人和男人都能跑,都能走,都有重量这样的属性].所以对这个问题的回答是:这个宇宙千变万化,我们不得不构建一个类的树来表示这个世界,这颗树最上面的是最common的属性,下面一层一层就是那节点所特有的属性.
5.数据到底是什么?是不是JAVA中的所有东西都是数据?回答:在计算机这个0和1的世界里,一切都是数据.数据.数据....根本上说,对象就是存放在内存里由0和1组成的东西.但这个问题,我们我看到楼主已经走火入魔了,该醒醒了,数据是什么这样的哲学问题,太强悍....让我吃饭去吧
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-03-13
我刚开始也是这样啊,现在都好多了,几乎都懂了,其实就是多做几个项目,这些关系就完全弄清了,不必要太纠结于这个问题,死想是不行的,要动手写代码,不会写,不理解,就去看其他同学的
第2个回答  2010-03-05
属性就是变量啊,人类除了张三,还有李四,他们的身高体重可以不同,是变量了
第3个回答  2010-03-05
你对"变量"、"常量"、"对象"的理解有问题。
"变量",顾名思义,值可以改变;例如:
int i=0;
i=1;
i的值从0变成了1,这样完全正确.

和"变量"对应的就应该是"常量","常量"的值是不可改变的,在java代码中使用final关键字来定义;例如:
final int i=0;
i=1;// 此时,这样写是错误的,"常量"i在定义时赋值后,就再也不允许修改了

"对象"和"变量"及"常量"没有任何直接联系可言,"对象"即一个实实在的东西,有属性有方法(也有可能没有);在JAVA中,与"对象"对应的应该是"java基本数据类型"(byte,char,short,int,long,double,float,boolean,无属性和方法)。
第4个回答  2010-03-05
先申明一下,你说的“两者的人类”我不知道是什么。
变量就是值可以变化的内存的一块空间。你就认为它是一个可以改变的数据就够了;
变量的值可以是对象,变量也可以包含在对象内部。对象是类的实际例子。也可以像你那样,对象是数据,类是数据类型(你可以这样理解,但并不表示他就一定是);
他们是人类的子类;
至于你下面的问题,我觉得你要相向计算机发展,最好别只知道看一些帖子之类的。你要有基础,看帖子确实对你有帮助。学习就的用书
按我理解对象是一个常量。

java如何判断一个成员变量是否是一个对象
用多个变量来判断。同一个对象,指的是多个变量指向的对象是存储在同一块内存地址中,因此判断一个成员变量是否是一个对象用多个变量来判断。变量指没有固定的值,可以改变的数,常量与变量,数学中表征事物量的一对概念,在事物的特定运动。

java对象中成员变量是自己的对象堆栈溢出的问题
对象的内存分配是在堆中完成的,而引用对象A的就是a是在栈中分配的内存,当你new A()时,会一直在栈中分配就是a,但每个变量a所指向的对象不相同,最终栈内存不够,报堆栈溢出 异常。将a属性声明为static,这就是所有类都将共享这个对象,并且只在首次new里在分配内存。

变量与对象之间的区别是什么?
变量是java程序中的基本储存单元,它的定义包含变量名、变量类型和作用域几个部分。对象是客观世界的一个实体,它不仅包含有属性还有动作即方法。变量和对象都要声明,单变量是可变的,对象不可变,一旦声明就不变了。例如座子是一个对象,你不能说它是凳子吧。

JAVA中变量类型参数和对象类型参数有何不同?在使用上应如何注意区别...
JAVA中对象类型参数是把对象的引用传进方法中,在方法中改变对象的属性,方法外该对象的属性也会随着相应改变。对于变量类型参数,在方法中改变变量的值,方法外变量的值不会随着相应改变。

java中引用类型的变量和对象的区别
这个问题问的好,很多基础不牢固的JAVA学习者很多简单的东西没掌握 对象:是按照“类”这个模板建立的,建立的位置则是内存 例如A是一个类。A X则是创建一个引用变量,X=NEW A()则是在内存中建立一个对象(开辟了1片空间),对象的模板就是A(可以理解为在空间里复制了A类里的变量到空间里去)...

变量和对象的区别是什么意思
选择,这个两个变量引用同一个对象 一定要认识到:一个对象变量并没有实际包含一个对象,而仅仅引用一个对象。在Java中,任何对象变量的值都是对存储在另外一处的一个对象的引用。new操作符的返回值夜是一个引用。下列语句:Data deadline=new Data();有两个部分。表达式new Data()构造了一个Data...

控制型变量和对象具体上有哪些区别
java中变量和对象的区别如下:变量只是分配了栈内存,并没有分配内存空间,而对象是已经在内存中占用了空间的。变量声明之后如果没有进行赋值,是不能在代码中使用的。而对象是可以在代码使用,并使用它的成员变量或者方法。

java中什么是实例变量,类变量,局部变量??
类变量是在类中定义和存储的,它们的值适用于类及其所有实例。而当类被实例化成为一个实例化对象的时候,对象中的变量将会成为实例变量。每个实例都将有实例变量的一个拷贝,它们可以修改实例变量的值,而不会影响其他的实例;而类变量只有一个拷贝,修改它的值将影响所有的实例。只在特定的过程或函数中...

java中有两个对象a和b,当a=b的时候是把a的引用给了b,还是把b的引用给了...
在java中,关于对象的使用都是通过引用来实现的,引用实际上就是一个内存地址,我们说的对象a和对象b,变量a和变量b实际上就是一个引用变量指向一个内存地址,在这块内存地址上刚好储存的数据是对象而已。因此,a=b实际上就是将变量b的引用值(地址)赋给a变量,这么一来a和b都指向了原先b指向的...

java中静态变量和实例变量的区别?
在Java类中,静态变量和实例变量的概念与区别是编程中经常讨论的主题。静态变量,也被称作类变量,由static修饰符定义。它们存储在类的内存空间中,而不仅仅是属于某一个对象实例。这意味着,不管类被实例化多少次,静态变量只会有一个实例,可以被所有实例共享。静态变量和静态常量统称为静态成员。与之...

相似回答