/*所有的employee对象都拥有这些属性。每创建一个对象就会从新分配一块内存来存放相应对象的这些属性。我的意思是每个对象都有自己“独特”的一份*/ private String name; //员工姓名 private int age; //员工年龄 private char sex; //员工性别 private float emolument; //员工薪水 private boolean lunch; //员工午餐 /*所有的employee对象都拥有这些方法。但在内存中只有一份*/ public void heater(){ //这个方法是用来加工员工的午餐 lunch = true; } public void setName(String a){ //这个方法是修改员工的姓名 name= a; } public String getName(){ //这个方法是得到员工的姓名 return name; } /*但是,实际上在创建jingwei这个对象时计算机只给这个对象的所有的属性分配了内存,而并没有给方法分配内存。方法只有一个,是属于所有的对象的,所以无论创建了多少个对象,计算机只会为一个方法分配一块内存。*/ 我想我还是举个例子吧,不然你非晕倒不可。呵呵! 看我这条语句“private boolean lunch;”公司不管午餐,每个员工都需要带饭。我们现在这样想,公司的空间是所有的内存容量,你的办公桌就是计算机中的内存中的一部分(每个员工都有一份,是在创建对象时分配的)。你把午饭带到了公司,放在了你的办公桌上。“午饭”占据了你的办公桌的一角(占了你自己“对象”的一块内存容量)。这份午饭只属于你自己,同样别人的也只属于她自己!所以每个员工(对象)都需要一快空间(内存)来存放自己的午餐(属性)。在计算机中也是这样的,每创建一个对象,就会在内存中从新分配一块内存来放“午餐——lunch”这个属性(对象所拥有的所有的属性)。 计算机只会为对象的属性分配内存。因为每个对象的都不一样!就像你往公司带的午饭和我往公司带的午饭不一样是一个道理!但方法就不同了。早晨带的饭中午就凉了,你需要用微波炉来加热。微波炉可不用你带,公司就有(只占公司的一块空间),它放在了午餐桌上。你想想,微波炉属于谁的?它属于所有员工的!因为每个员工都可以用它。而不必每个员工都带一份。由此可见,每个员工(对象)都有一份午饭(属性),但所有的员工(对象)只一个微波炉(方法)。所有的员工(对象)都可以通过这个微波炉(方法)来改变自己午餐(属性)的冷热状态。殊途同归!在计算机中也就是这样,方法只有一份,供所有的对象使用!而属性是每个对象一份,因为每个对象的都不一样。别和我说你还不明白,不然我会撞墙的,呵呵:) |
正在阅读:经典:面向对象编程,我的思想(上部)经典:面向对象编程,我的思想(上部)
2004-05-28 10:23
出处:CSDN
责任编辑:linjixiong
键盘也能翻页,试试“← →”键