chp4

Size: px
Start display at page:

Download "chp4"

Transcription

1 Java 软件开发基础 4. 面向对象的程序设计基础

2 4.1 面向对象基础 对象 现实世界中复杂的对象是由许多小的 简单的对象组成的 客观存在的物体就是最基本的对象 不同的物体有共性, 共性存在于个性之中, 物体的个性又继承了共性 对象的状态属性 对象蕴含着许多信息, 可以用一组状态来表征 对象的行为操作 对象内部含有对数据的操作, 即对象的行为操作 某类事物的抽象 某类对象是对现实世界具有共同特性的某类事物的抽象 对象间的关联和作用 面向对象技术正是利用对现实世界中对象的抽象和对象之间相互关联 相互作用的描述来对现实世界进行模拟, 并且使其映射到目标系统中, 对象之间存在相互关联和相互作用

3 面向对象软件的开发过程 面向对象的程序设计和问题求解力求符合人们日常自然的思维习惯, 降低 分解问题的难度和复杂性, 提高整个求解过程的可控制性 可监测性和可维护性, 从而达到以较小的代价和较高的效率获得较满意效果的目的 面向对象的分析 (OOA:Object Oriented Analysis) 明确用户需求, 并用标准化的面向对象的模型规范地表述这一需求, 最后将形成面向对象的分析模型, 即 OOA 模型 这一阶段应由用户和开发人员共同完成 面向对象的设计 (OOD:Object Oriented Design) 将对 OOA 模型加以扩展, 引入界面管理 任务管理和数据管理三部分内容, 得到 OOD 模型, 并对最初的 OOD 模型做进一步的细化分析 设计和验证 在明确各对象类的功能和组成时, 充分利用已存在的 可获得的对象类或组件

4 在较大型的开发项目中, 通常设置专人专门负责管理所有的可重用资源, 将这些资源组织成类库或其他的可重用结构 面向对象的实现 (OOP:Object Oriented Programming) 就是具体的程序编码阶段, 主要任务如下 : 选择一种合适的面向对象的编程语言 ; 用选定的语言编码实现详细设计过程 ; 用相关的公式 图表 说明和规则等对软件系统各对象与类进行详尽的描述 ; 将编写好的各个类代码块根据类的相互关系集成 ; 利用开发人员提供的测试样例和用户提供的测试样例分别检验代码完成的各个模块和整个软件系统 在面向对象的开发过程中, 测试工作可以随着整个实现阶段编码工作的深入而同步完成 编程阶段完成后进入运行阶段

5 4.2 类 类的概念 类是对某类对象的抽象描述, 将数据属性及其相关操作封装在一起的集合体, 它是对象的模板或蓝图 每一个对象都含有特征与行为, 将其中的共性进行抽象描述, 就形成了类 尺寸型号生产厂家用户 关闭 打开 调音 调频

6

7 类与对象的关系 类的定义格式 类声明 类体 类的修饰符 : 用来说明类的属性, 可分为访问控制符和非访问控制符两类 访问控制符 public: 表示该类可以被任何对象或类来调用或引用, 包括同一个包或不同包中的类访问 一个程序中只能有一个公共类

8 private: 表示只能被该类的方法访问和修改, 而不能被任何其他类 包括该类的子类来获取和引用, 这是系统默认的修饰符 非访问控制符 abstract: 抽象类 表示该类是无具体对象的抽象类, 这是一种特殊的类, 它不能实例化, 即不能用 new 关键字来生成该类的对象, 只能由其派生子类 其抽象方法的具体实现也由继承该抽象类的子类来完成 final: 表示该类为最终类, 不能再由它派生新的子类 注意 : 抽象类可以同常规类一样, 具有数据和方法, 包含抽象方法的类必须声明为抽象类 abstract 和 final 不能修饰同一个类 关键字 class extends: 指明该类的父类 ( 如果有的话 ) implements: 用来引出接口, 以供本类中使用, 接口可以有多个

9 类体 方法 用于完成变量 ( 属性 ) 的说明以及方法 ( 行为 ) 的定义与实现 围绕着类的属性进行各种操作 ; 与其他的类或对象进行数据交流 消息传递等操作 整个类的详细结构

10

11 4.3 成员变量 变量包括以下几种 成员变量 (Data field): 也称为字段, 定义在类中, 是类成员的一部分, 整个类都可以访问它 方法或者代码块中的变量 (local variable): 即局部变量 方法声明中的变量 (parameter): 也称为形式参数 成员变量的声明 零个或多个修饰符 字段类型 字段名称 修饰符 [ 修饰符 ] 类型成员变量名 ; 缺省访问修饰符 : 同 friendly 修饰符, 修饰的成员变量可以被同一包 (package) 中的任何类访问 ;

12 public: 修饰的成员变量称为公共变量, 可以被项目文件中的任何方法访问 由于 public 成员变量不受限制, 这易使类的对象引起不希望的修改, 破坏系统的封装性, 建议成员变量尽量不要使用 public 修饰符 ; protected: 修饰的成员变量称为保护变量, 可以被有继承关系的类自由访问, 即子类可以访问它 ; 也可以由同一个包中的其它类访问 private: 修饰的成员变量称为私有变量, 只能被定义它的类使用, 而不能被其他任何类使用 这种方式通常是最安全的, 在 Java 程序开发中通常使用该修饰符实现数据的封装 ; private protected: 私有保护访问控制符 只允许该类本身以及子类访问, 把同一个包中的其他类严格排除在外, 使得成员变量更专有于具有明确继承关系的类, 而不是松散组合在一起的包

13 成员变量修饰符访问权限 修饰符 public private protected 默认修饰符 private protected 类 P P P P P 同一个包 P O P P P 子类 其它包 同一个包 其它包 static: 修饰的成员变量又称为类变量, 不加 static 修饰的成员变量又叫对象变量 对象变量依附于具体的对象实例, 它的值因具体对象实例的不同而不同, 而类变量为该类的所有对象所共享, 它的值不因类的对象不同而不同 P O P O P P O P P O 其它类 P O O O O

14 用该修饰符修饰的成员变量不是被保存在由该类创建的某个具体对象的存储单元中, 而是被保存在该类内存区域的一个公共的存储单元中 静态变量在类被载入时创建, 只要类存在, 静态变量就可见, 该静态变量由该类所创建的所有对象共享 所有的操作都是针对该内存单元 访问方式如下 : 实例 :N 个人顺次等待电梯并使用的例程 类 WaitE 的属性 对象名. 成员变量名 电梯的位置 电梯运行速度 人所在的位置 人要去的目的地 类名. 成员变量名

15 属性 static int epoint=0; final int speed=10; int spoint; int dpoint; 类的方法 获得电梯位置 获得电梯速度 构造方法

16 打印等待时间 打印乘坐时间 对于某个具体等待电梯的人的操作 创建并初始化 ( 即此人在哪一楼层, 要去往哪一楼层 ) 打印等待时间 将电梯置位为该对象目前所在的楼层 打印乘坐时间 将电梯置位为该对象到达的楼层

17

18

19 final: 修饰的成员变量叫最终成员变量, 亦即常量 一开始创建该变量时将其设了一个初始值, 在以后程序的运行过程当中, 变量的值将一直保持这个值不变 Java 中的常量必须是类的成员 对于最终成员变量, 任何赋值都将导致编译错误 因为常量在声明以后就不能改变其值, 所以常量必须要初始化 无论是实例变量, 还是类变量, 都可以被说明成常量 final 修饰符和 static 修饰符并不冲突 常量例程 class EFinal{ public static void main(string args[]){ System.out.println(Tom.MIN); Tom tom=new Tom(); System.out.println(tom.MIN+tom.MAX); } } class Tom{ final int MAX=70; static final int MIN=30; }

20 4.4 方法 概述 方法是类的主要组成部分, 又称为成员方法, 用来规定类属性上的操作, 改变对象的属性与产生行为, 实现类的内部功能的机制, 接收来自其他对象的信息以及向其他对象发送消息 方法同时也是类与外界进行交互的重要窗口 通常一个类由一个主方法和若干个子方法构成 主方法调用其他方法, 其他方法间也可以互相调用, 同一个方法可以被一个或多个方法调用 方法实现子任务处理的原则和规律 : 算法中需要细化的步骤 重复的代码以及重载父类方法都可以定义成类的方法 ; 方法应界面清晰 大小适中 Java 应用程序中, 程序的执行从主方法即 main 方法开始, 调用其他方法后返回到 main 方法, 并在 main 方法中结束整个程序的运行

21 定义格式 方法头 方法体 修饰符 public: 公共方法, 可被所有类访问 ; private: 私有方法, 只能被定义它的类 方法访问 ; protected: 保护方法, 可以定义它的类及其子类 同一个包中的其它类访问, 该修饰符的目的就是为了使其他包中的子类可以访问父类中的成员变量和方法 ; abstract: 抽象方法, 仅有方法头而没有具体方法体的方法, 所有的抽象方法必须存在于抽象类中 ; final: 最终方法, 不能被覆盖或重载 ;

22 synchronized: 可完成同步监控代理, 被该修饰符修饰的方法, 一次只能被一个线程使用, 进而可以控制多个并发线程的访问 ; native: 集成其他语言的代码 static: 静态方法或类方法 属于整个类的方法, 可通过类名直接调用 ; 如何判断一个变量或方法定义为实例的还是静态的? 如果一个变量或方法依赖于类的具体实例, 就应该定义为实例变量或实例方法 ; 如果一个变量或方法不依赖于类的具体实例, 就应该定义为静态变量或静态方法 本应该声明为静态方法而声明为实例方法是常见的设计错误 变量 在方法体中定义的变量以及方法的参数称为局部变量, 方法的参数在整个方法内有效, 方法内定义的局部变量自它被定义的位置之后到方法体结束之间有效

23 参数列表 是方法的输入接口, 列出了一系列参数的形式, 包括个数 类型和名称, 这类参数只有在运行时才分配存储单元, 被称为 形式参数 对于方法定义中的每一个参数必须合法, 调用时必须由一个实参量与其对应, 参量的个数 类型必须与对应的形参的个数 类型完全一致 方法也可以没有参数 方法不能嵌套定义 返回值类型 可以是任意的 Java 类型, 甚至可以是定义此方法的类或者方法可实现接口, 如果方法没有返回值, 则用 void 表示 在区分多个同名方法时, 编辑器不会考虑返回值类型, 所以不能声明两个参数列表相同而返回值不同的同名方法 当方法使用一个类名作为返回值类型时, 返回对象的类型必须是返回类型指定的类或者它的子类

24 throws 异常列表 规定了在方法执行中可能导致的异常 方法体 方法体是实现这个方法的代码段 ; 当方法体是一个 ; 时表示无方法体, 该类没有实现 当且仅当方法的修饰符中有 abstract 或 native 时, 方法才无方法体 方法的分类 用户自定义的方法 标准方法 方法的调用 程序调用方法 : 需要程序书写专门的调用命令来调用的方法 ; 系统方法 : 运行过程中不需书写专门命令而由系统自动调用的方法

25 方法的调用格式 [ 对象引用名.] 方法 ([ 实际参数列表 ]) 实际参数列表是传递给方法的参数, 可以是常量 变量或表达式, 个数 类型 顺序应该与形式参数一一对应 ; 在类中调用类自身的方法可以直接使用该方法名称 ; 否则需要使用前缀 ; 调用方法的执行过程是 : 首先将实际参数传递给形式参数, 然后执行方法体, 执行结束后从调用方法语句的下一句继续执行

26 方法调用例程 public class ScircleArea { static double scircle(int r) { double ss; ss=3.14*r*r; return(ss); } static void Area(int a,int b) { int s; s=a*b; System.out.println(s); } public static void main(string args[]) { int x=5,y=4; double result=scircle(x); System.out.println(result); Area(x,y); System.out.println(scircle(y)); } } 例程输出结果 方法表达式调用 方法语句调用 输出语句调用

27

28

29 参数 参数传递 指在 Java 语言中调用一个带有形参的方法时, 完成所提供的实参与形参的传输结合的过程 形参是方法声明中的变量清单 ; 实参 (argument) 是调用方法时传递给方法的实际值 Java 不允许将方法传递给方法, 但是可以将对象传递给方法, 然后调用这个对象的方法 传递方式 传值 : 若方法参数为简单数据类型, 将实参的值传递给形参, 方法接受实参的值, 但是不能改变 ; 传引用 : 若方法参数是复合数据类型, 则将对象的引用传递给方法

30 参数传递例程 public class Swap { static void swapxy(int x,int y) { int temp; System.out.print( 交换前 : ); System.out.println( x= +x+,y= +y); temp=x;x=y;y=temp; Sytem.out.print( 交换后 ); System.out.println( x= +x+,y= +y); } public static void main(string args[]) { int u=30,v=50; System.out.print( 调用前 : ); System.out.println( u= +u+,v= +v); swapxy(u,v); System.out.print( 调用后 : ); System.out.println( u= +u+,v= +v); } } 例程输出结果 调用前 :u=30,v=50 交换前 :x=30,y=50 交换后 x=50,y=30 调用后 :u=30,v=50

31

32 参数名称 在参数的作用域内, 参数的名称必须唯一 参数名称可以和一个类的字段名称相同, 如果这样使用, 该参数被称为使这个字段遮蔽 (shadow) 遮蔽的字段会使代码难以阅读 在上述语句中,setOrigin 方法的两个参数将该类的同名字段遮蔽, 若在方法体内部使用简单名称 x 和 y, 则表示引用参数, 而不是引用该类的字段 如果要访问字段, 必须使用限定名称 按照惯例, 遮蔽只在设置特定字段的构造方法或者方法中使用

33 任意数量的实参 当不知道有多少个特定类型的实参要传递给方法时, 可以使用可变参数 (vararg) 方法体中的代码将把参数作为数组来处理 格式如下 [ 修饰符 ] 返回值类型方法名 ([ 形式参数列表,] 最后一个参数的类型 参数名称 ) 最常用到可变参数的地方是输出方法, 如 public PrintStream printf(string format, Object args)

34 特殊的方法调用 递归 递归是指用自身结构来描述自己 循环调用 例如 : 阶层 n! = n ( n 1)! n! = 1 Fibonacci 数列 n 2 n = 1 F( n) = F( n 1) + F( n 2) F(1) = F(2) = 1 递归方法有直接递归方法和间接递归方法 方法体中又调用自身称为直接递归方法 ; 方法体中调用的虽然不是自身, 但是它间接调用了自身, 称为间接递归方法 递归方法调用涉及两个概念 : 栈 : 数据依次入栈, 后进先出 递归方法调用数据的保留 : 每调用一次便分配一次局部变量, 待调用结束局部变量就释放 但从递归过程的执行可以看出, 上一次调用的执行尚未结束, 下一次调用就开始了 所以递归调用的数据保留采用栈来解决 n 3

35

36 1 fac(5)? 1 fac(5)? 2 fac(4)? 2 fac(4)? 3 fac(3)? 3 fac(3)? 4 fac(2)? 4 fac(2) 2 5 fac(1)? 由于 n 不等于 1, 所以连续执行 4 次 fac(n-1) 第四次 n=1, 所以 fac(1)=1, 退栈一次, 弹出栈顶数据 1 fac(5)? 5 fac(5) fac(4)? 3 fac(3) 6 再一次执行 fac(n)=n*fac(n- 1), 得到 fac(n)=6, 退栈 以后的步骤类似, 最后一次执行,n 为 5,fac(4)=24,fac(5)=120

37 4.5 对象与构造方法 对象的创建 一个类可以创建多个实例对象, 对象的生成包括声明 实例化和初始化 对象的生命周期为 : 创建使用销毁回收 语法格式 类名对象名 ; 对象名 =new 类名 ([ 参数列表 ]); new 后带小括号的类名称为构造方法 默认的 最简单的构造方法是不带参数的 执行操作 在指定类上创建了一个对象 ; 为该对象分配了引用内存空间 ; 类名对象名 =new 类名 ([ 参数列表 ]); 执行由指定类所定义的构造方法, 完成一系列初始化工作

38 注意 : 在初始化工作时如果没有给属性赋值, 虚拟机会自动给它们赋予相应数据类型默认的初值 构造方法 类创建对象时需要使用构造方法, 以便为类所创建的对象一个合理的初始状态 特点 名字必须与它所在类的名字完全相同, 并且不返回任何数据类型 ; Java 中每个类都有构造方法, 在 new 运算符完成操作前, 构造方法立刻自动调用, 用来完成初始化该类的对象 ; Java 允许一个类中有若干个构造方法, 但这些构造方法的参数必须不同

39 如果程序中没有显示的编写构造方法, 则 Java 将为该类创建一个默认的构造方法 重载经常用于构造方法, 构造方法也可以继承 注意 虽然编译器会自动为没有构造方法的所有类提供无参数的默认构造方法, 但是这个默认构造方法会调用该类的父类的无参数构造方法 此时, 如果父类没有无参数构造方法, 编译器就会指出问题 所以必须检查其父类是否具有无参数构造方法 当然, 如果该类没有为它显式的定义父类, 则它的隐式父类是 Object 类, 该类的确具有无参数构造方法 构造方法实例 : 矩形类的构造 属性 : 矩形长 矩形高 矩形中心所在坐标点

40 坐标点类 横坐标 纵坐标 构造方法 矩形类构造方法

41 类中定义的其他方法 关键字 this 在构造方法中,this 引用当前对象, 即被调用的构造方法所属的对象 通过使用 this 关键字, 可以在构造方法中引用当前对象的任何成员 对字段使用关键字 this 这种情况的最常见原因是构造方法的参数遮蔽了对象的成员字段

42 对构造方法本身使用 this 使用 this 关键字调用同一个类中的另一个构造方法, 称为显式构造方法调用 (explicit constructor invocation) 格式如下 : this( 参数列表 ); 编译器根据参数的数量和类型判断应该调用哪个构造方法 如果存在, 对另一个构造方法的调用必须是构造方法中的第一行

43 用四个 0 值调用四个参数的构造方法 用两个 0 值和 width height 值调用四个参数的构造方法

44 使用对象 引用成员变量 : 定义 创建及初始化一个对象以后, 就可以引用该对象的成员变量 类对象已经创建 对象名. 成员变量名 创建对象与引用成员变量同时进行 new 构造方法名 ([ 参数列表 ]). 成员变量名 注意, 用这种语句来获取成员变量的方法, 当执行完该语句之后, 程序再也不具有对创建出的该对象类的引用, 因为程序从未把该引用存储到任何位置 对象被解除引用, 并且其资源被 Java 虚拟机回收

45 引用成员方法 : 定义 创建及初始化一个对象以后, 就可以引用该对象的成员方法 类对象已经创建 对象名. 成员方法名 ([ 参数列表 ]) 创建对象与引用成员变量同时进行 new 构造方法名 ([ 参数列表 ]). 成员方法名 ([ 参数列表 ]) 常见的编程错误 : -- 带有 void 关键字的构造函数构造函数本身没有返回类型, 当为构造函数提供了 void 返回类型时, 它就不再是构造函数, 而仅仅是一个普通的实例方法, 该方法名字与构造函数相同 该错误并不会引起编译错误, 而当需要创建实例的时候就会找不到相应的构造方法

46

47 对象的清除 当不存在对一个对象的引用时, 该对象成为一个无用对象 Java 的运行环境周期性的检测某个实体是否已经不再被任何对象所引用, 如果存在, 则收集并释放它占有的内存空间 并非实例 类变量和方法的所有组合都被允许使用 实例方法可以直接访问实例变量和实例方法 实例方法可以直接访问类变量和类方法 类方法可以直接访问类变量和类方法 类方法不能直接访问实例变量和实例方法, 它们必须通过对象引用

48 4.6 复合数据类型数组 复合数据类型数组的定义和基本数据类型结构定义类似, 步骤如下 : 声明数组对象 类名数组名 []; 创建, 并初始化数组的长度 类名数组名 =new 类名 [ 数组的大小 ]; 初始化每个数组中的元素 ( 即对象 ) 数组名 [ 下标 ]=new 类名 ([ 参数列表 ]); 经过以上步骤才为每个数组元素分配了存储空间, 才可以引用复合数据类型数组中的元素

49 实例 : 为某个班级创建一个学生类, 并生成实例进行操作, 判断是否能获得奖学金 类的声明 分析学生类应该具有的属性 姓名 班级 平均分 家庭年收入

50 成员方法 获取姓名 获取班级 获取平均分 获取家庭年收入

51 构造方法 采用带有三个参数的构造方法, 为学生的三个属性进行初始化 通过复合数据类型数组在另一个类中生成 4 个学生对象

52 打印学生信息 判断是否有学生获得奖学金

53

54 修改器 : 用于修改对象内部状态的实例方法 ; 一般说来, 修改器都会修改对象中某个字段的值, 作为一种约定, 修改器方法的名称往往以 set 开头, 加上需要修改的字段名称 通常修改器方法的返回值为 void 类型, 而它的参数是对象的新状态或对现有状态的改变量 访问器 : 只访问对象的状态信息, 但不修改它们的实例方法 ; 访问器会返回对象中某个字段的值, 作为一种约定, 访问器方法的名称往往以 get 或 is 开头, 加上需要访问的字段名称 通常访问器方法没有参数, 但必须有返回值

55 面向对象程序设计方法的优点 * 面向对象方法的特性 抽象性 (Abstraction) 是具体事物一般化的过程, 即对具有特定属性的对象进行概括, 从中归纳出该类对象的共性, 并从通用性的角度描述共有的属性和行为特征 抽象使得系统能够抓住事物的实质特征, 因此具有普遍性, 可以使用在不同的问题中 抽象包括以下两方面内容 : 数据抽象 : 描述某类对象的共同属性 方法抽象 : 描述某类对象的行为特征 Java 中, 通过定义属性和行为来表述对象的特征和功能, 通过定义接口来描述它们的地位以及与其他对象的关系, 最终形成一个广泛联系的 可理解 可扩充 可维护 更接近于问题本来面目的动态对象模型系统

56 封装性 (Encapsulation) 利用抽象数据类型将数据和基于数据的操作封装在一起, 即把对象的属性和行为结合成一个独立的相同单位, 并尽可能隐蔽对象的内部细节 封装的特点是使某类能建立起严格的内部结构, 保护好内部数据, 减少外界的干扰, 以保证类自身的独立性, 可工作在不同的环境中 对象以外的部分不能随意存取对象的内部数据 ( 属性 ), 从而有效的避免了外部错误对它的错误影响, 使软件错误局部化, 进而大大减少查错和排错的难度 继承性 (Inheritance) 是面向对象程序设计中最具魅力的特色, 是软件复用的一种形式, 对降低软件的复杂性行之有效 使得程序结构清晰 降低编码和维护的工作量, 提高了系统效率 Java 中的所有类都是通过直接或间接的继承 java.lang.object 类得到

57 采用对象但没有继承性的语言是基于对象的语言, 不是面向对象的语言 新类由已经存在的类 ( 父类 ) 生成, 通过保留它们的属性和行为, 并且根据新类自身的特色和要求加以修改, 增加新的属性和行为 通过继承得到的类称为子类, 被继承的类称为父类 类继承就是子类继承父类的成员变量和方法, 作为自己的成员变量和方法, 就好像它们是在子类中直接声明的一样 当然, 子类能否继承父类的变量和方法还有一定的限制 子类从父类继承主要包括以下两方面 : 属性 方法 继承的分类 单继承 多继承 : 子类从一个以上的父类继承,Java 不支持多继承

58 多态性 (Polymorphism) 指程序中同名的不同方法共存的情况下,Java 根据调用方法时传送参数的多少及传送参数的类型来调用具体不同的方法, 即可采用同样的方法获得不同的行为特征 在运行时自动选择正确的方法进行调用称为动态绑定 (Dynamic Binding) 多态性可提高程序的抽象程度, 使得一个类在使用其他类的功能 操作时, 不必了解该类的内部细节, 只需明确它提供的外部接口 多态的两种情况 覆盖 (Override): 子类对继承自父类的方法重新定义 重载 (Overload): 在同一个类中定义多个同名的不同方法

59 面向对象程序设计方法的优点 可重用性 可扩展性 可管理性 可自律性 可分离性 接口和消息机制

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d

More information

1 下列类头定义中, 正确的是 面向对象程序设计网络课程 A class x { } B public x extends y { } C public class x extends y {.} D class x extends y implements y1 { } 2 现有两个类 A B,

1 下列类头定义中, 正确的是 面向对象程序设计网络课程 A class x { } B public x extends y { } C public class x extends y {.} D class x extends y implements y1 { } 2 现有两个类 A B, 1 下列类头定义中, 正确的是 A class x B public x extends y C public class x extends y. D class x extends y implements y1 2 现有两个类 A B, 以下描述中表示 B 继承自 A 的是 (D ) A) class A extends B B) class B implements A C) class A

More information

软件工程文档编制

软件工程文档编制 实训抽象类 一 实训目标 掌握抽象类的定义 使用 掌握运行时多态 二 知识点 抽象类的语法格式如下 : public abstract class ClassName abstract void 方法名称 ( 参数 ); // 非抽象方法的实现代码 在使用抽象类时需要注意如下几点 : 1 抽象类不能被实例化, 实例化的工作应该交由它的子类来完成 2 抽象方法必须由子类来进行重写 3 只要包含一个抽象方法的抽象类,

More information

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d =

More information

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课 复习 Java 包 创建包 : package 语句, 包结构与目录结构一致 使用包 : import restaurant/ - people/ - Cook.class - Waiter.class - tools/ - Fork.class

More information

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP:  ******************* * 关于 Java 测试试题 ****** ******************* * 关于 Java 测试试题 ******************* 問 1 运行下面的程序, 选出一个正确的运行结果 public class Sample { public static void main(string[] args) { int[] test = { 1, 2, 3, 4, 5 ; for(int i = 1 ; i System.out.print(test[i]);

More information

OOP with Java 通知 Project 3 提交时间 3 月 29 日晚 9 点 Piazza Project 2 投票

OOP with Java 通知 Project 3 提交时间 3 月 29 日晚 9 点 Piazza Project 2 投票 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 3 提交时间 3 月 29 日晚 9 点 Piazza Project 2 投票 复习 创建对象 构造函数 函数重载 : 函数 = 函数名 + 参数列表 public class MyType { int i; double d; char c; void set(double x)

More information

模板

模板 制作人 : 张刚 目录 类和对象 面向对象程序设计基本特征 类的声明 构造方法 成员变量和方法 封装 继承 多态 包 访问控制 final static 抽象类和接口 内部类 沈阳工业大学软件学院 Java 课程教研组 Page 2 核心知识点 类 对象 三个基本特征 类的基本结构 成员变量 构造方法 成员方法 类实例 对象创建和操作 沈阳工业大学软件学院 Java 课程教研组 Page 3 1.

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc 第 3 章 lambda 表达式及其应用 lambda 表达式是 Java 8 提供的一种新特性, 它使得 Java 也能像 C# 和 C++ 语言一样进行简单的 函数式编程, 这不仅简化了某些通用结构的实现方式, 也大大增强了 Java 语言的表达功能 3.1 lambda 表达式简介 lambda 表达式是基于数学中的 λ 演算得名, 本质上就是一个没有方法名的匿名方法 例如, 有一个方法定义如下

More information

Microsoft PowerPoint - 6. 用户定义类型User-defined Datatypes.ppt [兼容模式]

Microsoft PowerPoint - 6. 用户定义类型User-defined Datatypes.ppt [兼容模式] 用户定义类型 User-defined Datatypes classes and structs 几何向量 (Geometry Vector) 二维平面上的向量由起点和终点构成 每个点包含两个坐标 (x, y), 因此一个向量需要四个实数表示 Start= (0.9,1.5) Start= (0.4,0.8) int main() { double xstart = 0.4; double xend

More information

Microsoft Word - 新1-12.doc

Microsoft Word - 新1-12.doc 实训 5 面向对象编程练习 实训 5 面向对象编程练习 5.1 实训目的 通过编程和上机实验理解 Java 语言是如何体现面向对象编程基本思想 以及如何创建类 和对象 了解成员变量和成员方法的特性 5.2 实训要求 编写一个体现面向对象思想的程序 编写一个创建对象和使用对象的方法的程序 5.3 实训内容 5.3.1 创建对象并使用对象 1 定义一个 Person 类 可以在应用程序中使用该类 成员属性

More information

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 复习 Java 包 创建包 : package 语句, 包结构与目录结构一致 使用包 : import restaurant/ - people/ - Cook.class - Waiter.class - tools/ - Fork.class - Table.class

More information

无类继承.key

无类继承.key 无类继承 JavaScript 面向对象的根基 周爱 民 / aimingoo aiming@gmail.com https://aimingoo.github.io https://github.com/aimingoo rand = new Person("Rand McKinnon",... https://docs.oracle.com/cd/e19957-01/816-6408-10/object.htm#1193255

More information

OOP with Java 通知 Project 4: 推迟至 4 月 25 日晚 9 点

OOP with Java 通知 Project 4: 推迟至 4 月 25 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 推迟至 4 月 25 日晚 9 点 复习 Protected 可以被子类 / 同一包中的类访问, 不能被其他类访问 弱化的 private 同时赋予 package access class MyType { public int i; public double d; public

More information

Microsoft PowerPoint - 08_OO_CJC.ppt

Microsoft PowerPoint - 08_OO_CJC.ppt C++ 中的 Hello World! C 程序设计语言 第 8 章 OO 与 C++ Java C# 孙志岗 sun@hit.edu.cn http://sunner.cn 兼容 C 语言的 : #include int main() printf("hello,, world!\n"); return 0; 更具 C++ 味道的 : #include int

More information

教案模板4-2

教案模板4-2 传智播客 Java 基础入门 教学设计 课程名称 : Java 基础入门 授课年级 : 2014 年级 授课学期 : 2014 学年第一学期 教师姓名 : 某某老师 2014 年 02 月 09 日 课题名称第 3 章面向对象上 计划学时 6 课时 Java 是一种面向对象的语言, 认识面向对象的编程思想对于 Java 学习至关重 内容分析 要 在面向对象中, 有两个重要的概念, 分别是类和对象,

More information

Microsoft PowerPoint - 8. 运算符重载 Operator Overloading.pptx

Microsoft PowerPoint - 8. 运算符重载 Operator Overloading.pptx 运算符重载 Operator Overloading class Point { public: ; double x_, y_; Why Operator Overloading? Point (double x =0, double y = 0):x_(x),y_(y) { int main(){ Point a(1., 2), b(3,4); Point c = a + b; return 0;

More information

Microsoft PowerPoint - 3. 函数Functionl.ppt [兼容模式]

Microsoft PowerPoint - 3. 函数Functionl.ppt [兼容模式] 函数 Function 如何重用代码 How to reuse code 3 4 = 3*3*3*3 3 4,6 5 : 拷贝 - 粘帖代码 (Copy-paste code) 3 4,6 5,12 10 : 拷贝 - 粘帖代码 (Copy-paste code) Bad! 使用函数 (with a function) 使用函数 (with a function) 使用函数 (with a function)

More information

Microsoft Word - word模板-教师.doc

Microsoft Word - word模板-教师.doc 传智播客 Java 基础入门 教学设计 课程名称 : Java 基础入门 授课年级 : 2014 年级 授课学期 : 2014 学年第一学期 教师姓名 : 某某老师 2014 年 02 月 09 日 课题名称内容分析教学目标及基本要求重点及措施难点及措施 计划第 3 章面向对象上 6 课时学时 Java 是一种面向对象的语言, 认识面向对象的编程思想对于 Java 学习至关重要 在面向对象中, 有两个重要的概念,

More information

chp5_1

chp5_1 Java 软件设计基础 5. 继承与多态 类的封装 类的特性 Java 程序设计的基本单位是类, 类是用来创建具体对象的模板, 有以下三个重要特性 : 封装 Java 语言中, 对象就是对一组变量和相关方法的封装 (Encapsulation), 通过对对象的封装, 实现模块化和信息隐藏 通过对类的成员辅以一定的访问限制, 实现类中成员的信息隐藏 继承 继承 (inheritance) 允许创建分等级层次的类,

More information

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢   学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Java 类型 引用 不可变类型 对象存储位置 作用域 OOP

More information

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 odps-sdk 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基 开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 310-065Big5 Title : Sun Certified Programmer for the Java 2 Platform, SE 6.0 Version : Demo 1 / 14 1. 35. String #name = "Jane Doe"; 36. int

More information

OOP with Java 通知 Project 3: 4 月 19 日晚 9 点

OOP with Java 通知 Project 3: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 3: 4 月 19 日晚 9 点 复习 Upcasting 同一基类的不同子类可以被视为同一类型 ( 基类 ) 放宽类型一致性 简化接口 class A{ class B{ A a = new A(); B b = new B(); // A a = new B(); compile

More information

Microsoft Word - 第2章.doc

Microsoft Word - 第2章.doc 2 第第 2 章 学习第 1 章后, 读者已经对 Java 语言有了初步的了解, 本章将具体解析 Java 类的组成元素 任何一个 Java 类, 都有 5 种基本组成元素 : 属性 方法 构造方法 块和内部类 其中属性 方法 构造方法是使用最多的元素, 而块 内部类使用较少 本章将对各种元素进行学习 Java 类基本结构 2.1 类 类 Java 类的声明形式 访问权限修饰符 修饰符 class

More information

新・解きながら学ぶJava

新・解きながら学ぶJava 481! 41, 74!= 40, 270 " 4 % 23, 25 %% 121 %c 425 %d 121 %o 121 %x 121 & 199 && 48 ' 81, 425 ( ) 14, 17 ( ) 128 ( ) 183 * 23 */ 3, 390 ++ 79 ++ 80 += 93 + 22 + 23 + 279 + 14 + 124 + 7, 148, 16 -- 79 --

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 Protected 可以被子类 / 同一包中的类访问, 不能被其他类访问 弱化的 private 同时赋予 package access class MyType { public int i; public double d; public char

More information

姓名 : 年级专业 : 学号 : 凡年级专业 姓名 学号错写 漏写或字迹不清者, 成绩按零分记 密 封 线 java 较难 试卷 总分 题号 一 二 三 四 五 题分 得分 D 国际通信协议 4 下面选项中, 不是面向对象的特征的是 ( ) A 封装 B 继承 得分 一 单选题 ( 每题 3 分,

姓名 : 年级专业 : 学号 : 凡年级专业 姓名 学号错写 漏写或字迹不清者, 成绩按零分记 密 封 线 java 较难 试卷 总分 题号 一 二 三 四 五 题分 得分 D 国际通信协议 4 下面选项中, 不是面向对象的特征的是 ( ) A 封装 B 继承 得分 一 单选题 ( 每题 3 分, java 较难 试卷 总分 题号 一 二 三 四 五 题分 D 国际通信协议 4 下面选项中, 不是面向对象的特征的是 ( ) A 封装 B 继承 一 单选题 ( 每题 3 分, 共计 15 分 ) 1 下列修饰符中, 成员内部类被 ( ) 修饰后, 可以被外界访问 C 多态 D 重构 5 下列关于构造方法重载的说法中, 错误的是 () A 不同构造方法中调用本类其它的构造方法时, 需要使用 this([

More information

Spring3.x开发入门

Spring3.x开发入门 Spring Bean 管理 Spring 的工厂类 课程安排 Spring 的 Bean 管理 (XML 方式 ) Spring 的属性注入 (XML 方式 ) Spring 的 Bean 管理 ( 注解方式 ) Spring 的属性注入 ( 注解方式 ) Spring 的工厂类 Spring 的 Bean 管理 (XML 方式 ) 三种实例化 Bean 的方式 使用类构造器实例化 ( 默认无参数

More information

第3 章 类 对象与方法 3.1 类 类的定义 在 Objective-C 中 每个类的定义包括两个部分 接口 interface 和实现 implementation 接口部 分定义在.h 文件中 包含类的声明 属性以及方法 主要作用是对外提供访问接口 实现部分定义在.m 文件中 主要

第3 章 类 对象与方法 3.1 类 类的定义 在 Objective-C 中 每个类的定义包括两个部分 接口 interface 和实现 implementation 接口部 分定义在.h 文件中 包含类的声明 属性以及方法 主要作用是对外提供访问接口 实现部分定义在.m 文件中 主要 第3 章 类 对象与方法 3.1 类 3.1.1 类的定义 在 Objective-C 中 每个类的定义包括两个部分 接口 interface 和实现 implementation 接口部 分定义在.h 文件中 包含类的声明 属性以及方法 主要作用是对外提供访问接口 实现部分定义在.m 文件中 主要用于方法的功能实现 这种定义类的方法 好处在于将公共声明 接口 与代码实现分开 对外屏蔽了功能实现的细节

More information

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 复习 Protected 可以被子类 / 同一包中的类访问, 不能被其他类访问 弱化的 private 同时赋予 package access class MyType { public int i; public double d; public char

More information

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入 100 年 特 種 考 試 地 方 政 府 公 務 人 員 考 試 試 題 等 別 : 三 等 考 試 類 科 : 資 訊 處 理 科 目 : 系 統 分 析 與 設 計 一 請 參 考 下 列 旅 館 管 理 系 統 的 使 用 案 例 圖 (Use Case Diagram) 撰 寫 預 約 房 間 的 使 用 案 例 規 格 書 (Use Case Specification), 繪 出 入

More information

《计算概论》课程 第十九讲 C 程序设计语言应用

《计算概论》课程 第十九讲  C 程序设计语言应用 Java 高级技术 课程第二讲 Java 语言的面向对象特性 (2) 李戈 北京大学信息科学技术学院软件研究所 2010 年 3 月 21 日 课程助教 : 前言 黎育龙 (10817195@pub.ss.pku.edu.cn) Email 标题 :Java 高级技术 + 题目 请不要把作业发到我的信箱 ; 新的课程网站 http://www.ontoedu.pku.edu.cn/index.jsp

More information

Guava学习之Resources

Guava学习之Resources Resources 提供提供操作 classpath 路径下所有资源的方法 除非另有说明, 否则类中所有方法的参数都不能为 null 虽然有些方法的参数是 URL 类型的, 但是这些方法实现通常不是以 HTTP 完成的 ; 同时这些资源也非 classpath 路径下的 下面两个函数都是根据资源的名称得到其绝对路径, 从函数里面可以看出,Resources 类中的 getresource 函数都是基于

More information

chap07.key

chap07.key #include void two(); void three(); int main() printf("i'm in main.\n"); two(); return 0; void two() printf("i'm in two.\n"); three(); void three() printf("i'm in three.\n"); void, int 标识符逗号分隔,

More information

OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢

OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 复习 : Java 类型 基本类型 boolean, char, 封装 (wrappers) 类 (class) 定义 class MyType { int i;

More information

OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点

OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点 复习 : Java 类型 基本类型 boolean, char, 封装 (wrappers) 类 (class) 定义 class MyType { int i; double d; 数据 (Fields) char c; void set(double

More information

Microsoft PowerPoint - 04-Inheritance.ppt

Microsoft PowerPoint - 04-Inheritance.ppt 继承 派生与多态性 1 本章主要内容 类的继承与派生 类成员的访问控制 简单继承与多重继承 派生类的构造 析构函数 多态性 2 1 类的继承与派生 保持已有类的特性, 并在其基础上产生新的类, 称新类继承了已有类的特征, 或称已有类派生出新类 被继承的已有类称为基类 ( 或父类 ) 派生出的新类称为派生类 派生类将自动继承基类的所有特性 ( 属性和方法 ) 派生类可以定义新的特性 ( 属性和方法 )

More information

Microsoft Word - JCS5.doc

Microsoft Word - JCS5.doc 第 5 章进一步讨论对象和类 5.1 抽象数据类型 5.1.1 概述 绝大多数程序设计语言都预定义了一些基本数据类型, 并相应定义了对那些类型的实例执行的操作 比如, 对整型 实型等数值类型, 有加 减 乘 除等操作 ; 对逻辑类型, 有逻辑与 逻辑或 逻辑非等操作 对于用户自定义的复合数据类型, 需要由程序员自己定义一些方法, 对该类型的实例进行所需的操作 在早期许多程序设计语言中, 复合数据类型及其相关操作的代码之间没有特殊的联系

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

第三章面向对象基本特性 面向对象程序设计是一种先进的编程思想, 更加容易解决复杂的问题 面向对象系统最突出的特性是封装性 继承性和多态性 学习完本章节, 您能够 : 理解封装的概念 实现对象封装特性 实现继承特性 使用接口 掌握对象的多态性 任务 3.1 保护个人数据 情境描述 Tom

第三章面向对象基本特性 面向对象程序设计是一种先进的编程思想, 更加容易解决复杂的问题 面向对象系统最突出的特性是封装性 继承性和多态性 学习完本章节, 您能够 : 理解封装的概念 实现对象封装特性 实现继承特性 使用接口 掌握对象的多态性 任务 3.1 保护个人数据 情境描述 Tom 第三章面向对象基本特性 面向对象程序设计是一种先进的编程思想, 更加容易解决复杂的问题 面向对象系统最突出的特性是封装性 继承性和多态性 学习完本章节, 您能够 : 理解封装的概念 实现对象封装特性 实现继承特性 使用接口 掌握对象的多态性 任务 3.1 保护个人数据 3.1.1 情境描述 Tom 设计的 A 类员工类, 外部可以直接访问它的成员变量, 在现实社会中, 一个对象的 某些属性外界是不可以得知的,

More information

Guava学习之CharSequenceReader

Guava学习之CharSequenceReader CharSequenceReader 类是以 CharSequence 的形式读取字符 CharSequenceReader 类继承自 Reader 类, 除了 remaining() hasremaining() 以及 checkopen() 函数之后, 其他的函数都是重写 Reader 类中的函数 CharSequenceReader 类声明没有用 public 关键字, 所以我们暂时还不能调用这个类

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc 第 3 章 对象和类 在当今的计算机大型应用软件开发领域, 面向对象技术正在逐步取代面向过程的程序设计技术 本章将介绍面向对象的基本知识和 Java 实现面向对象程序设计的主要工具 类 如果读者缺乏关于面向对象程序设计的背景, 一定要仔细阅读本章 如果读者有 C++ 编程经验, 也要注意二者之间的区别, 毕竟 Java 在类的具体实现上与 C++ 有较大的差别 学习本章面向对象的相关知识, 主要内容有以下几点

More information

Mac Java import com.apple.mrj.*;... public class MyFirstApp extends JFrame implements ActionListener, MRJAboutHandler, MRJQuitHandler {... public MyFirstApp() {... MRJApplicationUtils.registerAboutHandler(this);

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc CHAPTER3 第 3 章 面向对象程序设计 Java 语言是一种面向对象的高级程序语言 应用面向对象语言求解问题的基本思路是 : 首先分析问题并建立相应的对象, 然后通过这些对象以及它们之间的配合解决问题, 其中每个对象在计算机中占用一定的内存, 同时能够完成一定的功能 这种基本思想实际上是模拟现实生活求解问题的一般过程 在现实生活中, 任何一个人或任何一种物体都可以被认为是对象 例如 : 人一般拥有手

More information

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌 语 言 程 序 设 计 郑 莉 胡 家 威 编 著 清 华 大 学 逸 夫 图 书 馆 北 京 内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌 握 语

More information

C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1 1 TEMPLATE 1 Template 描述 使用模板函数求最大值 使用如下 main 函数对程序进行测试 int main() { double a, b; cin >> a >> b; cout c >> d; cout

More information

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例 帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc CHAPTER3 面向对象程序设计 第 3 章 Java 语言是一种面向对象的高级程序语言 应用面向对象语言求解问题的基本思路是, 首先分析问题并建立相应的对象, 然后通过这些对象以及它们之间的配合解决问题, 其中每个对象在计算机中占用一定的内存, 同时能够完成一定的功能 这种基本思想实际上是模拟现实生活求解问题的一般过程 在现实生活中, 任何一个人或任何一种物体都可以被认为是对象 例如, 人一般拥有手

More information

untitled

untitled 1 Outline 類别 欄 (1) 類 類 狀 更 易 類 理 若 類 利 來 利 using 來 namespace 類 ; (2) namespace IBM class Notebook namespace Compaq class Notebook 類别 類 來 類 列 欄 (field) (property) (method) (event) 類 例 立 來 車 類 類 立 車 欄 料

More information

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款 JAVA 程 序 设 计 ( 肆 ) 徐 东 / 数 学 系 使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款 使 用 Java class 代 表 保 险 箱 public class SaveBox 类 名 类 类 体 实 现 封 装 性 使 用 class SaveBox 代 表 保

More information

<4D F736F F D204A617661B3CCD0F2C9E8BCC6D3EBCAB5BCF9BDCCB3CCA3A8B5DA32B0E6A3A920B5DA35D5C22E646F63>

<4D F736F F D204A617661B3CCD0F2C9E8BCC6D3EBCAB5BCF9BDCCB3CCA3A8B5DA32B0E6A3A920B5DA35D5C22E646F63> 第 5 章 类类和对象和对象 教学目标 : 掌握类的构造方法的定义 作用, 以及如何实现类的构造方法 掌握如何创建类对象 如何使用类对象 掌握静态成员和实例成员的使用方法, 以及二者之间的区别 掌握类成员的访问权限的设置方法以及使用原则 教学重点 : 本章首先要求读者掌握对象的定义和引用的方法, 在此基础上深入理解静态成员和实例成员的定义及其应用 方法重载及其作用, 类的封装和访问控制权限 5.1

More information

博学谷 让 IT 教学更简单, 让 IT 学习更有效 第五章补充案例 案例 5-1 声明类 一 案例描述 1 考核知识点类的声明 2 练习目标 掌握声明一个类的语法格式 掌握如何在类中声明成员变量和成员方法 3 需求分析在程序中, 设计一个表示学生的类, 该类具有以下属性和方法 : 该类具有表示姓名

博学谷 让 IT 教学更简单, 让 IT 学习更有效 第五章补充案例 案例 5-1 声明类 一 案例描述 1 考核知识点类的声明 2 练习目标 掌握声明一个类的语法格式 掌握如何在类中声明成员变量和成员方法 3 需求分析在程序中, 设计一个表示学生的类, 该类具有以下属性和方法 : 该类具有表示姓名 第五章补充案例 案例 5-1 声明类 1 考核知识点类的声明 掌握声明一个类的语法格式 掌握如何在类中声明成员变量和成员方法 3 需求分析在程序中, 设计一个表示学生的类, 该类具有以下属性和方法 : 该类具有表示姓名的属性 该类具有表示性别的属性 该类具有表示说话行为的 sayhello() 方法, 并且用于输出学生的姓名 1) 使用 class 关键字定义一个表示学生类型的类, 类名为 Student

More information

2. AOP 底层技术实现 小风 Java 实战系列教程 关键词 : 代理模式 代理模型分为两种 : 1) 接口代理 (JDK 动态代理 ) 2) 子类代理 (Cglib 子类代理 ) 需求 :CustomerService 业务类, 有 save,update 方法, 希望在 save,updat

2. AOP 底层技术实现 小风 Java 实战系列教程 关键词 : 代理模式 代理模型分为两种 : 1) 接口代理 (JDK 动态代理 ) 2) 子类代理 (Cglib 子类代理 ) 需求 :CustomerService 业务类, 有 save,update 方法, 希望在 save,updat 本章学习目标 小风 Java 实战系列教程 AOP 思想概述 AOP 底层技术实现 AOP 术语介绍 SpringAOP 的 XML 方式 HelloWorld SpringAOP 的 XML 方式配置细节 SpringAOP 的注解方式 SpringAOP 的零配置方式 1. AOP 思想概述 1.1. AOP 思想简介 1.2. AOP 的作用 2. AOP 底层技术实现 小风 Java 实战系列教程

More information

Microsoft Word - 第5章.doc

Microsoft Word - 第5章.doc 第 5 章 面向对象编程 除了基本的类和对象,Java 语言的面向对象编程还包括抽象类 接口 内部类及包等高级特性 通过对这些高级特性的支持,Java 语言全面实现了面向对象的编程 本章将进一步深入介绍 Java 语言面向对象编程方面的知识 5.1 类的三大特性 第 4 章介绍了有关类定义的基本知识 面向对象中的类还具有封装 继承与多态的特性, 这也是面向对象编程所具有的重要特点 Java 语言对类的封装

More information

Microsoft PowerPoint - 07 派生数据类型

Microsoft PowerPoint - 07 派生数据类型 能源与动力工程学院 目录 派生类型 陈 斌 固有数据类型 数值型 (numerical) 整型 INTEGER 实型 REAL 复数型 COMPLEX 非数值型 字符型 CHARACTER 逻辑型 ( 布尔型 )LOGICAL 自定义数据类型 ( 派生类型, derived type) 派生类型是指用户利用 Fortran 系统内部类型, 如整型 实型 复数型 逻辑型 字符型等的组合自行创建出一个新的数据类型,

More information

设计模式 Design Patterns

设计模式 Design Patterns 丁勇 Email:18442056@QQ.com 组件技术概述 现在软件开发都已经转向了基于组件的开发, 目前具备代表性的组件技术有微软的 COM COM+, 有 Sun 的 Bean 和 EJB(Enterprise Bean), 另外还有 CORBA(Common Object Request Broker Architecture, 公 共对象请求代理结构 ) Bean Bean 规范将 软件组件

More information

幻灯片 1

幻灯片 1 第三课类和对象 ( 封装 ) 互联网新技术在线教育领航者 1 内容概述 1. 封装的概念 2. 访问控制 3. 栈类的封装 4. 构造与析构 5.myString 构造函数 6. 构造与析构的次序 7. 类文件写法 8. 对象的内存 9.this 指针初探 10. 构造函数初始值列表 11. 拷贝构造和赋值运算符重载 12. 浅拷贝 13. 深拷贝 14. 成员函数内联 15. 友元 16.const

More information

文档 3

文档 3 1 2 3 4 5 6 / A B A B B A 7 8 9 10 11 12 OO A B A B 13 14 15 16 17 18 19 20 21 22 OOA OOA 23 24 25 OOA OOA 26 27 28 29 30 31 32 use case 33 use case 34 35 36 37 OOD OOA OOD 38 OOA 39 OOD 40 41 / 42 OOD

More information

教学内容 1 2 类和对象 Java 面向对象特性

教学内容 1 2 类和对象 Java 面向对象特性 2013-2014 学年度第二学期课程 C 语言程序设计 Java 语言程序设计面向过程编程方法 编程方法学 新疆农业大学计算机与信息工程学院 陈燕红 :cyh@xjau.edu.cn 教学内容 1 2 类和对象 Java 面向对象特性 3 4 5 6 Java 程序的执行过程 经典的 Java 工具包是 JDK 可以用任何文本编辑器, 如记事本, 都可以直接编写 Java 程序然后用 JDK 的命令编译和运行.

More information

JavaIO.PDF

JavaIO.PDF O u t p u t S t ream j a v a. i o. O u t p u t S t r e a m w r i t e () f l u s h () c l o s e () public abstract void write(int b) throws IOException public void write(byte[] data) throws IOException

More information

(procedure-oriented)?? 2

(procedure-oriented)?? 2 1 (procedure-oriented)?? 2 (Objected-Oriented) (class)? (method)? 3 : ( 4 ???? 5 OO 1966 Kisten Nygaard Ole-Johan Dahl Simula Simula 爲 6 Smalltalk Alan Kay 1972 PARC Smalltalk Smalltalk 爲 Smalltalk 爲 Smalltalk

More information

拦截器(Interceptor)的学习

拦截器(Interceptor)的学习 二 拦截器 (Interceptor) 的学习 拦截器可以监听程序的一个或所有方法 拦截器对方法调用流提供了细粒度控制 可以在无状态会话 bean 有状态会话 bean 和消息驱动 bean 上使用它们 拦截器可以是同一 bean 类中的方法或是一个外部类 下面介绍如何在 Session Bean 类中使用外部拦截器类 @Interceptors 注释指定一个或多个在外部类中定义的拦截器 下面拦截器

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 310-055Big5 Title : Sun Certified Programmer for the Java 2 Platform.SE 5.0 Version : Demo 1 / 22 1. 11. public static void parse(string str)

More information

本章学习目标 小风 Java 实战系列教程 SpringMVC 简介 SpringMVC 的入门案例 SpringMVC 流程分析 配置注解映射器和适配器 注解的使用 使用不同方式的跳转页面 1. SpringMVC 简介 Spring web mvc

本章学习目标 小风 Java 实战系列教程 SpringMVC 简介 SpringMVC 的入门案例 SpringMVC 流程分析 配置注解映射器和适配器 注解的使用 使用不同方式的跳转页面 1. SpringMVC 简介 Spring web mvc 本章学习目标 SpringMVC 简介 SpringMVC 的入门案例 SpringMVC 流程分析 配置注解映射器和适配器 配置视图解析器 @RequestMapping 注解的使用 使用不同方式的跳转页面 1. SpringMVC 简介 Spring web mvc 和 Struts2 都属于表现层的框架, 它是 Spring 框架的一部分, 我们可 以从 Spring 的整体结构中看得出来 :

More information

JAVA 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:/

JAVA 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:/ 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:// 不能以数字开头 D._3_ B:// 不能用点和空格 提问 抢答 E.$anothervar C: // 不能用点和空格

More information

슬라이드 1

슬라이드 1 2018-2019 年度第二学期 00106501 计算机图形学 童伟华管理科研楼 1205 室 E-mail: tongwh@ustc.edu.cn 中国科学技术大学数学科学学院 http://math.ustc.edu.cn/ 附讲三 C/C++ 编程 ( 二 ) 2 C++ 特点 C++ 是面对对象 (object oriented) 编程语言 纯面向对象语言 : 指不管什么东西, 都应该存在于对象之中,

More information

01_Service

01_Service 移动平台应用软件开发 Service 主讲 : 张齐勋 zhangqx@ss.pku.edu.cn 移动平台应用软件开发 课程建设小组 北京大学 二零一七年 什么是 Service 与 Activity 一样, 同属 Android 基本组件 后台运行, 不与用户交互, 没有可视化界面 最常见的 Service 如 : 在后台播放歌曲 后台执行文件的下载 同样需在 AndroidManifest.xml

More information

Microsoft Word - 物件導向編程精要.doc

Microsoft Word - 物件導向編程精要.doc Essential Object-Oriented Programming Josh Ko 2007.03.11 object-oriented programming C++ Java OO class object OOP Ruby duck typing complexity abstraction paradigm objects objects model object-oriented

More information

<4D F736F F D20B5DA32D5C220C3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6B3F5B2BD2E646F6378>

<4D F736F F D20B5DA32D5C220C3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6B3F5B2BD2E646F6378> Android 系统下 Java 编程详解 作者 : 华清远见 第 2 章面向对象程序设计初步 本章简介 本章从面向对象的概念出发, 介绍了程序设计种类 面向对象程序设计的特征 ; 介绍了面向对象程序设计中的对象 类 属性等重要概念 ; 并描述了类 属性 方 法的定义和声明 ; 讲述了类的构造器的概念及使用, 介绍对象的创建和使用 讲述 如何通过类的定义来实现信息隐藏和封装 ; 介绍了 Java 源文件的结构,package

More information

第1章 Delphi简介

第1章  Delphi简介 第 3 章 Java 面向对象编程机制 Java 核心技术 计算机程序告诉计算机应该做什么 计算机执行的任何操作都是由程序控制的 程序设计是将计算机要执行的操作或者计算机要解决的问题转变成程序的过程 程序设计的过程主要分为面向过程编程和面向对象编程两种风格, 本书讲解的 Java 语言编程属于面向对象编程技术 本章要点 面向对象编程的基本思想 类与对象 抽象类与接口 Java 简单程序 学习目标 理解面向对象编程的基本思想

More information

EJB-Programming-4-cn.doc

EJB-Programming-4-cn.doc EJB (4) : (Entity Bean Value Object ) JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Session Bean J2EE Session Façade Design Pattern Session Bean Session

More information

运算符重载 为什么要 运算符重载 那些运算符可以重载, 哪些不可以 如何实现运算符重载 实现方式 : 成员函数与非成员函数 类型转换 怎样实现对象与基本数据类型数据的运算 2

运算符重载 为什么要 运算符重载 那些运算符可以重载, 哪些不可以 如何实现运算符重载 实现方式 : 成员函数与非成员函数 类型转换 怎样实现对象与基本数据类型数据的运算 2 第十一讲 运算符重载 与类型转换 运算符重载 为什么要 运算符重载 那些运算符可以重载, 哪些不可以 如何实现运算符重载 实现方式 : 成员函数与非成员函数 类型转换 怎样实现对象与基本数据类型数据的运算 2 为什么要运算符重载 预定义的运算符只针对基本数据类型, 若要对类的对象进行类似的运算, 需要重新定义运算符的功能 运算符重载实质就是函数重载 : 对已有的运算符赋予多重含义, 使得同一个运算符作用于不同类型的数据时导致不同的行为

More information

<4D F736F F F696E74202D20B5DA3032BDB25FC0E0BACDB6D4CFF3312E BBCE6C8DDC4A3CABD5D>

<4D F736F F F696E74202D20B5DA3032BDB25FC0E0BACDB6D4CFF3312E BBCE6C8DDC4A3CABD5D> 程序设计实习 (I): C++ 程序设计 第二讲类和对象 (1) 面向对象的程序设计 面向对象的程序设计方法, 能够较好解决结构化程序设计中出现的问题 面向对象的程序 = 类 + 类 + + 类 设计程序的过程, 就是设计类的过程 2 面向对象的程序设计 面向对象的程序设计方法 : 将某类客观事物共同特点 ( 属性 ) 归纳出来, 形成一个数据结 构 ( 可以用多个变量描述事物的属性 ); 将这类事物所能进行的行为也归纳出来,

More information

extend

extend (object oriented) Encapsulation Inheritance Polymorphism Dynamic Binding (base class) (derived class) 1 class Base { int I; void X(); void Y(); class Derived: public Base { private: int j; void z(); Derived

More information

<4D F736F F F696E74202D C DB5DA3131D5C25FBCCCB3D0BACDB6E0CCAC2E BBCE6C8DDC4A3CABD5D>

<4D F736F F F696E74202D C DB5DA3131D5C25FBCCCB3D0BACDB6E0CCAC2E BBCE6C8DDC4A3CABD5D> 第 11 章继承和多态 1 动因 假设要定义一个类来对圆 矩形和三角形建模 这些类有 很多共同的特性 设计这些类来避免冗余的最好的方式是 什么? 答案就是使用继承 2 学习目标 通过继承由父类创建子类 ( 第 11.2 节 ) 使用关键字 super 调用父类的构造方法和方法 ( 第 11.3 节 ) 在子类中覆盖实例方法 ( 第 11.4 节 ) 区分覆盖和重载的不同 ( 第 11.5 节 ) 探究

More information

Microsoft PowerPoint - 7. 面向对象程序设计-Object-Oriented Programming.ppt [兼容模式]

Microsoft PowerPoint - 7. 面向对象程序设计-Object-Oriented Programming.ppt [兼容模式] 面向对象程序设计 Object-Oriented Programming(OOP) Classes,Inheritance, Polymorphism A Survey of Programming Techniques Unstructured programming, procedural programming, modular programming and object-oriented

More information

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 -> 目录 1 大概思路... 1 2 创建 WebAPI... 1 3 创建 CrossMainController 并编写... 1 4 Nuget 安装 microsoft.aspnet.webapi.cors... 4 5 跨域设置路由... 4 6 编写 Jquery EasyUI 界面... 5 7 运行效果... 7 8 总结... 7 1 1 大概思路 创建 WebAPI 创建 CrossMainController

More information

OOP with Java 通知 Project 2 提交时间 : 3 月 21 日晚 9 点 作业提交格式 学习使用 文本编辑器 cmd, PowerShell (Windows), terminal(linux, Mac)

OOP with Java 通知 Project 2 提交时间 : 3 月 21 日晚 9 点 作业提交格式 学习使用 文本编辑器 cmd, PowerShell (Windows), terminal(linux, Mac) OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 21 日晚 9 点 作业提交格式 学习使用 文本编辑器 cmd, PowerShell (Windows), terminal(linux, Mac) 复习 面向对象编程 将实际问题分解成不同的对象 不的对象提供不同的服务 对象之间可以传递消息 例子小李深夜

More information

Microsoft Word - 第5章.doc

Microsoft Word - 第5章.doc 上机实践 5 子类与继承 实验 1 中国人 北京人和美国人 1 相关知识点 由继承而得到的类称为子类, 被继承的类称为父类 ( 超类 ),Java 不支持多重继承, 即子类只能有一个父类 人们习惯地称子类与父类的关系是 is-a 关系 如果子类和父类在同一个包中, 那么, 子类自然地继承了其父类中不是 private 的成员变量作为自己的成员变量, 并且也自然地继承了父类中不是 private 的方法作为自己的方法,

More information

Chapter 9: Objects and Classes

Chapter 9: Objects and Classes Fortran Algol Pascal Modula-2 BCPL C Simula SmallTalk C++ Ada Java C# C Fortran 5.1 message A B 5.2 1 class Vehicle subclass Car object mycar public class Vehicle extends Object{ public int WheelNum

More information

<4D F736F F F696E74202D20B5DA39D5C220C3E6CFF2B6D4CFF3D3EFD1D4B5C4B1E0D2EB2E BBCE6C8DDC4A3CABD5D>

<4D F736F F F696E74202D20B5DA39D5C220C3E6CFF2B6D4CFF3D3EFD1D4B5C4B1E0D2EB2E BBCE6C8DDC4A3CABD5D> 第 9 章 面向对象语言的编译 本章内容 概述面向对象语言的重要概念和实现技术 以 C++ 语言为例, 介绍如何将 C++ 程序翻译 成 C 程序 实际的编译器大都把 C++ 程序直接翻译成低 级语言程序 91 9.1 面向对象语言的概念 9.1.1 对象和对象类 对象 由一组属性和操作于这组属性的过程组成 属性到值的映射称为对象的状态, 过程称为方法 对象类 一类对象的总称, 规范了该类中对象的属性和方法,

More information

Microsoft PowerPoint - ch12 [Compatibility Mode]

Microsoft PowerPoint - ch12 [Compatibility Mode] 第十二章 面向对象语言的编译 本章内容 概述面向对象语言的重要概念和实现技术 以 C++ 语言为例, 介绍如何将 C++ 程序翻译成 C 程序 实际的编译器大都把 C++ 程序直接翻译成低级语言程序 12.1 面向对象语言的概念 12.1.1 对象和对象类 对象 由一组属性和操作于这组属性的过程组成 属性到值的映射称为对象的状态, 过程称为方法 对象类 一类对象的总称, 规范了该类中对象的属性和方法,

More information

《计算概论》课程 第十九讲 C 程序设计语言应用

《计算概论》课程 第十九讲  C 程序设计语言应用 Java 高级技术 课程第二讲 Java 语言的面向对象特性 (3) 李戈 北京大学信息科学技术学院软件研究所 2010 年 3 月 21 日 进入一个新的主题 抽象类 vs. 接口 抽象类的引出 抽象类 现实世界中一些没有具体对象的纯粹抽象概念, 例如, 鸟 鱼 灯 树 动物 ; 抽象类用于建模现实世界中的纯粹抽象概念 ; 定义方法 : 使用保留字 abstract public abstract

More information

PowerPoint Presentation

PowerPoint Presentation 对象与对象的内存模型 北京理工大学计算机学院 金旭亮 对象的内存模型 对象与类的静态成员 装箱和拆箱 主要内容 提示 : 本讲以 C# 为主介绍, 但所讲内容同样适用于 Java 2 一 对象的内存模型 对象是如何 活 在内存中的? 我们如何访问内存中的这个对象? 代码中定义一个对象变量的含义是什么? 对象变量 与 对象 对象变量用于 引用 一个真实的对象 类 引用 new 对象变量 对象 对象变量保存在线程堆栈中

More information

Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream Class java.io.datainptstream (extends) FilterInputStream InputStream Obj

Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream Class java.io.datainptstream (extends) FilterInputStream InputStream Obj Message Transition 5-1 5-2 DataInputStream Class 5-3 DataOutputStream Class 5-4 PrintStream Class 5-5 (Message Transition) (Exercises) Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream

More information

试卷代号 : 座位号 中央广播电视大学 学年度第一学期 " 开放本科 " 期末考试 面向对象程序设计 ( 本 ) 试题 2011 年 1 月 题号 一 一 一四总分 一 分数 得分 评卷人 - 单选题, 在括号内填写正确的选项编号 { 每小题 2 分, 共

试卷代号 : 座位号 中央广播电视大学 学年度第一学期  开放本科  期末考试 面向对象程序设计 ( 本 ) 试题 2011 年 1 月 题号 一 一 一四总分 一 分数 得分 评卷人 - 单选题, 在括号内填写正确的选项编号 { 每小题 2 分, 共 试卷代号 : 1 2 9 7 座位号 中央广播电视大学 2 0 1 0 2011 学年度第一学期 " 开放本科 " 期末考试 面向对象程序设计 ( 本 ) 试题 2011 年 1 月 题号 一 一 一四总分 一 分数 得分 评卷人 - 单选题, 在括号内填写正确的选项编号 { 每小题 2 分, 共 2 0 分 } 1. Java 是一门 ( ) 语言 A. 机器 B. 汇编 C. 面向过程的高级 D.

More information

2009年3月全国计算机等级考试二级Java语言程序设计笔试试题

2009年3月全国计算机等级考试二级Java语言程序设计笔试试题 2009 年 3 月 全 国 计 算 机 等 级 考 试 笔 试 试 卷 二 级 Java 语 言 程 序 设 计 ( 考 试 时 间 90 分 钟, 满 分 100 分 ) 一 选 择 题 ( 每 题 2 分, 共 70 分 ) 下 列 各 题 A) B) C) D) 四 个 选 项 中, 只 有 一 个 选 项 是 正 确 的 请 将 正 确 选 项 填 涂 在 答 题 卡 相 应 位 置 上,

More information

Microsoft Word - 正文.doc

Microsoft Word - 正文.doc 第 5 章深入讨论类 教学要求 理解引用赋值, 类的静态成员, 重载的概念, 继承 抽象类 接口的概念, 包的作用, 访问控制修饰符的作用 掌握对象的创建与使用, 方法的定义和调用, 构造方法的使用, 方法重载的使用, 通过继承创建新类, 定义和使用接口, 使用包, 使用 import 5.1 对象的创建与销毁 面向对象程序设计的核心是对象, 程序是一系列对象的组合 单个对象能够实现的功能 是有限的,

More information

《大话设计模式》第一章

《大话设计模式》第一章 第 1 章 代 码 无 错 就 是 优? 简 单 工 厂 模 式 1.1 面 试 受 挫 小 菜 今 年 计 算 机 专 业 大 四 了, 学 了 不 少 软 件 开 发 方 面 的 东 西, 也 学 着 编 了 些 小 程 序, 踌 躇 满 志, 一 心 要 找 一 个 好 单 位 当 投 递 了 无 数 份 简 历 后, 终 于 收 到 了 一 个 单 位 的 面 试 通 知, 小 菜 欣 喜

More information

Chapter 9: Objects and Classes

Chapter 9: Objects and Classes Java application Java main applet Web applet Runnable Thread CPU Thread 1 Thread 2 Thread 3 CUP Thread 1 Thread 2 Thread 3 ,,. (new) Thread (runnable) start( ) CPU (running) run ( ) blocked CPU sleep(

More information

Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式]

Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式] 指针 Pointers 变量指针与指针变量 Pointer of a variable 变量与内存 (Variables and Memory) 当你声明一个变量时, 计算机将给该变量一个内存, 可以存储变量的值 当你使用变量时, 计算机将做两步操作 : - 根据变量名查找其对应的地址 ; - 通过地址对该地址的变量内容进行读 (retrieve) 或写 (set) 变量的地址称为变量的指针! C++

More information

没有幻灯片标题

没有幻灯片标题 指针作为函数参数 : 原因 : 1 需要修改一个或多个值,( 用 return 语句不能解决问题 ) 2 执行效率的角度 使用方法 : 在函数原型以及函数首部中需要声明能够接受指针值的形参, 具体的写法为 : 数据类型 * 形参名 如果有多个指针型形参, 则用逗号分隔, 例如 : void swap(int *p1, int *p2) 它说明了形参 p1 p2 是指向整型变量的指针 在函数调用时,

More information

javaexample-02.pdf

javaexample-02.pdf n e w. s t a t i c s t a t i c 3 1 3 2 p u b l i c p r i v a t e p r o t e c t e d j a v a. l a n g. O b j e c t O b j e c t Rect R e c t x 1 y 1 x 2 y 2 R e c t t o S t r i n g ( ) j a v a. l a n g. O

More information

Microsoft Word - 第5章.doc

Microsoft Word - 第5章.doc 第 5 课 深入面向对象编程 在面向对象的概念中, 大家可以知道所有的对象都是通过类来描绘的, 但是反过来却不是这样, 并不是所有的类都是用来描绘对象的 如果一个类中没有包含足够的信息来描绘一个具体的对象, 那么这样的类就是抽象类 由于 Java 语言只支持单继承, 那么接口的存在就弥补了单继承的不足 内部类也是嵌套的类, 方法的重载和重写是 Java 语言多态性的不同表现 本课将深入讲解面向对象编程中的这些类和方法的使用以及包的概念

More information

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6: Chapter 15. Suppressed Exception CH14 Finally Block Java SE 7 try-with-resources JVM cleanup try-with-resources JVM cleanup cleanup Java SE 7 Throwable getsuppressed Throwable[] getsuppressed() Suppressed

More information

public class Phone { String brand; double price; void call(){ System.out.println("hi,how are you doing"); 案例 3-2 对象的创建及对象内存图 1 考核知识点对象的创建和引用 掌握创建对象的方式

public class Phone { String brand; double price; void call(){ System.out.println(hi,how are you doing); 案例 3-2 对象的创建及对象内存图 1 考核知识点对象的创建和引用 掌握创建对象的方式 第三章补充案例 案例 3-1 类的定义 1 考核知识点类的定义 掌握类定义的格式 掌握如何在类中定义成员变量和成员方法 3 需求分析在程序中, 设计一个表示学生的类, 该类具有以下属性和方法 : 该类具有表示姓名的属性 name 该类具有表示年龄的属性 age 该类具有表示说话行为的方法 speak, 并且用于输出学生的姓名和年龄 1) 使用 class 关键字定义一个表示学生类型的类, 类名为 Student

More information

Wy159.mps

Wy159.mps 第 章 系 统 开 发 方 法 管 理 信 息 系 统 开 发 的 效 率 质 量 成 本 及 用 户 的 满 意 程 度, 除 了 管 理 技 术 等 因 素 外, 还 与 系 统 开 发 方 法 密 切 相 关 管 理 信 息 系 统 从 产 生 到 现 在 已 经 发 展 了 许 多 开 发 方 法, 这 些 开 发 方 法 各 自 遵 循 一 定 的 基 本 思 想, 适 用 于 一 定 的

More information