马克社区吧 关注:484贴子:446
  • 0回复贴,共1

java中类和对象如何协同工作, 这样工作有什么好处?

只看楼主收藏回复

4.object和Class配合工作原理
Class是"类"的意思,是抽象的,并没有具体的说是哪个东西。而object是具体的,实实在在存在的一个东西,一个物体。比如车就是一个类,而不是一个object,因为车这个概念是抽象的,并没有具体指明是哪辆车。而车牌号为京HT3113的这辆车就是一个object,因为它实实在在的存在。而另外一辆车牌号为京jw2344车是另外一个实实在在的object,这两个object属于一类叫"车"。车这一类有别于另外一类:窗体window。window是类而不是object,原因是你并没有实实在在,具体的指明,@马克-to-win是哪一个window,而我电脑上,暴风的window或迅雷的window就是两个具体的实实在在的object。

类相对于对象来讲是抽象的,但好处是可以总结提取出所有对象的共同性,比如车这类都是有四个轮子的,而window这类都有标题,且window这类可以被关闭。这样属于window这一类的对象,比如暴风window或迅雷window都有标题,@马克-to-win且都可以被关闭。福利来了,"关闭"这行为,所有window对象都有。具有共性的”关闭”行为如果放在类中只需放一份,而放在对象中却要放n份,我们立刻看出了类和对象协同工作的好处。好,综上所述,我们给出代码:

本章源码
class Window {
int title;
/*close放在类中只需放一份。省去重复工作, 每个object都可以用 */
void close() {
System.out.println("标题为" + title + "的window被关闭。");
}
}

public class Test {
public static void main(String[] args) {
/*Window baoFengObject = new Window();和 int a=3如出一辙, int a=3说明a是int这个类型的,而不是float
这个类型的。Window baoFengObject = new Window(); 说明baoFengObject这个对象属于window这个类, 而不是
车这个类的, 而且int a=3 在内存中分配了a这个空间等于3,而Window baoFengObject = new Window();时
baoFengObject在内存 中初始化了,被分配了空间,其中title初始化成了0 @马克-to-win*/
。。。。。。。。。。
详情请见:http://www.mark-to-win.com/JavaBeginner/JavaBeginner2_web.html#ObjectClassDifference