第4章 Java程序结构.ppt
文本预览下载声明
第4章 Java程序结构 Java语言是一种纯面向对象的程序设计语言,它的核心概念是类和对象,它的程序是基于类和对象建造的,程序中类的结构决定了程序的结构。这一章较深入系统地介绍Java程序的结构,介绍组成Java程序的类之间的关系。 Java程序结构 类层次结构 对象的使用与对象间通信 多态性 接口与包 访问控制与修饰符 类层次结构 继承的概念 继承的描述 类的继承规则 变量的隐藏 继承的概念 在日常生活中,我们常用“是一种(is-a)”关系来组织与表达知识,从而将知识组织成一种有层次、可分类的结构。面向对象程序设计方法将is-a关系引入到程序设计领域,用于描述类与类之间的关系,称之为继承。 多态性 同一运算或方法(如“+”)对不同类型的对象(如整型数,或字符串)有不同的语义解释。这种在程序中同一方法对不同类型的对象有不同解释的现象称为多态性 多态性与继承是密不可分的。通常,两类对象都有共同的父类,在父类中定义的方法在这两个子类中分别有不同的实现 超类与子类 我们在声明类A时,指明类A继承了类B(类B是一个已定义了的类),则类A 通常就拥有了类B的成员变量和方法。此时,类B称为类A的直接超类(superclass),超类也称为父类或基类;类A称为类B的直接子类(subclass),子类也称为派生类 继承的描述 Java语言中,声明类首部的格式如下: [类的修饰符] class 类名 [extends 超类名][implement 接口名表] 其中“extends 超类名”部分就是用来描述继承的,这里超类名指明所声明类的直接超类 继承描述的演示 类的继承规则 直接子类继承那些被声明为public 或protected的直接超类成员(包括成员变量和成员方法,下同) 直接子类继承那些未被存取权限修饰符修饰的直接超类成员,只要该子类与该超类在同一个包中 如果直接子类声明了一个与直接超类中的成员同名的成员,则该子类不继承该超类中的该同名成员 直接子类不继承被修饰为private的直接超类的成员 变量的隐藏 直接子类声明了一个与其直接超类的成员变量同名的成员变量,则称该超类的该成员变量在该直接子类中被隐藏,关键字this 和super分别用来指明直接子类和其直接超类中同名的成员变量 当超类的成员变量、子类的成员变量和类中方法使用的局部变量三者同名,或其中的两者同名时,可以使用关键字this和super来指定所要使用的变量 this和super区别同名变量的演示 对象的使用与对象间通信 对象的创建 对象的使用 对象间的通信(消息)与实例方法的调用 对象的创建 Java中,类是某一类对象的共同特征(属性、行为)的描述,即类中含有某一类对象具有哪些属性、哪些行为的信息。而由类创建的多个对象都具有类所定义的那些属性和行为。但是,由同一个类所创建的不同对象的同一个属性的值可能不同 对象的生命周期 对象和现实生活中的事物一样,有它的产生、发展和消亡的过程,在Java中分别称之为对象的创建、使用和释放,这一过程称为对象的生命周期 定义一个学生类 创建对象过程 对象的声明 对象的实例化 对象的初始化 对象的声明 对象声明的语法形式为: 类名 对象名; 该语句从指定的类创建对象。 对象的实例化和初始化 必须给一个对象分配相应的存储空间,才能使用它。在声明一个对象时,并没有为该对象分配存储空间。对象的实例化完成对象的空间分配,对象实例化是通过new操作完成。构造方法的调用则确定了对象的初始状态,这一过程就是初始化 对象创建过程的演示 演示对象的初始化 演示使用构造方法进行初始化 演示由子类创建对象的过程 对象的使用 引用对象的成员变量 调用对象的成员方法 对象作数组元素 对象作类的成员变量 引用对象的成员变量 引用对象成员变量的语法形式为: 对象名.成员变量名 ; 例:Rectangle类的声明 静态变量和实例变量 调用对象的成员方法 如前所述, 调用对象成员方法的语法形式为: 对象名. 成员方法名([实际参数表]); 其中: ⑴ 对象名指定所使用的对象; ⑵ 成员方法名指定所要调用的成员方法; ⑶ 实际参数表由0个或多个表达式构成,表达式之间用逗号“,”分隔 调用对象方法参数传递过程演示 说明实例 本例中类MethodDemo1给出一个实现两float型数相加的方法。方法的参数x、y是参与加法的操作数,相加的结果存于局部变量z中,return语句指明z的值即是方法的返回值。类CallMethodDemo1的add对象调用了类MethodDemo1的方法add,实参为整型3和5 演示方法的一种用法 演示
显示全部