类与对象的区别
2007-05-31 18:13阅读:
JAVA 学习总结
一、类与对象的区别:
1、类是对某一类事物的描述,是抽象的; 而对象是一个实实在在的个体,是类的一个实例。
比如:“人”是一个类,而“教师”则是“人”的一个实例。
2、对象是函数、变量的集合体;
而类是一组函数和变量的集合体,
即类是一组具有相同属性的对象集合体。
3、UML的类图和对象图之间的区别是:
类图中类名首字母大写,对象图中的对象名首字母小写。
对象名下有一条下划线,而类名没有。
4、类的数据值是共享的,一个实例能访问它所属类的类数据值;
而实例数据属于单个对象,除共享了所在类中的数据外,
不同对象还会有不同的数据值。
5、先有类,才有类的实例——对象。
应用在:当你在创建某个类的实例(对象)之前,这个类必须被定义。
6、实例方法和类方法的区别在于:
实例方法属于单个对象,类方法属于类。
二、静态方法与非静态方法的区别:
1、静态方法隶属于类,既可通过对象来调用,亦可通过类名来调用;
非静态方法则只可以通过对象来调用。
2、static的Method and attribute 只能是对类而言,
而non-static 的,是对于对象而言的。
3、两者在系统分配内存的时候也是不同的:
前者是用栈分配内存,速度快,是在类第一次载入的时候初始
化。
后者是用堆分配内存,速度慢些,是在对象初始化的时候,伴随着初始化的。
4、所谓静态变量或方法, 就是以static修饰的变量或方法, 如static int count;
它的意义是让系统分配一个静态空间给这个变量count, 那么包含这个变量的类
的全部实例就会共用这个变量, 任何一个改变了count都会对其余的实例产生影
响, 它是在文件编绎时就被初始化的, 比一切其它non-static 变量都要早;
而non-static 变量就是每一个类实例都有自己的count, 任何实例的改变都不会
影响到其它的实例的count(也就是分配了各自的空间), 它们是第一次使用的时
候才被初始化的;
static 和non-static 的方法的区别也是差不多的, 只是一点要注注意的就是
static 成员(变量或方法), 只能调用static 成员,
而不能调用non-static
成员。
三、方法、函数、消息、变量、属性之间的关系。
1、方法就是对象的行为,即函数;
2、消息也是调用某个对象的函数,即方法。
3、变量就是对象的状态,即属性。
四、继承
被继承的类叫超类(superclass ),继承超类的类叫子类(subclass
)。
子类是超类的一个专门用途的版本,它继承了超类定义的所有实例变量和方法,并且为它自己增添了独特的元素。
在继承关系当中,一个子类能够从它的超类当中继承所有的东西,子类能够吸收现有类的数据和方法。
通过继承,子类不仅仅展示了其超类的行为和特征,而且还展示了特定于自身的行为和特征。
五、软件生命周期中的五个主要的步骤:
分析、设计、编码、测试、操作。
2007年05月31日