浅谈Java类与对象的概念区别

来源:互联网 发布:python time sleep作用 编辑:程序博客网 时间:2024/05/17 06:13

前言:

在一个面向对象系统中:

对象是对现实世界中事物的抽象,是 Java 程序的基本封装单位,是类的实例(instance)

     类是对象的抽象,是数据和操作的封装体;
     属性是事物静态特征的抽象,在程序中用成员变量加以描述;
     操作是事物动态特征的抽象,在程序中用成员方法来实现。

   把客观世界中的事物映射到面向对象的程序设计中就是对象。
   对象是面向对象程序设计中用来描述客观事物的程序单位。
   客观世界中的许多对象,无论其属性还是其行为常常有许多共同性,抽象出这些对象的共同性便可以构成类。
   类是对象的
模板(template ),对象是类的实例(instance)。


一 .


  1.1类的概念

在面向对象的编程语言中,类是一个独立的程序单位,是具有相同属性和方法的一组对象的集合

          类的概念使我们能对属于该类的全部对象进行统一的描述。

                 在定义对象之前应先定义类。

                   描述一个类需要指明下述三个方面内容:

               类标识:类的一个有别于其他类的名字。

               属性说明:用来描述相同对象的静态特征

               方法说明:用来描述相同对象的动态特征

   1.2    定义类的一般格式

   进行 Java 程序设计,实际上就是定义类的过程。
   一个 Java 源程序文件往往是由许多个类组成的。

   从用户的角度看,Java 源程序中的类分为两种:

    系统定义的类:即 Java 类库,它是系统定义好的类。Java 语言由语法规则和类库两部分组成,语法规则确定 Java 程序的书写规范;类库则提供了 Java 程序与运行它的系统软件(Java 虚拟机)之间的接口。

    用户自定义类:系统定义的类虽然实现了许多常见的功能,但是用户程序仍然需要针对特定问题的特定逻辑来定义自己的类。


   在 Java 程序中,用户自定义类的一般格式如下:

class 类名
{

数据成员1

数据成员2
数据成员3

·

·

·

成员方法1

成员方法2
}
     类的结构是由类说明类体两部分组成的。
     类的说明部分由关键字 class 与类名组成,类名的命名遵循 Java 标识符的定义规则。
     类体是类声明中花括号所包括的全部内容,它又是由成员变量(属性)和成员方法(方法)两部分组成。
     数据成员描述对象的属性;成员方法则刻画对象的行为或动作,每一个成员方法确定一个功能或操作。

二. 对象


2.1   对象的概念

      把客观世界这一事实映射到面向对象的程序设计中,则把问题域中的事物抽象成了对象(Object),事物的静态特征(属性)用一组 数据来描述,事物的动态特征(行为)则用一组方法来刻画。


  2.2   对象的特征

                对象具有以下特征:

               对象标识:即对象的名字,是用户和系统识别它的唯一标志。对象标识有“外部标识”和“内部标识”之分。外部标识供对象的定义者或使用者用,内部标识供系统内部唯一地识别每一个对象。在计算机世界中,可以把对象看成计算机存储器中一块可标识的区域,它能保存固定或可变数目的数据(或数据的集合)。

        属性:即一组数据,用来描述对象的静态特征。在 Java 程序中,把这一组数据称为数据成员。

    方法:也称为服务或操作,它是对象动态特征(行为)的描述。每一个方法确定对象的一种行为或功能。在 Java 程序中称为成员方法。

      在 Java 程序中,类是创建对象的模板,对象是类的实例,任何一个对象都是隶属于某个类的。
           Java 程序设计是从类的设计开始的。


2.3   创建对象


              2.3.1 声明对象

                                声明对象就是确定对象的名称,并指明该对象所属的类。
                                声明格式如下:

                                          类名 对象名表;
          类名是指对象所属类的名字,它是在声明类时定义的;
                           对象名表是指一个或多个对象名,若为多个对象名时,用逗号进行分隔。

        声明对象的作用是为将来的编译过程提供必要的信息。

    2.3.2 建立对象

                               建立对象,实际上就是用 Java 提供的 new 关键字为对象分配存储空间。
                             在声明对象时,只确定了对象的名称和它所属的类,并没有为对象分配存储空间,此时对象还不是类的实例。
       只有通过建立对象这一步,才为对象分配内存,使该对象成为类的实例。
       建立对象的格式如下:

对象名=new 构造方法();
      也可以在声明对象的同时建立对象,这称为创建一个对象,其格式如下:

类名 对象名=new 构造方法();
      关键字 new 的作用是建立对象,为对象分配存储空间

     2.3.3 初始化对象

       初始化对象是指由一个类生成对象时,为这个对象确定初始状态,即为它的数据成员赋初始值的过程,当然,它主要由一些赋值语句组成。
                               由于初始化操作是最常用的操作之一,为简化这一过程,Java 还提供了专用的方法来完成它,这个方法被称为
构造方法


  2.4   使用对象

         一个对象可以有许多属性和多个方法。
        在面向对象的系统中,一个对象的属性和方法被紧密地结合成一个整体,二者是不可分割的,并且限定一个对象的属性值只能由这个对象或它的方法来读取和修改。
        当一个对象被创建后,这个对象就拥有了自己的数据成员和成员方法,我们可以通过引用对象的成员来使用对象。

                对象的数据成员的引用方式如下:

   对象名.数据成员名;
        对象的
成员方法的引用方式如下:

对象名.成员方法名(参数表);


  2.5 对象的初始化与构造方法

        构造方法是一个类的方法中方法名与类名相同的类方法。
                每当使用 new 关键字创建一个对象,为新建对象开辟了内存空间之后,Java 系统将自动调用构造方法初始化这个新建对象。

        构造方法是类的一种特殊方法,它的特殊性主要体现在以下几个方面:

    构造方法的方法名与类名相同。
    构造方法是类的方法,它能够简化对象数据成员的初始化操作。
    不能对构造方法指定类型,它有隐含的返回值,该值由系统内部使用。
    构造方法一般不能由编程人员显式地直接调用,在创建一个类的对象的同时,系统会自动调用该类的构造方法将新对象初始化。
    构造方法可以重载,即可定义多个具有不同参数的构造方法。
    构造方法可以继承,即子类可以继承父类的构造方法。

         如果用户在一个自定义类中未定义该类的构造方法,系统将为这个类定义一个缺省的空构造方法。这个空构造方法没有形式参数,也没有具体语句,不能完成任何操作。但在创建一个类的新对象时,系统                      要调用该类的构造方法将新对象初始化。

                特殊情况下,构造方法中的参数名可能与数据成员名相同,此时,在构造方法中可用下面两种形式之一来区分数据成员名与参数名:

           默认法。当构造方法的参数名与数据成员名相同时,将赋值号左边的标识符默认为对象的数据成员名,而赋值号右边的标识符为参数
           使用代表本类对象的关键字 this指出数据成员名之所在。


三. 类与对象的关系(区别)

    

  类给出了属于该类的全部对象的抽象定义,而对象则是符合这种定义的一个实体。


⑵ 可以把类与对象之间的关系看成是抽象与具体的关系。


⑶ 在面向对象的程序设计中,对象被称作类的一个实例(Instance),而类是对象的模板(Template)。


类是多个实例的综合抽象,而实例又是类的个体实物。

    由于对象是类的实例,因此在定义对象之前应先定义类。在定义了类之后,才可以在类的基础上创建对象。

0 0