第7章继承与派生
- 格式:pdf
- 大小:455.70 KB
- 文档页数:58


第7章图形用户界面第7章图形用户界面在前边介绍的应用程序中,都是采用字符方式的用户界面。
从本章开始,将进行图形用户界面的程序设计。
在应用系统中,程序操作界面(用户界面)是用户与计算机系统沟通的桥梁,因此,用户界面的优劣直接关系到的使用。
本章主要介绍Java中的图形用户界面的相关知识,其中包括:容器、组件、布局管理器等内容。
7.1 概述所谓图形用户界面(Graphics User Interface,简称GUI),是指使用图形的方式,以菜单、按钮、标识、图文框等标准界面元素组成的用户操作屏幕。
大家最常见、使用最多的是Windows系统下的用户操作界面。
在应用系统得开发中,根据需要可能要设计各种各样的用户界面。
因此,我们所关心的是开发环境提供了哪些用于构成用户界面的组件元素,这些组件元素的功能及作用是什么,组件元素之间有无关系,如何利用这些组件元素构建用户操作界面。
在Java中,将构成图形用户界面的各种组件元素大致可分为以下三类:容器、组件和用户自定义成分。
1.容器(Container)容器是用户屏幕上的一个特殊的窗口,它用来组织或摆放其它界面元素。
一个容器上可以摆放若干个界面元素,这些界面元素本身可能也是一个容器,这些容器上也可摆放其它的界面元素,依次类推就可构成一个复杂的图形界面系统。
例如,框架(Frame)容器是Java中的标准窗口,在它上边可以摆放窗格(Panel)容器和其他组件,在窗格容器上又可以摆放窗格容器和其他组件等等。
容器的引入有利于把复杂的图形用户界面分解为功能相对独立的子部分。
在设计用户界面时,如果使用的界面元素较多,就可以按操作需要分类,将它们分别放在不同的容器中,然后以某种规则(嵌套、行列、顺序等)摆放在用户屏幕上。
如上所述,容器是构建用户界面的关键组件,它的主要特点如下:1)容器是一个窗口(矩形区域),作为一个组件对象被摆放在屏幕上,有其位置和大小,在它上边摆放的元素也被限制在这个窗口之内。
面向对象的程序设计(C++)教学大纲教学目的本课程为高级语言程序设计的入门课程,完全针对零起点的学生,可作为其他信息类相关课程的基础课。
目标是使学生通过本课程的学习,掌握面向对象程序设计的基本概念和方法、C++的基本语法和编程方法;学会使用集成开发环境;掌握程序调试方法;初步了解常用数据结构和非数值算法;初步了解C++标准模板库的使用方法。
教学任务完成《C++语言程序设计(第4版)》教材内容,及《C++语言程序设计(第4版)学生用书》中的实验内容,另有学生自主选题的大作业、选作的论文回报告。
学时:大课30、实验30、课外30、课外讨论10学时。
教学内容的结构课程由4个模块共12个教学单元组成,对应于《C++语言程序设计(第4版)》的十二章内容。
教学活动以及教学方法上的基本要求大课、实验、课外作业、自选题目的大作业、论文和报告结合,学时大课30、实验30、课外30。
另有课外讨论环节。
通过大课讲解基本原理和方法;通过实验课巩固大课内容,并在助教辅导下完成基础实验,当堂由助教验收;课外作业由学生独立完成,并提交清橙考试系统进行评分。
自选题目的大作业要在期中提交选题报告,逐一批改并给出评语,期末提交全部文档及程序并且逐一答辩。
答辩形式为:学生演示5分钟,教师提问5分钟,当即给出成绩。
论文和报告属于加分因素。
课外讨论安排在每次大课之后,加1学时,自愿参加,每人每学期至少参加一次。
内容为:教师对难点进行复习、讲解补充例题,学生提问和讨论。
模块及单元教学目标与任务模块1:程序设计基础单元1 绪论要点:●面向对象程序设计语言的产生和特点,面向对象方法的由来及其基本概念,面向对象的软件工程简介;●信息在计算机中的表示和存储,程序的开发过程。
教学任务:1.1计算机程序设计语言的发展1.2面向对象的方法1.3面向对象的软件开发1.4信息的表示与存储1.5程序的开发过程作业及实验:作业1、实验一单元2 C++简单程序设计要点:●C++语言的发展历史及其特点;●构成C++语句的基本部分—字符集、关键字、标识符、操作等;●C++的基本数据类型和自定义数据类型;●顺序、选择和循环结构。
1.什么是类的继承与派生?继承性是面向对象程序设计的第二个重要特性,通过继承实现了数据抽象基础上的代码重用。
继承是对许多问题中分层特性的一种自然描述,因而也是类的具体化和被重新利用的一种手段,它所表达的就是一种对象类之间的相交关系。
它使得某类对象可以继承另外一类对象的特征和能力。
继承所具有的作用有两个方面:一方面可以减少代码冗余;另一方面可以通过协调性来减少相互之间的接口和界面。
通过继承方式定义的子类也称为派生类。
2.类的三种继承方式之间的区别是什么?类的继承方式有public(公有)继承、protected(保护)继承和private(私有)继承三种。
对于不同的继承方式,会导致基类成员原来的访问属性在派生类中有所变化。
表5.1列出了不同继承方式下基类成员访问属性的变化情况。
表5.1 不同继承方式下基类成员的访问属性说明:该表第1列给出3种继承方式,第1行给出基类成员的3种访问属性。
其余单元格内容为基类成员在派生类中的访问属性。
从表中可以看出:(1) 基类的私有成员在派生类中均是不可访问的,它只能由基类的成员访问。
(2) 在公有继承方式下,基类中的公有成员和保护成员在派生类中的访问属性不变。
(3) 在保护继承方式下,基类中的公有成员和保护成员在派生类中均为保护的。
(4) 在私有继承方式下,基类中的公有成员和保护成员在派生类中均为私有的。
需要注意的是:保护成员与私有成员唯一的不同是当发生派生后,处在基类protected区的成员可被派生类直接访问,而私有成员在派生类中是不可访问的。
在同一类中私有成员和保护成员的用法完全一样。
3.派生类能否直接访问基类的私有成员?若否,应如何实现?派生类不能直接访问基类的私有成员。
具体实现方式:(1) 在类定义体中增加保护段为了便于派生类的访问,可以将基类私有成员中需提供给派生类访问的部分定义为保护段成员。
保护段成员可以被它的派生类访问,但是对于外界是隐藏起来的。
这样,既方便了派生类的访问,又禁止外界对它的派生类访问。