新足迹

 找回密码
 注册

精华好帖回顾

· 宝宝需要的妈妈的智慧,而不是玩具(0-5个月经验分享) (2009-10-30) 小川妈 · 征文活动:雪梨尖沙咀 - Chatswood (2010-9-11) chermside
· 焦糖蘋果蛋糕 (2005-9-21) 小米 · 新手便携小DC发图咯!!!~~~~更新几张第一次扫街的图 (2009-11-21) jmms_smmj
Advertisement
Advertisement
查看: 2604|回复: 31

大家如何理解java中的class? [复制链接]

发表于 2011-3-25 15:48 |显示全部楼层
此文章由 狄仁杰 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 狄仁杰 所有!转贴必须注明作者、出处和本声明,并保持内容完整
如题,类这个概念,对新手来说很抽象的. 请理解的同学用简单易懂的话解释一下. 最好能举个例子.
Advertisement
Advertisement

发表于 2011-3-25 16:01 |显示全部楼层
此文章由 zn7726 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 zn7726 所有!转贴必须注明作者、出处和本声明,并保持内容完整
LZ有别的语言编程背景吗?

发表于 2011-3-25 16:09 |显示全部楼层
此文章由 featheast 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 featheast 所有!转贴必须注明作者、出处和本声明,并保持内容完整
你就把类看成一类东西,比如一只狗,一个苹果。
你每次new一个类,就是生成了一个实例,比如一只叫java的狗。
狗有各种状态,比如颜色,身高,多大,都是这个类的属性。
然后狗可以叫,可以吃,可以拉屎,这些都是这个类的方法。
。。。。。。
这个好像回到了大学一年级阿。。。

发表于 2011-3-25 16:25 |显示全部楼层
此文章由 ljalee 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ljalee 所有!转贴必须注明作者、出处和本声明,并保持内容完整
怎么还有这个问题啊?
怎么没问interface和class的区别啊?
从来没写过java的人飘过.

发表于 2011-3-25 20:13 |显示全部楼层
此文章由 dcc82 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dcc82 所有!转贴必须注明作者、出处和本声明,并保持内容完整
好吧,我就来给楼主一个最简单的例子

人类是类,定义了吃喝拉撒的基本属性
人是对象,所以每个人也就都能吃喝拉撒
超人也是对象,在人的基础上实现了飞的接口,所以他能飞起来

通俗易懂吧?觉得好就加分吧

[ 本帖最后由 dcc82 于 2011-3-25 21:15 编辑 ]

2010年度奖章获得者

发表于 2011-3-25 20:21 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
更糊涂了。。。

超人为什么不能继承人类?
Advertisement
Advertisement

发表于 2011-3-25 20:26 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2011-3-25 21:21 发表
更糊涂了。。。

超人为什么不能继承人类?


我想dcc82的意思是超人inherent人类,同时implement了ISuperMan这个interface.

不过我觉得超人怎么也要override一下人类中的吃喝拉撒,不然作超人也没什么意思。

发表于 2011-3-25 20:27 |显示全部楼层
此文章由 mylt 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 mylt 所有!转贴必须注明作者、出处和本声明,并保持内容完整
为什么超人不能继承人又继承鸟了,
估计是怕被称为鸟人

评分

参与人数 1积分 +3 收起 理由
乱码 + 3 你太有才了

查看全部评分

发表于 2011-3-25 20:32 |显示全部楼层
此文章由 乐活生活馆 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乐活生活馆 所有!转贴必须注明作者、出处和本声明,并保持内容完整
class就是你刻的一个模子,用这个模子可以做出无数个饼。
N年前学IT,现在做生意,脑子还记得点东西,哈哈

参与宝库编辑功臣

发表于 2011-3-25 20:35 |显示全部楼层
此文章由 bffbffbff 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bffbffbff 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这个问题有点深 ~

发表于 2011-3-25 21:10 |显示全部楼层
此文章由 flyspirit 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 flyspirit 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2011-3-25 21:21 发表
更糊涂了。。。

超人为什么不能继承人类?


当然继承人类啦。

class superman derive from man implement super

interface super
{
  void fly();
  void savePeople();
  void fightEvildoer();
  void loveGirl()
  void reverseTime();
  ...
}

评分

参与人数 1积分 +3 收起 理由
乱码 + 3 你太有才了

查看全部评分

Advertisement
Advertisement

发表于 2011-3-25 21:12 |显示全部楼层
此文章由 flyspirit 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 flyspirit 所有!转贴必须注明作者、出处和本声明,并保持内容完整
在OOP的世界里, 万物都是对象object.   任何对象都属于一个class.

发表于 2011-3-25 21:20 |显示全部楼层
此文章由 zn7726 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 zn7726 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 flyspirit 于 2011-3-25 22:10 发表


当然继承人类啦。

class superman derive from man implement super

interface super
{
  void fly();
  void savePeople();
  void fightEvildoer();
  void loveGirl()
  void reverseTime();
  ...
}


改一改就能编译了

derive from 改成 extends
implement 改成 implements

发表于 2011-3-25 21:23 |显示全部楼层

回复 zn7726 13# 帖子

此文章由 flyspirit 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 flyspirit 所有!转贴必须注明作者、出处和本声明,并保持内容完整
见笑,我很少用java的, 都忘了。

发表于 2011-3-25 22:24 |显示全部楼层

回复 zn7726 13# 帖子

此文章由 bfox 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bfox 所有!转贴必须注明作者、出处和本声明,并保持内容完整
超人不能继承人类的,因为超人不是地球上来的。
黑人,白人,黄种人是人的子类,超人不是

发表于 2011-3-25 22:28 |显示全部楼层
此文章由 dcc82 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dcc82 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 乱码 于 2011-3-25 21:26 发表


我想dcc82的意思是超人inherent人类,同时implement了ISuperMan这个interface.

不过我觉得超人怎么也要override一下人类中的吃喝拉撒,不然作超人也没什么意思。


哈哈,谢谢解释,我就是那个意思,超人当然可以继承人类,他或许同时可以继承不同的人类,实现不同的接口,否则就不叫超人了
我一直觉得OO的封装、继承、多态三大特性如果结合生活中的事例是很容易理解的
Advertisement
Advertisement

2010年度奖章获得者

发表于 2011-3-25 22:31 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
嗯,我一直记得一句话,刚学OO是看到得。

OO concept is based on real world
so if real world works, OO works

发表于 2011-3-26 00:49 |显示全部楼层
此文章由 rumcoke 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 rumcoke 所有!转贴必须注明作者、出处和本声明,并保持内容完整
要不就是这样的:
超人从氪星来的, 但是他又是以地球人形态出现 所以这个氪星人类应该用了类似
Class 样品=Class.forName("地球人")
然后通过反射机制得到了Method[] 地球人都干啥 = 样品.getDeclaredMethods()
然后他们将超人作为地球人的子类 (投胎?) 重写了上面取得的 地球人都干啥 里面的方法 又加入了些类似 fly(), piupiupiu() 之类的 最终弄出个超人class
头像被屏蔽

禁止发言

发表于 2011-3-26 07:55 |显示全部楼层

class 是模子的意思。object 是用这个模子刻出来的具体东西。object要new 一下才能

此文章由 iami 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 iami 所有!转贴必须注明作者、出处和本声明,并保持内容完整
从class中刻出一个object。
object是要占用内存资源的。

发表于 2011-3-26 15:33 |显示全部楼层
此文章由 ysihaoy 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ysihaoy 所有!转贴必须注明作者、出处和本声明,并保持内容完整
人是一个class类,你是一个具体对象,你是由人这个类new出来的。
类是抽象的,对象是具体的。

发表于 2011-3-27 19:48 |显示全部楼层
此文章由 tony534 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 tony534 所有!转贴必须注明作者、出处和本声明,并保持内容完整
其实,不如对着例子来,看一下 head first 设计模式,从哪里我对多态了解的深了不少。
Advertisement
Advertisement

发表于 2011-3-28 15:54 |显示全部楼层
此文章由 porcorosso 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 porcorosso 所有!转贴必须注明作者、出处和本声明,并保持内容完整
超级赛亚人呢?不继承人类吧?

悟饭可能可以。。。

发表于 2011-3-28 16:01 |显示全部楼层
此文章由 cangaru 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 cangaru 所有!转贴必须注明作者、出处和本声明,并保持内容完整
土方法理解就是:

CLASS是基础编程里的TYPE
OBJECT就是那一个个变量

发表于 2011-3-28 23:33 |显示全部楼层
此文章由 maodoubao 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 maodoubao 所有!转贴必须注明作者、出处和本声明,并保持内容完整
设计一个好的类,或者好的对象,是把现实中的问题用程序来处理的关键。
也就是说建立一个很好的数学模型很重要。
不知理解的对不对,欢迎指正。

[ 本帖最后由 maodoubao 于 2011-3-29 00:37 编辑 ]

发表于 2011-3-31 13:06 |显示全部楼层
此文章由 winsome 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 winsome 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 bfox 于 2011-3-25 23:24 发表
超人不能继承人类的,因为超人不是地球上来的。
黑人,白人,黄种人是人的子类,超人不是


但是超人也有一般人的特质,所以最恰当的方法是超人用人类+超功能来实现

把人类作为超人的嵌套类就ok了

发表于 2011-3-31 13:08 |显示全部楼层
此文章由 righttang 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 righttang 所有!转贴必须注明作者、出处和本声明,并保持内容完整
当年学数学,老师告诉我们,什么叫函数。。。。。
说有变量啊,有返回值啊,有逻辑啊什么的。。。

说到最后就说,你们别想了,这个东西随着我们课堂的深入,或许有一天早上醒来,你一拍脑袋,就知道,哦,原来这个就是函数。。。

同理,class也是这个,等你java学得慢慢深入了,有一天醒来,一拍脑袋,就知道了,哦,原来这个是class
Advertisement
Advertisement

发表于 2011-4-1 11:43 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 righttang 于 2011-3-31 14:08 发表
当年学数学,老师告诉我们,什么叫函数。。。。。
说有变量啊,有返回值啊,有逻辑啊什么的。。。

说到最后就说,你们别想了,这个东西随着我们课堂的深入,或许有一天早上醒来,你一拍脑袋,就知道,哦,原来这个就是函数。。。

同理,class也是这个,等你java学得慢慢深入了,有一天醒来,一拍脑袋,就知道了,哦,原来这个是class


I bang my head again wall thousands of times. still don't have clue at all
头像被屏蔽

禁止发言

发表于 2011-4-1 15:21 |显示全部楼层
此文章由 linkspeed 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 linkspeed 所有!转贴必须注明作者、出处和本声明,并保持内容完整
对于一个刚学oo的人来讲,
class最适合的解释是
“把数据和操作集中在一起”。

其他继承啥的是后来再说的。
写一般公司里的商业程序,
继承啥的其实用的很少。更别提模式设计了。
难得用用。

发表于 2011-4-1 15:23 |显示全部楼层
此文章由 winsome 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 winsome 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 linkspeed 于 2011-4-1 16:21 发表
对于一个刚学oo的人来讲,
class最适合的解释是
“把数据和操作集中在一起”。

其他继承啥的是后来再说的。
写一般公司里的商业程序,
继承啥的其实用的很少。更别提模式设计了。
难得用用。


没有继承的用OO干嘛?只能说设计得很烂,功能扩展,后期维护都会很麻烦

发表于 2011-4-1 15:44 |显示全部楼层
此文章由 realfenglin 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 realfenglin 所有!转贴必须注明作者、出处和本声明,并保持内容完整
最痛苦的事情是: 一个用JAVA的人,不明白CLASS的概念。
比这个更痛苦的是:已经习惯什么都用CLASS的JAVA程序员,开始放弃CLASS的理念。
于是乎,想起当年张三丰教张无忌学太极拳: 你什么时候全部忘记,才懂得什么是真滴。

周五下午,对IT工作者来说,似乎意味着更多
不管怎么变,只有一点不变:永远都是穷人先倒霉!!!

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部