第3章面向对象程序设计基础

合集下载

第3章:面向对象编程基础

第3章:面向对象编程基础

3.2 Java的类和对象
(2) 成员变量
成员变量定义的一般形式如下: [修饰字] 类型 变量名; 其中,修饰字可以空缺,修饰字用于对成员变量限制其访问权限,成员 的访问权限有4种:private、protected、public 和友好的(后面详细 介绍)。 变量的类型可以是任何数据类型,变量的名字是一个标识符。Java 中成 员变量的名字可以与类的方法的名字相同。 成员变量对类内定义的方法都有效。类的方法也可定义变量,这种变量 称为局部变量,局部变量只在定义它的方法中有效。
3.1 面向对象的基本概念
3. 消息(方法调用的信息)
对象之间的交互通过相互发送消息(Message )实现。 当对象A希望对象B执行B的一个方法时,用 对象A发送消息给对象B来实现。 消息发送时,如果还需要其他参数,消息可带 参数一起发送。
3.1 面向对象的基本概念
4. 类(对象的类属/类别)
程序设计中利用抽象,在面向过程阶段,系统按函数和 模块进行设计。 在面向对象阶段,利用抽象按类设计。类是目前支持抽 象的最好工具。
3.1 面向对象的基本概念
2. 对象: (万物皆为对象)
对象有状态(属性)、行为(操作)和名称( 对象名) 对象的名称用于程序引用对象,对象的成员变 量,用于存储对象的状态信息,对象的方法用 于描述对象的行为
练习题
【真题练习】参照以下Java代码,以下四个叙述中最确 切的是( )
class A{ int x; static int y; void fac(String s){ Syatem. out. println("字符串:"+s); } } A.x、y和s都是成员变量 B.x是实例变量、y是类变量、s是局部变量 C.x和y是实例变量、s是参数 D.x、y和s都是实例变量

《PowerBuilder程序设计基础》 第三章 应用对象

《PowerBuilder程序设计基础》  第三章 应用对象

3.1.1应用对象
• 应用对象是PowerBuilder应用程序启动时装入的第一个对象,除了 标识应用程序和作为应用程序的入口点外,应用对象还保存和定义了 下述信息: • 1.默认字体 应用对象是非可视对象,它的4个字体属性用于定义应用 程序中的其他对象使用的默认字体。把应用对象的字体属性设置成应 用程序中使用最频繁的字体将有助于加快应用程序的开发进程。(因 为这样做可以避免为每个对象设置所需的字体) • 2.应用程序图标 指定用哪个图标代表运行中的应用程序。 • 3.应用库搜索路径 该路径指明了在查找应用程序中包含的各种对象 时都检索哪些应用库。放置在前面的应用库将首先被查找。 • 4.默认的全局变量 PowerBuilder为每个应用程序都提供5个默认的 全局变量(在第二章已经学习过这5个默认的全局变量),它们分别 是SQLCA、SQLDA、SQLSA、Error、Message,在 PowerBuilder的应用程序中既可以直接使用这些预定义的全局变量, 也能够在应用对象画板中更改这些全局变量的类类型。只要新的类类 型的从相应的原始类中继承得到即可。使用用户画板就可以创建新的 类类型。 • 5.全局外部函数 当我们想用PowerBuilder系统本身没有提供的功能 时,可以通过访问外部函数来解决。 • 此外,还有应用对象结构、函数和实例变量以及其它全局变量,在这 里我们就不详细介绍了。
ห้องสมุดไป่ตู้
3.1.2应用库
• 用PowerBuilder开发应用程序时,我们建立的所有对象(包括对象 函数、事件处理程序)、函数、结构以及定义的所有变量,最终都存 储在磁盘文件中,该文件以.PBL为后缀,我们称这些文件为应用库。 一个应用程序既可以存放在一个应用库中,也可以分散存储在多个库 中,但是值得注意的是,不要使单个应用库过大,通常不宜超过 800K,否则将增加系统的查库时间。库文件不能直接使用文本编辑 器查看,但可通过库管理画板(Library Painter)浏览、操作应用库。

网络程序设计(java)第03章 面向对象程序设计new

网络程序设计(java)第03章 面向对象程序设计new


• 类(class)本身也是一种对象 • 类(class)同时也是实例对象的模板 • 类(class) 的基本组成:(成员)域和(成员)方 法 • 每个对象:拥有内存存储成员域/方法
– 静态的成员域/方法属于类 – 其它成员域/方法属于实例对象
2013-7-31 8
类的定义
• 类的定义格式如下:
2013-7-31 18
实例化对象
前面讲过,类是创建对象的模板.当使用一个类创建了一 个对象时,我们也说我们给出了这个类的一个实例。通常的格 式为: 类的名称 对象的名字=new 类的名称([parameterList]); 创建一个对象包括对象的声明、为对象分配内存空间和赋 初值三个步骤。 1、对象的声明格式为: 类的名字 对象名字; 如 People zhangPing; 或 People zhangPing ,LiYong; 这里People 是一个类的名字,zhangPing是我们声明的对象的 名字.
2013-7-31 1
面向对象程序设计整体介绍
• 传统的程序设计风格存在着数据抽象简单、信息完全暴露、 算法复杂、无法很好地描述客观世界等缺点,可重用性差, 如果软件项目庞大,程序的调试和维护将变得异常困难。 • 面向对象的基本思路:首先分析问题并建立相应的对象, 然后通过这些对象以及它们之间的配合解决问题,是模拟 现实生活求解的一般过程。
float getArea(){ // 方法 return radius*radius*PI; }
//内部访问变量
}
成员域的使用
如果从类的外部访问,类变量和类实例变量的使用方法是不同。 访问类变量的格式如下: 类名.类变量名 例如我们可以采用下面形式访问上例中的静态变量color的: Circle.color,由此可见,访问类变量与类的对象构造和对象都无 关。类变量名必须用static修饰。 访问实例变量的格式如下: 对象名.实例变量名 例如 Circle c1=new Circle(); //c1是对象名 System.out.println(“area=”+c1.area); //(不能是Circle.area) System.out.println(“Color=”+Circle.color);

《Java面向对象程序设计》课件-第3章 类和对象

《Java面向对象程序设计》课件-第3章 类和对象

3.4.2 访问权限
35
练习3.4
1.[单选题]被声明为private、protected及public的类成员,对于在类的外部,以下说法中 ________是正确的?
A.都不能访问
B.都可以访问
C.只能访问声明为public的成员 员
D.只能访问声明为protected和public的成
2.[单选题]在Java语言中,被______修饰符修饰的成员变量只可以被该类本身访问。
20
实例变量VS类变量
实例变量必须用对象名访问 类变量可以用类名访问,也可以用对象名访问
21
3.3.2 实例方法和类方法
成员方法的定义:
[访问权限] 返回值类型 方法名([参数列表]){ 方法体
} public String getPassword() {
//实例方法,获取密码
return password;
11
对象的创建
声明对象变量
✓ 类名 对象名(对象的引用)
Car c1; c1=new Car("京A08L35");
创建对象 类名 对象名=new 构造方法(); Car c1=new Car("京A08L35");
new
12
main()方法
main()方法: public static void main(String args[])
类型。
private String carNum;
每个类都有一个默pu认b的li构c C造a方r法()({它没有任何参数),如果类 没有重新定义构造方ca法rN,u则m创=建"京对象A时08系L统3自4"动; 调用默认的 } 构造方法。否则,p创ub建li对c 象Ca时r调(S用tr自in定g义n的u构m造){方法。

vb6.0_PPT_3

vb6.0_PPT_3

第三章 面向对象程序设计基础
3.1.4 事件、方法的编辑
1.事件 1.事件 事件(Event) 事件(Event)就是每个对象可能用以识别和响应的某些 行为和动作。 行为和动作。 通常,一个对象可以识别和响应一个或多个事件。 通常,一个对象可以识别和响应一个或多个事件。 事件过程定义语句格式: 事件过程定义语句格式: 对象名称_事件名称([ 参数列表) ([( Private Sub 对象名称_事件名称([(参数列表)]) <程序代码 End Sub
第三章 面向对象程序设计基础
3.1.2 类
第三章 面向对象程序设计基础
3.1.3 属性的设置
1.利用“属性” 1.利用“属性”窗口设置对象属性 利用 工程设计”窗口,依次选择【视图】 属性窗口】菜单选项, (1)在“工程设计”窗口,依次选择【视图】→【属性窗口】菜单选项, 打开“属性”窗口。 打开“属性”窗口。 工程设计”窗口,选中设置属性的“对象” 单击鼠标右键, (2)在“工程设计”窗口,选中设置属性的“对象”,单击鼠标右键, 打开快捷菜单,选择【属性窗口】菜单选项,打开“属性”窗口。 打开快捷菜单,选择【属性窗口】菜单选项,打开“属性”窗口。 工程设计”窗口,选中设置属性的“对象” (3)在“工程设计”窗口,选中设置属性的“对象”,单击工具栏中的 按钮,打开“属性”窗口。 按钮,打开“属性”窗口。 2.利用属性设置语句为对象设置属性 2.利用属性设置语句为对象设置属性 格式1 格式1: [<父类名>].<对象名>.属性名 <属性值 父类名>].<对象名>. 属性值> [<父类名>].<对象名>.属性名 = <属性值> 格式2 格式2: <对象名 对象名> With <对象名> 属性值表> <属性值表> End with

《Java_2面向对象程序设计基础》第3章:Java语法基础

《Java_2面向对象程序设计基础》第3章:Java语法基础

Java语法基础 Java语法基础
标识符、关键字、 1.1 标识符、关键字、数据类型 和注释 变量、 1.2 变量、方法 值传递和关键字this 1.3 值传递和关键字this 1.4 表达式和流程控制 1.5 数组
1.1.1 标识符
在Java语言中,标识符是变量、类或方法的名 Java语言中,标识符是变量、 语言中 例如: 称,例如: int idCounter;//idCounter 就是一个整型 变量的标识符 标识符的组成: 标识符的组成:
1.1.3 引用数据类型
java语言中除8种基本数据类型外,其他的数据类型统称为 ava语言中除8种基本数据类型外, ava语言中除 引用类型( type),具体包括: ),具体包括 接口、数组、 引用类型(reference type),具体包括:类、接口、数组、 枚举和注解类型。 枚举和注解类型。 引用类型数据以对象的形式存在。 引用类型数据以对象的形式存在。 引用类型变量的值是某个对象的句柄,而不是对象本身。 引用类型变量的值是某个对象的句柄,而不是对象本身。 声明引用类型变量时,系统只为该变量分配引用空间, 声明引用类型变量时,系统只为该变量分配引用空间,并未 创建一个具体的对象。 创建一个具体的对象。
1.1.3 基本Java数据类型 基本Java数据类型
字符—— ——char (3) 字符——char
char型数据用来表示通常意义上的“字符” char型数据用来表示通常意义上的“字符”, 型数据用来表示通常意义上的 java语言采用16位Unicode编码保存 语言采用16 编码保存。 java语言采用16位Unicode编码保存。 字符常量的三种表示方法: 字符常量的三种表示方法: 使用单引号括起来的单个字符,例如: 使用单引号括起来的单个字符,例如: c='A'; char c='A'; 十六进制编码形式表示,例如: 十六进制编码形式表示,例如: c1='\ char c1='\u0061'; 使用转义字符' 使用转义字符'\’来将其后的字符转变为其他含 例如: 义,例如: c2=‘ //代表换行符 char c2=‘\n’;//代表换行符

第3章 面向对象基础

第3章  面向对象基础

3.2.1
类的定义
在ActionScript 3.0中使用class关键字进行类的定义。原则上 一个ActionScript 3.0的类对应一个扩展名为as的文件。这 样能够使程序结构更加清晰。
3.2.2
类的属性
类的属性是在类中定义的变量,并且可以被访问。属性可以 通过类进行访问。
3.2.3
类的方法
3.11.2
面向对象设计
首先,面向对象设计需要定义出比赛、运动员和状态接口以 及这些接口的基本联系。比赛的接口比较简单就是通过 一组运动员比赛得到冠军。运动员的接口也比较简单, 进行比赛,并且可以得到运动员的国籍。状态是属于运 动员的,反过来运动员也拥有状态,使用状态去比赛并 且决定比赛的成绩。
3.11.3
面向对象设计的概念是面试中经常遇到的问题。一部分是面 向对象的基本概念,一部分是面向对象设计的思想,模 式是面试时的一个重点。比较常见的有如下几个: 1.面向对象的三个基本要素是什么? 2.继承和实现有什么联系? 3.列举出几个常用的设计模式,并进行说明。
3.13
小结
本章中详细地描述了ActionScript 3.0面向对象的特性。面向 对象程序设计的方式和方法,初步的介绍了基本的设计 模式。
3.4.1

与Java语言一致 , ActionScript 3.0当中也是 按照文件夹 来排列包的 结构。不同 之处在于 ActionScript 3.0每一个文 件是以包为 基本元素存 在的。
3.4.2
名称空间
名称空间是 ActionScript 3.0 语言当中特有的 一个概念,可以 通过名称空间对 类的方法进行访 问限定。这点与 包的作用很像, 但可以在一个包 内命名多个名称 空间。

第3章 面向对象编程基础

第3章 面向对象编程基础

3.2.2 类的成员
常数表达式的值应该是一个可以在编译时计算的值,常数声明不允许使用static 修饰符,但它和静态成员一样只能通过类访问。 例如:
class Test { public static void Main( ) { A_const m = new A_const ( ); Console.WriteLine ("X={0}, PI={1},Y={2}", A_const.X , A_const.PI A_const.Y); } }
3.2.3 构造函数
【例3.6】静态构造函数。
namespace Ex3_6 { class Screen { static int Height; static int Width; int Cur_X, Cur_Y; static Screen() { // 静态构造函数,对类的静态字段初始化 Height = 768; Width = 1024; } } class Program { ... } }
尽管多继承从形式上看比较直观,但在实现上多继承可能引起继承操作或属性 的冲突。当今的很多语言已不再支持多继承,C#语言也对多继承的使用进行了限 制,它通过接口来实现。接口可以从多个基接口继承。接口可以包含方法、属性、 事件和索引器。一个典型的接口就是一个方法声明的列表,接口本身不提供它所定 义的成员的实现。所以接口不能被实例化,一个实现接口的类再以适当的方式定义 接口中声明的方法。如图3.6所示。
3.2.4 析构函数
【例3.7】析构函数的调用次序。 运行结果如图3.11所示。
3.3 方法
3.3.1 方法的声明
方法是按照一定格式组织的一段程序代码,在类中用方法声明的方式来定义。
方法声明语法形式: [属性集信息] opt [方法修饰符] opt 返回类型 方法名 ( [形参表] opt ) { 方法体 }

第3章 面向对象程序设计基础 答案

第3章 面向对象程序设计基础 答案
}
[解答]:构造方法是一个特殊的方法,主要用于初始化新创建的对象。构造方法的方法名要求与类名相同,用户不能直接调用,只能通过new运算符调用,构造方法不返回任何数据类型,也不返回void数据类型,即不能在构造方法前加void。
上面的代码出错处:(1)构造方法student前不能加void.(2)不能用return语句。
}
extends字句有类声明的extends子句基本相同,不同的是一个接口可有多个父接口,用逗号隔开,而一个类只能有一个父类。Java中的类只能实现单重继承,这虽然可以简化编程,但毕竟没有完全实现面向对象的功能。定义接口的主要作用,就是帮助Java实现类间多重继承的结构。接口有以下好处:
(1)接口可以被多个类所实现,这些类可以不相关,从而具有相同的行为。
{ System.out.println("你好"); }
}
class Test
{ public static void main(String args[])
{动物ren;
ren=new人();
ren.cry();
}
}
//将抽象类改写成接口,并实现这个接口
interface动物
{ public void cry(); }
(1)private只能被类本身访问,其他类无法访问。
(2)default属于默认的访问状态,可以被类本身和同一个包中的类访问。
(3)protected可以被类本身、它的子类(包括同一个包以及不同包中的子类)访问。
(4)public可以被所有的类访问。
【7】什么是抽象类?为什么要引入抽象类的概念?
[解答]:抽象类是用来描述人们在对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。抽象类不具备实际功能,是专门设计用来让子类继承的类,把这些具有共同特征的方法抽象出来,由子类负责这些抽象方法的实现细节,而父类仅提供此方法的名称和声明、没有方法的主体。

第3章 面向对象程序设计

第3章 面向对象程序设计
重载了Area方法。
♣3.3.5 this关键字
this关键字引用类的当前对象,成员通过this关 键字可以知道自己属于哪一个实例。this关键 字是一个隐含引用,它隐含于每个类的成员函 数中。但需要注意的是静态函数没有this关键 字。this关键字可用于从构造函数、实例方法 和实例访问器中访问成员。
♣ 以下是this的常用用途。 ♣ (1)限定被相似的名称隐含的成员,例如:
public Employee(string name,stirng alias) { =name; this.alias=alias; } CalcTax(this);
♣ (2)将对象作为参数传递到其他方法,例如:
♣用ref修饰符声明的参数为引用参数。引用参数就
是调用者提供的自变量的别名。引用参数并不定 义自的变量,而是直接引用原自变量,因此对引 用参数的修改就将直接影响相应自变量的值。在 函数调用中,引用参数必须被赋初值。 ♣用out修饰符定义的参数称为输出参数。如果希望 函数返回多个值,可使用输出参数。输出参数与 引用参数类似,它并不定义自己的变量,而是直 接引用原变量,这样当在函数内为输出参数赋值 时,就相当于给原自变量赋值。与引用参数的差 别在于:输出参数在调用方法前无需对变量进行 初始化。
♣1.对象的基本概念 ♣ 对象是系统中用来描述客观事物的一个实体,
它是构成系统的一个基本单位。 2.类 ♣ 把众多的事物归纳、划分成一些类是人类在认 识客观世界时经常采用的思维方法。分类的原则 是抽象。类是具有相同属性和服务的一组对象的 集合,它为属于该类的所有对象提供了统一的抽 象描述,其内部包括属性和服务两个主要部分。
♣3.面向对象的基本特征 ♣(1)封装性 ♣(2)继承性 ♣(3)多态性

第3章-面向对象程序设计(上)ppt课件(全)

第3章-面向对象程序设计(上)ppt课件(全)

面向对象的基本概念
❖ 对象(Object)是一个应用系统中用来描述客观 事物的实体,是具有特定属性(数据)和行为 (方法)的基本运行单位,是类的一个特定状态 下的实例。
❖ 类(Class)是Java代码的基本组织模块,是用 以描述一组具有共同属性和行为的对象的基 本原型,是对这组对象的概括、归纳与抽象 表达,它定义了本类对象所应拥有的状态属 性集及操作这组属性的行为方法集。
也可以一步完成,即:
类名称 对象变量 = new 类名称();
实例化对象(续)
❖ 一旦一个类的实例化对象产生,就可以通过该对象 访问类中定义的成员了。通过对象访问成员的基本 结构如下:
对象变量.属性 = 值; 对象变量.方法();
3.2 方法
任务2--Leabharlann 方法的定义【任务内容】给任务1中的媒体播放器类增加控制方 法
❖ JAVA的类由类的声明与类体两部分组成。
1、类的声明用来指定该类的访问修饰符、类的
名称、父类名称及实现接口等属性。声明类的完整 形式为: [public][abstract|final] class <类名> [extends<基类名> ]
[implements <接口列表>]
类名应该能够描述出类的 特征或作用,类名的第一 个字母通常要大写,如果 类名由多个单词组成,则 每一单词的首字母一般都
【范例 3-1】 设计一个媒体播放器类
class MediaPlayer{ //音乐文件路径 public String musicFile; //播放器音量,范围:0(静音)~100 public int soundLevel; //播放器状态 public boolean isPlaying;

第3章-WinForm程序设计与实践-廉龙颖-清华大学出版社

第3章-WinForm程序设计与实践-廉龙颖-清华大学出版社
法的用途;方法主体包含了调用方法时实际执行的语句。定义方法的语法格式如下: • [访问修饰符] 返回值类型 方法名(参数列表) •{ • 方法体 • [return返回值;] •}
3.4.2 方法的重载
• 方法重载是一种操作性多态。当需要在多个不同的实现中对不同的数据执行 相同的逻辑操作时,就可以使用重载,例如,Console类的WriteLine()方法 具有19个重载。
3.5 构造方法
• 构造方法是类的一个特殊成员,它会在类实例化对象时自动调用,为对 象开辟内存空间,并对类中的成员进行初始化。
• 在一个类中定义构造方法,必须满足以下3个条件: • (1)方法名与类名相同; • (2)在方法名的前面没有返回值类型的声明; • (3)在方法中不能使用return语句返回一个值。
3.3 类的数据成员
• 1.常量
• 在类中的常量成员是一种符号常量,符号常量是由用户根据需要自行创建的常量。
• 2.字段
• 字段表示类的成员变量,字段的声明方式即变量的声明方式,字段的值代表某个对象数据状态。
• 3.属性
• 在C#中,为保证类中内部数据的安全,可以使用属性来封装字段,首先需要将字段访问级别设为 private,再通过属性的get和set访问器来对字段进行读写操作,具体语法格式如下:
WINFORM程序设计与实践
第3章面向对象程序设计
学习目标:
• 理解面向对象的概念,理解类与对象的区别 • 掌握类的声明和实例化方法 • 掌握属性、方法以及构造方法的定义 • 了解方法的重载以及方法的高级参数 • 了解访问修饰符 • 掌握静态类和静态成员的访问方法 • 理解和掌握面向对象的基本特征 • 掌握抽象类和嵌套类的声明方法 • 掌握委托和Lambda的使用方法 • 掌握程序集的引用

Java基础第3讲面向对象程序设计(课时2)

Java基础第3讲面向对象程序设计(课时2)

二、面向对象概念:类与对象
二、面向对象概念:类与对象
3、类与对象间的关系
对象
实例化
抽象

主要内容

一、面向对象概念:类与对象 二、面向对象概念:类与对象 三、类的定义 四、面向对象的基本特征 五、抽象类、接口 六、面向对象设计原则 七、小结 八、课程实训
三、类的定义 1、定义类 语法如下:
实例 实例
三、类的定义 2、构造方法:是提供对象初始化的专 用方法,不能被显示地直接调用。
1)、在一个类中与类同名的方法叫构造 方法,系统在产生对象时会自动执行 2)、构造方法通常用于定义一些初值或 与类同名而 其他准备工作 不是与java 3)、一个类可以有多个构造函数 (重载), 文件同名。 根据参数的不同决定执行哪一个 实例 4)、如果程序中没有定义构造方法,则创 造实例时使用的是缺省方法,它是一 个无内容的空方法
类派生过程中,重新改写父类的方法----覆盖
例如:声明三个同名方法area求圆、矩形、和三角 形的面积
3.0
public double area(double r)

2.0 ,3.0 public double area(double a , double b) 3.0 ,4.0 ,5.0
public double area(double a , double b , double c)
三、类的定义
定义在所有方法之外 3、声明或定义类的方法 的变量是类的成员变 量,定义在方法之内 声明成员方法的格式为 : [<修饰符>] [static] <返回值类型 > <方法名> ([< 的变量是普通变量。
参数列表>]) { [<方法体>] } 其中,〈修饰符〉和成员变量的修饰符一样, 含义也相同。 例如: public void SetDate(int y, int m, int d){...}

第三章-面向对象程序设计(答案)

第三章-面向对象程序设计(答案)

一、判断题1、一个Java源程序可有多个类,但只仅有一个public类,而且程序名与public类名相同。

对2、如果类A和类B在同一个包中,则除了私有成员外,类A可以访问类B中所有的成员。

对3、接口中的成员变量全部为常量,方法为抽象方法。

对4、抽象类可以有构造方法,可以直接实例化。

错5、对static方法的调用可以不需要类实例。

对6、包含抽象方法的类一定是抽象类。

对7、方法中的形参可以和方法所属类的属性同名。

对8、接口无构造器,不能有实例,也不能定义常量。

错9、类的实例对象的生命周括实例对象的创建、使用、废弃、垃圾的回收。

对10、Java应用程序的入口main方法只有一种定义法。

对二、选择题1、下列答案正确的是(A)A) 在同一个Java源文件中可以包含多个类,只能有一个被声明为publicB) 在同一个Java源文件中只能包含一个类,并被声明为publicC) 在同一个Java源文件中可以包含多个类,都可以被声明为publicD) 在同一个Java源文件中可以包含多个类,只能有一个被声明为default2、Java实现动态多态性是通过( B )实现的。

A) 重载B) 覆盖C) 接口D) 抽象类3、下列哪一个是正确的方法重载描述(A)A) 重载方法的参数类型必须不同B) 重载方法的参数名称必须不同C) 返回值类型必须不同D) 修饰词必须不同4、final关键字不可以用来修饰( D )A) 类B) 成员方法C) 域D) 接口5、接口的所有成员方法都具有( B )属性A) private, final B) public, abstractC) static, protected D) static6、Java的封装性是通过(A)实现的A) 访问控制B) 设计内部类C) 静态域和静态方法D) 包7、下列接口或类不属于java.util.*包的是( D )A) Collection B) V ector C) Map D) Integer8、下述哪一组方法,是一个类中方法重载的正确写法?(A)A) int addV alue( int a, int b ){return a+b;}float addV alue ( float a, float b) {return a+b;}B) int addV alue (int a, int b ){value=a+b; }float addV alue ( int a, int b) {return (float)(a+b);}C) int addV alue( int a, int b ){return a+1;}int addV alue ( int a, int b) {return a+b;}D) int addV alue( int a, int b ) {return a+b;}int addV alue ( int x, int y ) {return x+y;}9、下列说法哪个是正确的?( C )A) 子类不能定义和父类同名同参数的方法B) 子类只能继承父类的方法,而不能重载C) 重载就是一个类中有多个同名但有不同形参和方法体的方法D) 子类只能覆盖父类的方法,而不能重载10、对于下列代码:public class Parent {public int addV alue( int a, int b) {int s;s = a+b;return s;}}class Child extends Parent {}下述哪个方法不可以加入类Child? ( B )A) public int addV alue( int a, int b,int c ){// do something...}B) public void addV alue (int a, int b ){// do something...}C) public int addV alue( int a ){// do something...}D) public int addV alue( int a, int b ) {//do something...}11、以下程序段输出结果的是( B )public class A implements B {public static void main(String args[]) {int i;A c1 = new A();i= c1.k;System.out.println("i="+i);}}interface B {int k = 10;}A) i=0 B) i=10 C) 程序有编译错误D) i=true12、阅读下面的程序,输出结果是( B )public class TestDemo {int m=5;public void some(int x) {m=x;}public static void main(String args []) {new Demo().some(7);}}class Demo extends TestDemo {int m=8;public void some(int x) {super.some(x);System.out.println(m);}}A) 5 B) 8 C) 7 D) 编译错误13、下述哪个说法是不正确的?(A)A) 局部变量在使用之前无需初始化,因为有该变量类型的默认值B) 类成员变量由系统自动进行初始化,也无需初始化C) 参数的作用域就是所在的方法D) for语句中定义的变量,当for语句执行完时,该变量就消亡了14、下述那一个保留字不是类及类成员的访问控制符。

第3章 面向对象编程基础

第3章 面向对象编程基础

3.1.2 面向对象程序设计语言的三大原则
2. 继承 继承是面向对象编程技术的一块基石,通过它可以创建分等级层次的类。例如, 创建一个汽车的通用类,它定义了汽车的一般属性(如:车轮、方向盘、发 动机、车门)和操作方法(如:前进、倒退、刹车、转弯等)。从这个已有 的类可以通过继承的方法派生出新的子类,卡车、轿车、客车等,它们都是 汽车类的更具体的类,每个具体的类还可增加自己一些特有的东西。如图 3.2所示,更一般地表示如图3.3所示。
3.2.3 构造函数
3.2.2 类的成员
【例3.1】通过构造函数对只读字段赋值。 using System; public class Area { public readonly double Radius; // Radius是只读字段 private double x, y ; public double Size ; public static double Sum=0.0 ; public Area ( ) { Radius=1.0; // 通过构造函数对radius赋值 } } class Test { public static void Main( ) { Area s1 = new Area( ); Console.WriteLine ("Radius={0}, Size={1},Sum={2}",s1.Radius,s1.Size , Area.Sum); // 静态字段通过类访问Area.Sum,实例字段通过对象访问s1.Size Console.Read (); } }
public Time (int h, int m, int s) { hour=h; minute=m; second=s; }
} class Test { static void Main() { Time t1, t2, t3, t4 ; // 对t1, t2, t3, t4分别调用不同的构造函数 t1= new Time (); t2 = new Time(8); t3 = new Time(8, 30); t4 = new Time(8,30,30); } }

面向对象程序设计基础

面向对象程序设计基础
第 14 页
class Trash_Car extends Car {
double amount;
public void fill_trash() {…}
public void push_break() {
speed = speed – 10; }
}
09.07.2020
面向对象的概念
❖方法的重载(Overload)
第3章 面向对象程序设计基 础
1
面向对象的概念
❖所谓面向对象的方法,就是使我们分析、设计和实现一个系 统的方法尽可能自然地使用我们在生活中用到的以对象为中 心的思想,分析、认识、设计一个系统的方法。包括:
➢ 面向对象分析(OOA, Object-Oriented Analysis) ➢ 面向对象设计(OOD, Object-Oriented Design) ➢ 面向对象程序设计(OOP, Object-Oriented Program) ❖面向对象技术主要围绕以下几个概念讨论: ➢对象的封装(抽象数据类型)、类与对象、 继承性、多态 性。
1、面向对象的概念
❖子类(Subclass) 子类是作为另一个类的扩充或修正而定义的一个类。
bicycle (Super class)
Subclass
Mountain bikes
第 12 页
Racing bikes
Tandem bikes
09.07.2020
面向对象的概念
❖继承(Inheritance)
相似的对象可以归并到同一个类中去,就像传统语言中的 变量与数据类型关系一样。
❖对象
程序中的对象是类的一个实例,是一个软件单元,它由一 组结构化的数据和在其上的一组操作构成。

第三章 面向对象程序设计

第三章 面向对象程序设计

第三章面向对象程序设计OOP即面向对象程序设计;Object__Oriented Programming一、类与对象传统程序设计方法是面向过程,而现在是采用面向对象,如:C就是采用结构化面向过程;其数据和处理数据的程序是分离的C++是采用面向对象,是将数据和处理数据的函数封装到一个类中。

而使用类数据变量则称为对象,在一个对象内,只有属于该对象的函数,才可以存取该对象的数据,其它函数是不能对它进行操作的,从而达到保护和隐藏的效果。

1、面向过程:(1)采用自顶向下(2)分解若干个模块(3)设计数据结构(4)设计过程或函数2、新的程序设计范型:对象、类、继承、封装、消息等概念进行程序设计。

(一)类Class类是对一类客观对象的存在和行为进行抽象后的,以数据和代码共同封装为形式的描述。

类是聚集类型,不是数据类型,因为它还可以定义一些能对象C语言中定义的成员数据类型和元素进行操作的函数。

A、类定义1、面向对象过程将数据及处理数据的相应函数“封装”到一个类中,而我们用类的对象进行对数据的存取的过程叫面向对象过程。

2、什麽是类类(class)是C++语言中,可由软件开发者定义的聚集类型,它不仅可以定义一些成员数据的类型和元素,而却还可以定义一些能对这些数据进行操作的函数,可以说,类(class)是对一类客观对象的存在和行为进行抽象后的,以数据和代码共同封装为形式的描述。

3、类的定义class Stack{ private:int i;public:void push(int n);protected:char m;};class是关键字,Stack是类的名字类内有三种模式:(1)私有模式private可缺省,能够却只能被本类内定义的函数所访问,如果一个类的所有成分都是私有模式,那麽这个类的封装就成了一个绝对的黑匣子,与外界不能传递消息与信息(2)公共模式public可以被本类以内及本类对象的外部世界所访问,外部世界是通过调用其中的函数来向类的封装传递消息的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
this.id=id;
}
Student(String n,String s,int a){
name=n;
sex=s;
age=a;
}
}
public class TestStudent
{
public static void main(String[] arge)
{
Student s1=new Student("20130923");
(3)使用已定义的用户类、系统类主要有三种方式:直接使用系统类、继承系统类和创建已定义的用户类、系统类的对象。
【10】什么是继承?如何定义继承关系?
答:继承用于创建可重用、扩展和修改在其他类中定义的行为的新类。 被继承的类称为“基类”,继承“基类”的类称为“派生类”。 派生的类可以有一个直接基类。 继承是可传递的。java中通过关键自“extends”来继承,为 *is a * 的关系。
【8】什么是抽象方法?如何定义、使用抽象方法?
【9】包的作用是什么?如何在程序中引入已定义的类?使用已定义的用户类、系统口封装在一起,方便了类和接口的管理和调用。
(2)要引入包中已定义的类,必须使用关键字import来导入这些类所在的包。Import语句的一般格式为:import 包名.类名
class Student
{
String id;
String name;
String sex;
int age;
void talk(){
System.out.println("大家好!我的id号"+id+"我叫"+name+" "+sex+"今年"+age+"岁。");
}
Student(){}
Student(String id){
classStudent
{
String id;
String name;
String sex;
int age;
void talk(){
System.out.println("大家好!我的id号"+id+"我叫"+name+" "+sex+"今年"+age+"岁。");
}
Student(){}
Student(String id){
错误之处:(1)构造方法Student()前不能加void,(2)不能用return语句,(3)类名Student首字母S改成小写s.
【4】定义一个表示学生的student类,包括的域有学号、姓名、性别、年龄,包括的方法有获得学号、姓名、性别、年龄及修改年龄。编写Java程序创建student类的对象及测试其方法的功能。
="张强";
s1.sex="男";
s1.age=22;
s1.talk();
}
}
【5】扩充、修改程序。为第4题的student类定义构造函数初始化所有的域,增加一个方法public String printInfo()把student类对象的所有域信息组合形成一个字符串,并在主类中创建学生对象及测试各方法的功能。
答:方法的定义由两部分组成:方法声明和方法体。
方法的声明如下:
返回值类型方法名(参数类型形式参数1,参数类型形式参数2…){
程序代码;
返回值;
}
在面向对象程序设计中,方法的作用是完成对类和对象属性操作。
【3】简述构造方法的功能和特点。下面的程序片段是某学生为student类编写的构造方法,请指出其中的错误。
void Student(int no,String name)
{
studentNo=no;
studentName=name;
return no;
}
答:构造方法的功能是:构造方法是一个特殊的方法,主要用于初始化新创建的对象;
特点:构造方法的方法名要求与类名相同,用户不能直接调用,只能通过new运算符调用,而且构造方法是不返回任何数据类型,甚至也不返回void数据类型,即不能在构造方法前加void。
}
}
【6】什么是修饰符?修饰符的种类有哪些?它们各有什么作用?
答:(1)修饰符是用于限定类对象使用的权限,从而实现类中成员的信息隐藏。访问修饰符适用于类成员,而不是方法内部的局部变量。
(2)Java常见的访问修饰符有4种:private、default、protected和public。
(3)public可以被所有的类访问;pravite 只能被类本身访问,其他类无法访问;protected可以被类本身、它的子类(包括同一个包中以及不同包中的子类);default属于默认的访问状态,可以被类本身和同一个包中的类访问

【1】什么是Java程序使用的类?什么是类库?
答:类是将一类事物的特性描述出来,然后如果用这个类来定义对象,则该对象就拥有了这个类所描述的所有特性。
在Java系统中,系统定义好的类根据实现的功能不同,可以划分成不同的集合,每个集合称为一个包,所有包合称为类库。
【2】如何定义方法?在面向对象程序设计中方法有什么作用?
【11】什么是多态,如何实现多态?
答:多态是指一个程序中同名的不同方法共存的情况。这些方法同名的原因是它们的最终功能和目的都相同,但是由于在完成同一功能时,可能遇到不同的具体情况,所以需要定义含不同的具体内容的方法,来代表多种具体实现形式。多态通常是一个消息在不同的类中用不同的方法实现的。
{
public static void main(String[] arge)
{
Student s1=new Student("20130923");
="张强";
s1.sex="男";
s1.age=22;
s1.talk();
System.out.println(s1.printInfo());
this.id=id;
}
Student(String n,String s,int a){
name=n;
sex=s;
age=a;
}
public String printInfo()
{
return name+"的学号是"+this.id+",今年"+age+"岁。我是"+sex+"生。";
}
}
public class TestStudent
【7】什么是抽象类?为什么要引入抽象类的概念?
答:抽象类是用来描述人们在对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。抽象类不具备实际功能,是专门设计用来让子类继承的类,把这些具有共同特征的方法抽象出来,由子类负责这些抽象方法的实现细节,而父类仅提供此方法的名称和声明、没有方法的主体。
相关文档
最新文档