chp5_1

Size: px
Start display at page:

Download "chp5_1"

Transcription

1 Java 软件设计基础 5. 继承与多态

2 类的封装 类的特性 Java 程序设计的基本单位是类, 类是用来创建具体对象的模板, 有以下三个重要特性 : 封装 Java 语言中, 对象就是对一组变量和相关方法的封装 (Encapsulation), 通过对对象的封装, 实现模块化和信息隐藏 通过对类的成员辅以一定的访问限制, 实现类中成员的信息隐藏 继承 继承 (inheritance) 允许创建分等级层次的类, 在 Java 中, 所有的类都是直接或间接的继承 java.lang.object 得到的 多态 多态 (Polymorphism) 是指同名的不同方法在类程序中共存, 系统根据传递参数个数或类型的不同来决定调用哪一个方法

3 类的封装 封装是将代码及其处理的数据绑定在一起的一种编程机制, 该机制保证了程序和数据不受外部干扰且不易被误用 利用抽象数据类型将数据和基于数据的操作结合在一起, 数据被保护在抽象数据类型的内部, 系统的其他部分只有通过包裹在数据之外被授权的操作, 才能够与这个抽象数据类型进行交互 类是 Java 封装的基本单元 一个类定义了将被一个对象集共享的结构和行为 ; 每一个给定的对象都包含这个类定义的数据和操作 ; 对象也被看成是类的实例 (instance of a class); 类是逻辑结构, 而对象是真正存在的物理实体 封装可以提高程序中数据的完整性和安全性 ; 开发过程的复杂性 ; 减少出错可能 ; 提高类或模块的可重用性

4 访问权限 类中的每个方法或成员变量的访问权限都可以通过修饰符 (public private protected default) 被标记 这种访问权限控制实现了一定范围内的信息隐藏 private 被修饰的成员变量和方法称为私有变量和私有方法 类中限定为 private 的成员变量和方法只能被这个类本身的方法访问, 不能在类外通过名字来访问 Xx has private access in A Xy( ) has private access in A

5 对于私有成员变量和方法, 只有在本类中创建该类的对象时, 这个对象才能访问自己的私有变量和类中的私有方法 私有变量和方法 class Temp{ private int books; Temp(){ books=15; private int getnum(){ return books; public static void main(string args[]){ Temp t1=new Temp(); t1.books=30; int m=t1.getnum(); System.out.println("books="+m); 在类内部创建对象, 可以访问自己的私有变量和私有方法 同一个类的不同对象可以访问对方的私有变量或调用对方的私有方法, 这是因为访问保护是控制在类的级别上, 而不是对象的级别上

6 构造方法也可以限定为 private, 如果一个类的构造方法被声明为私有, 则其他类不能生成该类的一个对象 X 编译报错 protected 类中限定为 protected 的成员可以被这个类本身引用, 被它的子类以及同一个包中所有其他的类访问

7 public 修饰的成员变量和方法被称为公共变量和公共方法, 可被所有的类访问 public 方法的作用是让类的客户了解类提供的服务, 即类的公共接口, 而不必关心类是如何完成任务的 friendly 这是缺省情况, 限定为友好的成员可以被这个类本身和同一个包中的其他类访问, 但是对于包外的所有类就不能访问

8 5.2 类的继承 继承机制 继承是面向对象编程技术的一块基石 继承能够创建一个通用类, 并定义一系列相关项目的一般特性 该类可以被更具体的类继承 每个具体的类都增加一些自己特有的东西 继承是一个对象获得另一个对象的属性的过程 由继承得到的类为子类 (subclass 或 childclass), 也被称为派生类 (derived class) 扩展类 (extended class) 被继承的类为超类 (superclass), 也被称为基类 (base class) 或者父类 (parent class), 包括所有直接或间接被继承的类 ; 类可以从另一个类的子类的子类的子类 继承而来, 最终都是继承自最顶级的类 Object 定义在 Object 中的方法可被所有子类使用

9 Java 平台类层次结构 : 所有类都是 Object 类的后裔 Object ImaginaryNumber 的间接父类 Number ImaginaryNumber 的直接父类 ImaginaryNumber

10 继承支持按层次分类的概念 简单的说, 类的继承性就是新的子类可以从另一个父类派生出来, 并自动拥有父类的全部属性和方法 子类继承父类的成员变量与方法, 就如同在子类中直接声明的一样, 可以被子类中自己声明的任何实例方法所调用 子类继承父类的状态和行为, 同时也可以修改继承自父类的状态和行为, 并添加新的状态和行为 通俗的说法 : 子类更具有特殊性 继承用来为 is-a 关系建模 不要为了重用方法而盲目的派生一个类 例如, 从 Person 类派生 Tree 类毫无意义 子类和父类之间必须存在 is-a 关系 单继承 使得代码更加可靠, 不会出现因多个父类有相同的方法或属性所带来的麻烦

11 按层次分类 继承父类的属性与方法 添加新的特性 ( 包括新的属性与方法 )

12 创建子类 格式 说明 [ 修饰符 ] class 子类名 extends 父类名 { 类体 子类能够继承父类中 public 和 protected 成员变量和方法 ; 如果子类和父类在同一个包内, 子类能继承父类中用默认修饰符修饰的成员变量和方法 ; 一般情况下, 子类不能继承父类中的 private 成员变量和方法 ; 这里要特别说明的是, 因为嵌套类可以访问其外部类的所有私有成员, 所以, 若子类是继承自某公共或者受保护嵌套类, 则可以间接访问 ( 关于嵌套类, 我们将在下节课中讲解 ) 若缺省 extends 子句, 则该类为 java.lang.object 的子类

13 Xc has private access in SuperClass

14 如果子类声明了一个与父类中的成员同名的成员, 则子类不继承父类中的同名成员 ; 以上程序将打印 5, 表明子类 Sub 中并未继承父类的 a

15 构造方法 与属性和方法不同, 父类的构造方法并不传给子类, 它们只能从子类的构造方法中通过关键字 super 调用 调用父类的构造方法必须使用关键字 super, 并且这个调用必须是构造方法的第一条语句 在子类中使用父类构造方法的名字会引起语法错误 构造方法链 在任何情况下, 构造一个类的实例时, 将会沿着继承链调用所有父类的构造方法, 父类的构造方法在子类的构造方法之前调用

16 构造方法链例程 public class Faculty extends Employee{ public static void main(string args[]){ new Faculty(); public Faculty(){ System.out.println(" 类 Faculty 的无参构造方法 "); class Employee extends Person{ public Employee(){ System.out.println(" 类 Employee 的无参构造方法 "); class Person{ public Person(){ System.out.println(" 类 Person 的无参构造方法 ");

17 关键字 super Java 中通过 super 来实现对父类成员的访问,super 用来引用父类中的方法和变量, 主要是用于继承被隐藏 (hiding) 的成员变量或者被覆盖的方法 使用情况 访问父类被隐藏的成员变量, 其引用格式为 : super. 成员变量名 调用父类被覆盖的方法, 其引用格式为 : super. 方法名 ([ 参数列表 ]) 调用父类的构造方法, 其引用格式为 : super([ 参数列表 ])

18 例程 : 自行车类 自行车类作为父类 三个属性 : 踏板步调 速度 档位 构造方法 提供四个方法 : 设置踏板步调 ; 设置档位 ; 刹车减速 ; 提速 ; 父类 Bicycle public class Bicycle{ public int cadence; public int speed; public int gear; public Bicycle(int sc,int ss,int sg){ gear=sg; speed=ss; cadence=sc; public void setcadence(int newvalue){ cadence=newvalue; public void setgear(int newvalue){ gear=newvalue; public void applybrake(int decrement){ speed-=decrement; public void speedup(int increment){ speed+=increment;

19 自行车下面还有许多子类, 如山地车 公路自行车等 以山地车为例 除了拥有父类的三个属性, 还有座高这一特有的属性 新增的方法 : 设置座高

20 构造方法也可以利用 super 关键字, 改为 :

21 this 与 super 的总结 this 用来引用当前对象,super 用来引用当前父类对象 用 this 和 super 区别分别出现在父类 子类中的同名成员变量和类中方法使用的同名局部变量 子类隐藏了父类的成员变量 子类的方法遮蔽了子类的成员变量

22 this 的使用 可以出现在实例方法和构造方法中, 但不可以出现在类方法中 因为类方法可以直接通过类名直接调用, 这时可能还没有任何对象诞生 this 可以出现在类的构造方法中, 代表使用该构造方法创建的对象 代表创建的对象 exa, 这时 number 还未赋值 ; number 赋值完毕 ;

23 this 可以出现在类的实例方法中, 代表使用该方法的当前对象 类的实例方法可以通过 this 调用该类的其他方法, 或者成员变量 实例方法中的 this class A{ int x; void f(int x){ this.x=x; this.g(); void g(){ this.x++; 在某个对象调用 f 方法的过程中又调用了方法 g 由于这种逻辑关系非常明确, 所以当一个方法调用另一个方法时可以省略 this, 即本条语句等价于 : g();

24 super 的使用 用来访问父类被隐藏的成员变量, 或调用父类被覆盖的方法和构造函数 父类 class Point{ protected int x,y; public Point(){ x=0; y=0; System.out.println( 点的构建 +this.tostring()); public Point(int a,int b){ x=a; y=b; System.out.println( 点的构建 +this.tostring()); public String tostring(){ return [ +x+, +y+ ] ;

25

26 主方法部分 public static void main(string args[]){ Circle circle1=new Circle(); Circle circle2=new Circle(3,4,5);

27 例程 : 成员变量的隐藏和方法的覆盖 父类的成员变量 父类的构造函数 父类的方法

28 子类 class SubClass extends SuperClass{ int x; SubClass(){ x=5; System.out.println( in SubClass:x= +x); void dosomething(){ super.dosomething(); System.out.println( in SubClass.doSomething() ); System.out.println( super.x= +super.x+ ;sub.x= +x); 子类的成员变量隐藏了父类的成员变量 子类的方法覆盖了父类的方法 子类的方法中调用了父类的方法

29

30 分析 : 根据构造方法链的原理, 子类在实例化时, 首先调用父类构造函数, 实例化父类 之后才是子类自身实例化» 这就是为什么上例中会首先打印 in SuperClass:x=3 的原因 将程序片段略作修改 :

31 当运行主程序的 SubClass sub=new SubClass(); 语句时, 上述程序会报错, 原因在于子类实例化之前要实例化父类, 调用父类中的无参数构造方法, 而父类中不存在无参数构造方法 那么, 父类中为什么会不存在无参数的构造方法呢?» 当构造一个类的对象时, 编译器首先判断类是否有构造方法, 如果没有, 则自动加上一个默认构造方法 ; 而一旦发现有构造方法后, 则不再自动加上构造方法» 此时再用无参数的构造方法去创建对象, 就会提示出错, 因为已经没有系统提供的默认构造方法了 如果一个类要生成其他子类, 最好提供一个无参数的构造方法以避免编程错误

32 在上述程序中, 除了在父类中另外再定义一个无参数构造方法外, 还可以显式的调用父类的构造函数, 使用 super 语句 但是这一语句必须是子类构造函数的第一句» 改写如下 :

33 总结 继承的最大好处就是类的可重用性 当创建自己的类时, 应尽可能将它作为某一个类的子类, 在自己的子类中加入一些特殊的内容, 而不必重新定义这个类所需的全部属性和行为 初始化过程总是由高级到低级层次 ; 资源回收过程应从低级到高级层次进行

34 5.3 多态机制 多态 又被称为 一个方法名字, 多个行为结果 通过方法覆盖 (Override) 和方法重载 (Overload) 来实现多态 方法重载 一个类中可以有多个具有相同名字的方法, 由传递给它们的不同个数和类型的参数来决定使用哪种方法 通过重载可以定义同类的操作方法 ( 行为 ), 而不需要取很多个类似又容易混淆的名字 方法的重载是功能多态性的体现 功能多态性是指可以向功能传递不同的消息, 以便让对象根据相应的消息来产生一定的行为

35 重载方法需要满足以下条件 : 方法名相同 ; 方法的参数签名 ( 即参数类型 个数 顺序 ) 不相同 ; 方法的返回类型可以不相同, 方法的修饰符也可以不相同 ; 不能根据方法返回类型的不同来区分重载的方法

36 例程 : 希望根据接收到的不同数据作出不同的反应 根据不同的参数类型 个数 顺序进行判断, 决定到底执行哪个方法

37

38 方法覆盖 如果子类中实例方法的参数签名和返回类型与父类中的实例方法都一样, 就称为子类中的方法覆盖了父类的方法 通过方法覆盖, 子类可以重新实现父类的某些实例方法, 使其具有自己的特征 覆盖方法也可以返回被覆盖方法的返回类型的子类型, 称为协变返回类型 (convariantreturn type) 在方法覆盖中, 子类需要保持与父类完全一致的方法头声明, 否则就不是方法覆盖 有以下情况 : 参数个数 类型 顺序与父类完全相同, 而返回类型类型不同 :

39 方法的覆盖 public class Example{ public static void main(string args[]){ B b=new B(); double d=b.area(); class A{ protected int x=10,y=12; public int area(){ return x*y; class B extends A{ public double area(){ return 3.14*x*y/4; Xarea() in B cannot override area() in A; attempting to use incompatible return type

40 参数个数或参数类型与父类不尽相同, 这时子类出现两个方法具有相同的名字, 但保证了参数的不同, 即子类出现了重载的方法 : 方法的覆盖 public class Example{ public static void main(string args[]){ B b=new B(); double d=b.area(12); System.out.println(d); class A{ protected int r=10; public double area(){ return r*r; class B extends A{ public double area(){ return 3.14*r*r/4; public double area(int x){ return 3.14*r*x/4; 合法覆盖父类的方法后, 可以合法的定义另外的重载方法

41 子类方法缩小了父类方法的访问权限 : 方法的覆盖 public class Example{ public static void main(string args[]){ B b=new B(); double d=b.area(); System.out.println(d); class A{ protected int r=10; public double area(){ return r*r; class B extends A{ protected double area(){ return 3.14*r*r; Xarea() in B cannot override area() in A; attempting to assign weaker access privileges was public

42 方法的隐藏 如果子类定义的类方法的签名和父类中方法的签名相同, 那么子类中的方法就隐藏了超类中的方法 父类的静态方法不可以被子类隐藏为非静态, 父类中的非静态方法不可以被子类覆盖为静态 终止覆盖 为了防止利用属于系统重要信息的类来创建子类和进行方法覆盖, 替换原有的类攻击系统, 防止父类被覆盖, 引入了仲只覆盖的理念, 即 final 修饰符外延性的使用 用 final 修饰类来避免产生子类, 用 final 修饰符修饰父类中的方法就可以避免子类来覆盖此方法 父类的私有方法是隐性 final 的, 不能被子类覆盖

43 5.4 tostring 方法 Java 中的每个类都源于 java.lang.object 类 如果一个类在定义时没有指定继承, 它的父类默认是 Object tostring() 方法 调用对象的 tostring() 方法返回一个代表该对象的字符串 默认情况下, 和该对象十六进制的散列码组成的字符串

44 通常应该覆盖 tostring() 方法, 使它返回一个代表该对象的易懂的字符串 也可以传递对象来调用 : System.out.println(object) System.out.print(object) 这等价于调用 : System.out.println(object.toString()) System.out.print(object.toString())

45 5.5 抽象类 引言 在继承的层次结构中, 随着各新子类的出现, 类变得越来越专门和具体 类的设计应该保证父类包含子类的共同特征, 有时, 将一个父类设计的非常抽象, 以至于它没有具体的实例, 这样的类称为抽象类 (abstract class) 说明 抽象类和常规类一样具有数据和方法, 但是不能用 new 操作符来创建它的实例 ; 抽象方法只有方法头而没有实现, 它的实现由子类提供 子类可以是抽象的, 即使它的父类是具体的

46 非抽象类不能包含抽象方法, 如果一个抽象父类的子类不能实现所有的抽象方法, 它必须声明为抽象的 抽象类不能用 new 操作符实例化, 但仍然可以定义它的构造方法, 可在子类的构造方法中调用 包含抽象方法的类必须是抽象的 但是允许声明没有抽象方法的抽象类

47 例 有以下形状类 : 形状类 public class Shape{ private String color = white ; public String getcolor(){ return color; public void setcolor(string color){ this.color=color; public double getarea(){ public double getperimeter(){

48 当涉及计算面积及周长时, 其方法的实现取决于几何对象的具体类型 当然, 可也以将所有的形状归为一类, 以方法的重载来计算形状的面积及周长, 但这样使得类的特征不够明显 可将 getarea 和 getperimeter 方法定义为抽象方法, 这些方法将在子类中实现 形状类 public abstract class Shape{ private String color = white ; public String getcolor(){ return color; public void setcolor(string color){ this.color=color; public abstract double getarea(); public abstract double getperimeter();

49 子类继承抽象父类, 增加自己特有的属性, 并实现抽象父类的抽象方法

50 具体实例的创建 创建了一个新的圆形与新的矩形, 并把它们赋值给变量 s1 和 s2, 这两个变量的类型是 Shape 当使用 s1.getarea() 时, 由于 s1 是一个圆形, 因此会自动调用 Circle 类中实现的 getarea 方法 调用哪个方法由 JVM 在运行时根据对象的类型动态的决定

51 类型转换 (cast) 分析 从以上语句可看出 mybike 属于 MountainBike 类型 MountainBike 是从 Bicycle 和 Object 派生而来, 因此 MountainBike 是 Bicycle, 也是 Object, 可以在任何能够调用 Bicycle 和 Object 对象的位置使用它 相反的情况并不一定成立 :Bicycle 可能是 MountainBike, 但并不一定是,Object 可能是 Bicycle 或者 MountainBike, 但并不一定是 类型转换允许在一种类型的位置上使用另一种类型的对象, 但是只能在继承和实现允许转换的对象之间进行 类型转换有两种 :

52 隐式类型转换 (implicit cast), 如 : 语句中的 obj 既是 Object 也是 MountainBike 显式类型转换 (explicit cast) 以上语句会出现编译时错误, 因为编译器不知道 obj 是 MountainBike 类, 此时需要通过显式类型转换, 将 MountainBike 赋值给 obj: 这种类型转换插入一个运行时的类型检查, 如果 obj 不是 MountainBike, 就会抛出异常

53 5.6 接口 接口的特点 对象通过暴露的方法定义它们和外部世界的交互 方法形成对象和外部世界的接口 (interface) 接口通常是一组具有空方法体的相关方法 通过实现接口, 类可以更加正式的说明它承诺提供的行为 接口构成了类和外部世界之间的契约, 并且该契约在编译时由编译器强制实施 如果类声明实现一个接口, 那么这个接口定义的所有方法都必须出现在其源代码中, 否则就不能成功编译 接口不是类层次结构的一部分, 但它们与类结合在一起工作 Java 通过接口使得处于不同层次 甚至互不相关的类可以具有相同的行为 ( 即实现相同的接口 )

54 接口的定义 格式 : Java 中接口是类似于类的一种引用类型, 只能包含常量 方法体和嵌套类型, 其中没有方法体 ; 接口不能被实例化, 只能被类实现, 或者被其他接口扩展 说明 关键字 interface 表明其后紧跟着的是接口名 ; extends 表明继承自那些父接口 ;

55 访问权限控制符 public 表明任意类和接口均可使用这个接口 ; 缺省修饰符表明只有与该接口定义在同一个包中的类和接口才可以使用这个接口 接口体 常量定义 : 在接口中定义的常量被缺省默认为 public final static, 而不需特意写明以上修饰符, 也不能被其他修饰符修饰 方法体 : 接口中只进行方法的声明, 而不负责方法的实现, 因此没有方法体 定义在接口中的方法被默认为 public 和 abstract, 同样不需特意修饰, 也不能被其他修饰符修饰 接口的特点 接口可以继承自多个父接口 ; 如果在子接口中定义了和父接口同名的常量, 则父接口中的常量被隐藏 ; 如果在子接口中定义了和父接口同名的方法, 则父接口中的方法被重载 ;

56 接口允许没有父接口 ; 接口的实现 实现格式 说明 类修饰符只能是 public 或缺省 ; 如果实现某个接口的类不是抽象类或者该抽象类的子类, 则都必须实现指定接口的所有抽象方法, 抽象方法在使显示要修饰为 public, 并且要求方法的参数列表 名字和返回类型与接口定义中的完全一致

57 例程 定义接口 Shape2D, 指明类需要实现的方法 : 计算二维图形的面积和周长 构造两种二维图形的类 : 矩形类和圆形类, 实现该 Shape2D 接口

58

59 抽象类和接口都可以用于模拟共同特征, 一般来说 strong is-a relationship 应该用类来继承模拟 ;weak is-a relationship 是类属关系, 指对象拥有某种属性, 可用接口来模拟 例如, 职员和人的关系应该用类继承模拟 ; 字符串都可以用来比较, 则可以使 String 类实现 Caparable 接口 可以使用接口避开单重继承的限制

60 5.7 包 包 (package) 是组织一组相关类和接口的名称空间 包的分类 : API Java 平台提供的数量庞大的类库 ( 包的集合 ), 可以用于应用程序的开发, 它的包代表和通用编程相关的最常见的任务 API 使得程序员可以把精力集中于特定的应用程序设计, 而不必在基础设施上浪费时间 自定义包 Java 编程语言编写的软件可能由数百或甚至数千个独立的类构成, 把相关的类和接口存放在包中以组织这些内容 包的作用 如同文件夹的概念一样, 不同的包中的类可以同名, 这样可以避免命名的冲突 ; 使得功能相关的类易于查找和使用, 同一包中的类和接口通常是功能相关的 ;

61 定义 可提供一种访问权限的控制机制, 一些访问权限以包为访问范围 包是一组相关类和接口的集合, 即类和接口的容器 它提供了访问权限 ( 控制类之间的访问 ) 和命名的管理机制 ( 划分类名空间 ) 包层次的根目录是由环境变量 CLASSPATH 来确定的 定义格式 说明 : package 包名 1[. 包名 2[. 包名 3 ]]; 在定义类和接口的源文件的第一行使用 package 语句, 就指明了该文件中定义的类和接口属于第一条语句定义的包 ; 包可以带路径, 形成与 Java 开发系统文件结构相同的层次关系

62 包的定义 package Family; class Father{ class Mother{ class Son{ 依次把 Father 类 Mother 类 Son 类装入包 Family 不同程序文件内的类也可同属于一个包, 只要在这些程序文件前加上同一个包的声明 ; 包的引用 如果缺省 package 语句, 则指定为无名包 将类和接口组织成包的目的是为了能够更有效的使用包中的已经具备一定功能的类

63 格式 import 包名 1[. 包名 2[. 包名 3 ]]. 类名 *; 装载使用已编译好的包的方式 : 在要引用的类名前带上包名 : 在文件开头使用 import 引入包中的类 : 在文件前使用 import 引入包中所有的类 : 装载方式 2 import Animals.*; class Check{ Cat cat=new Cat(); Dog dog=new Dog();

64 说明 使用 * 时表示要从包中引入所有的类, 也只能是该包中的类 ; Java 编译器为所有程序自动引入包 java.lang, 所以不必显式引入 ; 需要注意的是 : 包实际上并不如同最初看上去那样具有层次结构, 某个包名字中的. 并不表示它们之间的包含关系, 只是为了使它们之间的联系更明显» 以上语句只能导入 java.awt 包中的所有类, 而不能导入 java.awt.font java.awt.color 或者任何 java.awt.xxxx 包, 如果计划使用以上的包, 则必须另外导入 :

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

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

软件工程文档编制

软件工程文档编制 实训抽象类 一 实训目标 掌握抽象类的定义 使用 掌握运行时多态 二 知识点 抽象类的语法格式如下 : 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 点 复习 Java 包 创建包 : package 语句, 包结构与目录结构一致 使用包 : import restaurant/ - people/ - Cook.class - Waiter.class - tools/ - Fork.class - Table.class

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 点 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

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

无类继承.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 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

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

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

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

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

Microsoft Word - 第5章.doc

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

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 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

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

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

More information

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

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

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

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

<4D6963726F736F667420506F776572506F696E74202D20B5DA3035D5C220C3E6CFF2B6D4CFF3B8DFBCB6B3CCD0F2C9E8BCC6>

<4D6963726F736F667420506F776572506F696E74202D20B5DA3035D5C220C3E6CFF2B6D4CFF3B8DFBCB6B3CCD0F2C9E8BCC6> Java 程 序 设 计 教 学 课 件 河 南 农 业 大 学 信 管 学 院 计 算 机 系 河 南 农 业 大 学 信 管 学 院 计 算 机 系 高 级 语 言 程 序 设 计 课 程 组 第 5 章 面 向 对 象 高 级 程 序 设 计 主 要 内 容 5.1 继 承 5.2 多 态 性 5.3 抽 象 类 和 抽 象 方 法 5.4 接 口 5.5 内 部 类 和 匿 名 类 5.1

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

Strings

Strings Polymorphism and Virtual Functions Cheng-Chin Chiang Virtual Function Basics 多 型 (Polymorphism) 賦 予 一 個 函 數 多 種 意 涵, 存 在 於 同 一 類 別 之 內 祖 先 類 別 與 後 代 類 別 間 物 件 導 向 程 式 設 計 基 本 原 理 虛 擬 函 數 (Virtual Function)

More information

chp4

chp4 Java 软件开发基础 4. 面向对象的程序设计基础 4.1 面向对象基础 对象 现实世界中复杂的对象是由许多小的 简单的对象组成的 客观存在的物体就是最基本的对象 不同的物体有共性, 共性存在于个性之中, 物体的个性又继承了共性 对象的状态属性 对象蕴含着许多信息, 可以用一组状态来表征 对象的行为操作 对象内部含有对数据的操作, 即对象的行为操作 某类事物的抽象 某类对象是对现实世界具有共同特性的某类事物的抽象

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc 第 3 章 求职者在介绍自己的基本情况时不必 从头说起, 比如, 不必介绍自己所具有的人的一般属性等, 因为人们已经知道求职者肯定是一个人, 已经具有了人的一般属性, 求职者只要介绍自己独有的属性就可以了 当准备编写一个类的时候, 发现某个类有我们所需要的成员变量和方法, 如果想复用这个类中的成员变量和方法, 即在所编写的类中不用声明成员变量就相当有了这个成员变量, 不用定义方法就相当有了这个方法,

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

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

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

Microsoft PowerPoint - 07 派生数据类型

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

More information

Microsoft Word - 第2章.doc

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

More information

Microsoft Word - 第5章.doc

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

More information

教案模板4-2

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

More information

Microsoft Word - 第5章.doc

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

More information

Microsoft Word - word模板-教师.doc

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

More information

PowerPoint Presentation

PowerPoint Presentation 第 3 章 类 类的继承和接口 3.1 类 3.2 包的创建和使用 源文件结构 3.3 类的继承和多态 3.4 接口和接口的实现 3.5 内部类和匿名内部类 3.1 类 1 Java 中类的定义格式 : [ 类的修饰符 ] class 类名 [extends 父类名 ]{ 变量声明 ; 构造方法定义 ; 其他方法定义 ; 2 创建一个类的对象的格式 : 类名对象名 =new 构造函数 ( 实际参数

More information

Guava学习之Resources

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

More information

untitled

untitled 1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override

More information

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

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

Microsoft PowerPoint - 04-Inheritance.ppt

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

More information

幻灯片 1

幻灯片 1 信息科学技术学院 程序设计实习 郭炜微博 http://weibo.com/guoweiofpku http://blog.sina.com.cn/u/3266490431 刘家瑛微博 http://weibo.com/pkuliujiaying 1 信息科学技术学院 程序设计实习 郭炜刘家瑛 继承和派生 ( 教材 P215) 2 继承和派生的概念 继承 : 在定义一个新的类 B 时, 如果该类与某个已有的类

More information

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

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

More information

Microsoft PowerPoint - L17_Inheritance_v4.pptx

Microsoft PowerPoint - L17_Inheritance_v4.pptx C++ Programming Lecture 17 Wei Liu ( 刘 威 ) Dept. of Electronics and Information Eng. Huazhong University of Science and Technology May. 2015 Lecture 17 Chapter 20. Object-Oriented Programming: Inheritance

More information

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit Tomcat Web JUnit Cactus JUnit Java Cactus JUnit 26.1 JUnit Java JUnit JUnit Java JSP Servlet JUnit Java Erich Gamma Kent Beck xunit JUnit boolean JUnit Java JUnit Java JUnit Java 26.1.1 JUnit JUnit How

More information

Microsoft Word - chap10.doc

Microsoft Word - chap10.doc 78 10. Inheritance in C++ 我 們 已 介 紹 了 物 件 導 向 程 式 的 第 一 個 主 要 特 性, 即 程 式 可 模 組 化 成 為 類 別 ( 物 件 ), 類 別 具 有 資 料 封 裝 的 特 性 接 下 來 我 們 要 介 紹 物 件 導 向 程 式 的 另 一 個 主 要 特 性, 那 就 是 類 別 具 有 繼 承 的 功 能 繼 承 就 是 重 複

More information

Microsoft Word - JCS5.doc

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

More information

何对象存在, 所以, 如果不将它设置为类相关的, 则没有办法得到任何的对象, 也就无法调用这个 main() 方法 知识准备 :static 变量的引用方法 1. 通过对象定位变量 在 节中我们定义了 StaticTest 类, 并在类中定义了 static 变量 现在我们通

何对象存在, 所以, 如果不将它设置为类相关的, 则没有办法得到任何的对象, 也就无法调用这个 main() 方法 知识准备 :static 变量的引用方法 1. 通过对象定位变量 在 节中我们定义了 StaticTest 类, 并在类中定义了 static 变量 现在我们通 第 7 章高级类特性 本章详细介绍 static 变量 方法和初始化段的概念和用法 ;final 数据 方法和类的用 法 ; 抽象类和接口的概念, 以及它们之间的联系和区别 ; 多态概念以及内部类的概念和用 法 ; 最后, 对一些常用的修饰符做了一个简单的总结 7.1 static 关键字 7.1.1 知识准备 :static 概述 通常我们在创建一个类时, 是在描述那个类的对象的外观与行为 只有用

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

教学内容 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

<4D F736F F F696E74202D20A1B64A617661B8DFBCB6BCBCCAF5A1B7B5DA31312E35BDB220B6AFCCACC0E0D0CDBCECB2E92E707074>

<4D F736F F F696E74202D20A1B64A617661B8DFBCB6BCBCCAF5A1B7B5DA31312E35BDB220B6AFCCACC0E0D0CDBCECB2E92E707074> Java 高级技术 课程 Java 语言的高级特性 (8) 李戈 北京大学信息科学技术学院软件研究所 2008 年 5 月 11 日 运行期类型识别 RTTI ( Run-Time Type Identification ) 在运行期间, 识别一个对象的类型 运行期类型识别 RTTI 的三种方法 强制类型转换 利用 Class 对象 通过比较识别类型 (1) 利用强制类型转换判别运行期类型 class

More information

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

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

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

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

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

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

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

Microsoft PowerPoint - 第06讲_继承.ppt [兼容模式]

Microsoft PowerPoint - 第06讲_继承.ppt [兼容模式] 程序设计实习 (I): C++ 程序设计 第六讲继承 上节内容回顾 三种运算符重载的实现方式 重载为普通函数 重载为成员函数 重载为友元 常见的运算符重载 流运算符 (>>

More information

《大话设计模式》第一章

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

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

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

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

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

More information

拦截器(Interceptor)的学习

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

More information

PowerPoint Template

PowerPoint Template 第五章类和继承 主要内容提要 创建类 管理继承 实现嵌套的类 创建类 声明类 基本语法 : class { [] [] [] 上面的语法中, 关键字 class 和 class_name 是必须的, 其它都是可选的 类的声明

More information

Microsoft Word - ch04三校.doc

Microsoft Word - ch04三校.doc 4-1 4-1-1 (Object) (State) (Behavior) ( ) ( ) ( method) ( properties) ( functions) 4-2 4-1-2 (Message) ( ) ( ) ( ) A B A ( ) ( ) ( YourCar) ( changegear) ( lowergear) 4-1-3 (Class) (Blueprint) 4-3 changegear

More information

<4D F736F F D204A617661B3CCD0F2C9E8BCC6CFB0CCE2D3EBCAB5D1B5BDCCB3CC20B5DA33D5C22E646F63>

<4D F736F F D204A617661B3CCD0F2C9E8BCC6CFB0CCE2D3EBCAB5D1B5BDCCB3CC20B5DA33D5C22E646F63> 第 3 章 类与对象 3.1 基本知识提要 3.1.1 知识结构图 类 对象 构造方法 : 构造方法重载类的定义成员方法 : 方法重载成员变量派生子类类的继承方法覆盖 super 的使用对象的声明对象的创建对象的使用 类与对象 this 的使用访问控制修饰符 : 类的访问控制修饰符 成员的访问控制修饰符 非访问控制修饰符 :static final abstract 包 : 包的定义与使用 静态导入

More information

Strings

Strings Inheritance Cheng-Chin Chiang Relationships among Classes A 類 別 使 用 B 類 別 學 生 使 用 手 機 傳 遞 訊 息 公 司 使 用 金 庫 儲 存 重 要 文 件 人 類 使 用 交 通 工 具 旅 行 A 類 別 中 有 B 類 別 汽 車 有 輪 子 三 角 形 有 三 個 頂 點 電 腦 內 有 中 央 處 理 單 元 A

More information

Microsoft Word - 正文.doc

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

More information

<4D F736F F D204A617661B3CCD0F2C9E8BCC6D3EBCAB5BCF9BDCCB3CCA3A8B5DA32B0E6A3A920B5DA35D5C22E646F63>

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

More information

<4D6963726F736F667420506F776572506F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

<4D6963726F736F667420506F776572506F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074> 程 序 设 计 实 习 INFO130048 3-2.C++ 面 向 对 象 程 序 设 计 重 载 继 承 多 态 和 聚 合 复 旦 大 学 计 算 机 科 学 与 工 程 系 彭 鑫 pengxin@fudan.edu.cn 内 容 摘 要 方 法 重 载 类 的 继 承 对 象 引 用 和 拷 贝 构 造 函 数 虚 函 数 和 多 态 性 类 的 聚 集 复 旦 大 学 计 算 机 科 学

More information

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 Java V1.0.1 2007 4 10 1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 6.2.10 6.3..10 6.4 11 7.12 7.1

More information

Microsoft Word - Hibernate与Struts2和Spring组合指导.doc

Microsoft Word - Hibernate与Struts2和Spring组合指导.doc 1.1 组合 Hibernate 与 Spring 1. 在 Eclipse 中, 新建一个 Web project 2. 给该项目增加 Hibernate 开发能力, 增加 Hibernate 相关类库到当前项目的 Build Path, 同时也提供了 hibernate.cfg.xml 这个配置文件 3. 给该项目增加 Spring 开发能力, 增加 spring 相关类库到当前项目的 Build

More information

Microsoft Word - 第3章.doc

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

More information

Struts2自定义类型转换.doc

Struts2自定义类型转换.doc Struts2 自定义类型转换 原理 struts2 的自定义类型转换机制为复杂类型的输入输出处理提供了便捷.struts2 已经为我们提供了几乎所有的 primitive 类型以及常用类型 ( 如 Date) 的类型转换器, 我们也可以为我们自定义类添加自定义类型转化器. struts2 为我们提供了一个类型转化器的入口 : ognl.defaulttypeconverter, 或继承 org.apache.struts2.util.strutstypeconverter,

More information

第1章 Delphi简介

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

More information

Microsoft Word - 第3章.doc

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

More information

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

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 1Z0-854 Title : Java Standard Edition 5 Programmer Certified Professional Upgrade Exam Version : Demo 1 / 12 1.Given: 20. public class CreditCard

More information

EJB-Programming-3.PDF

EJB-Programming-3.PDF :, JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Value Object Design Pattern J2EE Design Patterns Value Object Value Object Factory J2EE EJB Test Client

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

Microsoft Word - 01.DOC

Microsoft Word - 01.DOC 第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的

More information

chp6.ppt

chp6.ppt Java 软 件 设 计 基 础 6. 异 常 处 理 编 程 时 会 遇 到 如 下 三 种 错 误 : 语 法 错 误 (syntax error) 没 有 遵 循 语 言 的 规 则, 出 现 语 法 格 式 上 的 错 误, 可 被 编 译 器 发 现 并 易 于 纠 正 ; 逻 辑 错 误 (logic error) 即 我 们 常 说 的 bug, 意 指 编 写 的 代 码 在 执 行

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 - CPP-Ch Print.ppt [兼容模式]

Microsoft PowerPoint - CPP-Ch Print.ppt [兼容模式] Chapter 13 Object-Oriented Programming: Polymorphism http://jssec.seu.edu.cn 杨明 yangming2002@seu.edu.cn OBJECTIVES What polymorphism( 多态 ) is, how it makes programming more convenient, and how it makes

More information

建模与图形思考

建模与图形思考 F06_c 观摩 :ContentProvider 基於軟硬整合觀點 架构與 DB 引擎移植方法 ( c) By 高煥堂 4 通用性基类 ContentProvider 基於軟硬整合觀點 的使用范例 刚才的范例里, 我们直接使用 DataPersist 类的接口来与 SQLite 沟通 本节将替 DataPersist 配上 ContentProvider 基类, 让 Client 能透过 ContentProvider

More information

untitled

untitled 1 7 7.1 7.2 7.3 7.4 7.5 2 7.1 VFT virtual 7.1 3 1 1. 2. public protected public 3. VFT 4. this const volatile 4 2 5. ( ) ( ) 7.1 6. no-static virtual 7.2 7. inline 7.3 5 3 8. this this 9. ( ) ( ) delete

More information

C++_Lecture

C++_Lecture C++ 程序设计 张岳新编著 苏州大学出版社 1 第十一章 继承和派生类 2 继承性是面向对象程序设计中最重要的机制 这种机制提供了无限重复利用程序资源的一种途径 通过 C++ 语言中的继承机制, 可以扩充和完善旧的程序设计以适应新的需求 这样不仅可以节省程序开发的时间和资源, 并且为未来程序增添了新的资源 3 class Student { int num; char name[30]; char

More information

// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple

// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple halcon 与 C# 混合编程之 Halcon 代码调用 写在前面 完成 halcon 与 C# 混合编程的环境配置后, 进行界面布局设计构思每一个按钮所需要实现 的功能, 将 Halcon 导出的代码复制至相应的 C# 模块下即可 halcon 源程序 : dev_open_window(0, 0, 512, 512, 'black', WindowHandle) read_image (Image,

More information

java2d-4.PDF

java2d-4.PDF 75 7 6 G r a d i e n t P a i n t B a s i c S t r o k e s e t P a i n t ( ) s e t S t o r k e ( ) import java.awt.*; import java.awt.geom.*; public class PaintingAndStroking extends ApplicationFrame { public

More information

<4D F736F F D20B5DA32D5C220C3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6B3F5B2BD2E646F6378>

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

More information

Microsoft PowerPoint - ch12 [Compatibility Mode]

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

More information

Microsoft Word - 新正文.doc

Microsoft Word - 新正文.doc 第 5 章继承和接口 本章主要讲解 Java 语言继承和多态的概念及其实现 ; 介绍包和接口的概念及其使用 继承和多态的概念及其实现 super 的使用 包的使用 接口的使用 5.1 类的继承 继承性是面向对象程序设计语言的一个重要特征, 通过继承可以实现代码的复用 Java 语 言中, 所有的类都是直接或间接地继承 java.lang.object 类 子类继承父类的属性和方法, 同时 也可以增加属性和方法,

More information

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

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

More information

Stateless Session Beans(无状态bean)的学习

Stateless Session Beans(无状态bean)的学习 一 Stateless Session Beans( 无状态 bean) 的学习 第一步 : 要定义一个会话 Bean, 首先需要定义一个包含他所有业务方法的接口 这个接口不需要任何注释, 就像普通的 java 接口那样定义 调用 EJB 的客户端通过使用这个接口引用从 EJB 容器得到的会话 Bean 对象 stub 接口的定义如下: HelloWorld.java package com.foshanshop.ejb3;

More information

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

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

More information

AVEVA PMLNet Guide

AVEVA PMLNet Guide AVEVA PMLNet Guide eryar@163.com Abstract. AVEVA PMLNet allows you to instantitate and invoke methods on.net objects from PML proxy objects. The PML proxy objects behave just like any other PML object.

More information

在Spring中使用Kafka:Producer篇

在Spring中使用Kafka:Producer篇 在某些情况下, 我们可能会在 Spring 中将一些 WEB 上的信息发送到 Kafka 中, 这时候我们就需要在 Spring 中编写 Producer 相关的代码了 ; 不过高兴的是,Spring 本身提供了操作 Kafka 的相关类库, 我们可以直接通过 xml 文件配置然后直接在后端的代码中使用 Kafka, 非常地方便 本文将介绍如果在 Spring 中将消息发送到 Kafka 在这之前,

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 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas 目录 1 IPv6 快速转发 1-1 1.1 IPv6 快速转发配置命令 1-1 1.1.1 display ipv6 fast-forwarding aging-time 1-1 1.1.2 display ipv6 fast-forwarding cache 1-1 1.1.3 ipv6 fast-forwarding aging-time 1-3 1.1.4 ipv6 fast-forwarding

More information

ASP.NET实现下拉框二级联动组件

ASP.NET实现下拉框二级联动组件 ASP.NET 实现下拉框二级联动组件 namespace WebApplicationDlh using System.Drawing; using System.Web; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using Db; / / Area 的摘要说明 /

More information

Adobe® Flash® 的 Adobe® ActionScript® 3.0 程式設計

Adobe® Flash® 的 Adobe® ActionScript® 3.0 程式設計 337 18 Adobe Flash CS4 Professional MovieClip ActionScript Flash ActionScript Flash Flash Flash MovieClip MovieClip ActionScript ( ) MovieClip Flash Sprite ActionScript MovieClip ActionScript 3.0 Shape

More information