Microsoft Word - 第3章.doc

Size: px
Start display at page:

Download "Microsoft Word - 第3章.doc"

Transcription

1 第 3 章 求职者在介绍自己的基本情况时不必 从头说起, 比如, 不必介绍自己所具有的人的一般属性等, 因为人们已经知道求职者肯定是一个人, 已经具有了人的一般属性, 求职者只要介绍自己独有的属性就可以了 当准备编写一个类的时候, 发现某个类有我们所需要的成员变量和方法, 如果想复用这个类中的成员变量和方法, 即在所编写的类中不用声明成员变量就相当有了这个成员变量, 不用定义方法就相当有了这个方法, 那么可以将编写的类声明为这个类的子类, 子类通过继承可以不必一切 从头做起 3.1 子类与父类 继承是一种由已有的类定义出新类的机制 利用继承, 可以先定义一个共有属性的一般类, 根据该一般类再定义具有特殊属性的子类, 子类继承一般类的属性和行为, 并根据需要增加它自己的新的属性和行为 由继承而得到的类称为子类, 被继承的类称为父类 ( 超类 ) 需要读者特别注意的是 Java 不支持多重继承, 即子类只能有一个父类 ( 和 C++ 不同 ) 人们习惯地称子类与父类的关系是 is-a 关系 在类的声明中, 通过使用关键字 extends 定义一个类的子类, 格式如下 : class 子类名 extends 父类名 { 例如 : class Student extends People { 把 Student 类定义为 People 类的子类,People 类是 Student 类的父类 ( 超类 ) 人们习惯地称子类与父类的关系是 is-a 关系 ( 学生是一个人 是正确的说法 ) 如果一个类是另一个类的子类, 那么 UML 通过使用一个实线连接两个类的 UML 图来表示二者之间的继承关系, 实线的起始端是子类的 UML 图, 终点端是父类的 UML 图, 但终点端使用一个空心的三角形表示实线的结束 图 3.1 是 Student 类和 People 类之间的继承关系的 UML 图 People leg:int hand:int showpeoplemess():void (String):void Student number:int add(int,int):int 图 3.1 继承关系的 UML 图

2 如果 C 是 B 的子类,B 又是 A 的子类, 习惯上称 C 是 A 的子孙类 Java 的类按继承关系形成树形结构 ( 将类看做树上的结点 ), 在这个树形结构中, 根结点是 Object 类 (Object 是 java.lang 包中的类 ), 即 Object 是所有类的祖先类 任何类都是 Object 类的子孙类, 每个类 ( 除了 Object 类 ) 有且仅有一个父类, 一个类可以有多个或零个子类 如果一个类 ( 除了 Object 类 ) 的声明中没有使用 extends 关键字, 这个类被系统默认为是 Object 的子类, 即类声明 class A 与 class A extends Object 是等同的 3.2 子类的继承性 1. 继承性类可以有两种重要的成员 : 成员变量和方法 子类的成员中有一部分是子类自己声明 定义的, 另一部分是从它的父类继承的 那么, 什么叫继承呢? 所谓子类继承父类的成员变量作为自己的一个成员变量, 就好像它们是在子类中直接声明一样, 可以被子类中自己定义的任何实例方法操作, 也就是说, 一个子类继承的成员应当是这个类的完全意义的成员, 如果子类中定义的实例方法不能操作父类的某个成员变量, 该成员变量就没有被子类继承 ; 所谓子类继承父类的方法作为子类中的一个方法, 就好像它们是在子类中直接定义了一样, 可以被子类中自己定义的任何实例方法调用 如果子类和父类在同一个包中, 那么子类自然地继承了其父类中不是 private 的成员变量作为自己的成员变量, 并且也自然地继承了父类中不是 private 的方法作为自己的方法, 继承的成员变量或方法的访问权限保持不变 当子类和父类不在同一个包中时, 父类中的 private 和友好访问权限的成员变量不会被子类继承, 也就是说, 子类只继承父类中的 protected 和 public 访问权限的成员变量作为子类的成员变量 ; 同样, 子类只继承父类中的 protected 和 public 访问权限的方法作为子类的方法 2. 耦合关系类与类之间一旦确定是父子关系, 那么这种关系就是永久的, 不会再发生变化 ( 就像生活中儿子与父亲的关系是永久的 不可改变的 ), 而且父类对方法的修改都会影响到子类, 这也是称子类与父类的关系是 is-a 关系的原因 因此, 面向对象程序将子类与父类的关系看做强耦合关系 ( 组合关系是弱耦合关系, 见后续的第 4 章 ) 3.3 关于 protected 的进一步说明 一个类 A 中的 protected 成员变量和方法可以被它的子孙类继承, 比如 B 是 A 的子类, C 是 B 的子类,D 又是 C 的子类, 那么 B C 和 D 类都继承了 A 类的 protected 成员变量和方法 在没有讲述子类之前, 曾对访问修饰符 protected 进行了讲解, 现在需要对 protected 总结的更全面些 如果用 D 类在 D 本身中创建了一个对象, 那么该对象总是可以通过. 运算符访问继承的或自己定义的 protected 变量和 protected 方法的, 但是如果在另外一个类中, 比如在 Other 类中用 D 类创建了一个对象 object, 该对象通过. 运算符访问 protected 变量和 27 第 3 章

3 面向对象与设计模式 28 protected 方法的权限如下所述 (a) 对于子类 D 自己声明的 protected 成员变量和方法, 只要 Other 类和 D 类在同一个包中,object 就可以访问这些 protected 成员变量和方法 (b) 对于子类 D 从父类继承的 protected 成员变量或 protected 方法, 需要追溯到这些 protected 成员变量或方法所在的 祖先 类, 比如可能是 A 类, 只要 Other 类和 A 类在同一个包中,object 对象能访问继承的 protected 变量和 protected 方法 3.4 子类对象的特点 当用子类的构造方法创建一个子类的对象时, 不仅子类中声明的成员变量被分配了内存, 而且父类的成员变量也都分配了内存空间 ( 技术细节见后面的 3.5 节 ), 但只将其中一部分, 即子类继承的那部分成员变量, 作为分配给子类对象的变量 也就是说, 父类中的 private 成员变量尽管分配了内存空间, 也不作为子类对象的变量, 即子类不继承父类的私有成员变量 同样, 如果子类和父类不在同一包中, 尽管父类的友好成员变量分配了内存空间, 但也不作为子类对象的变量, 即如果子类和父类不在同一包中, 子类不继承父类的友好成员变量 通过上面的讨论, 我们有这样的感觉 : 子类创建对象时似乎浪费了一些内存, 因为当用子类创建对象时, 父类的成员变量也都分配了内存空间, 但只将其中一部分作为分配给子类对象的变量, 比如, 父类中的 private 成员变量尽管分配了内存空间, 也不作为子类对象的变量, 当然它们也不是父类某个对象的变量, 因为我们根本就没有使用父类创建任何对象 这部分内存似乎成了垃圾一样 但是, 实际情况并非如此, 我们需注意到, 子类中还有一部分方法是从父类继承的, 这部分方法却可以操作这部分未继承的变量 在下面的代码中, 子类 ChinaPeople 的对象调用继承的方法操作未被子类继承却分配了内存空间的变量 程序运行效果如图 3.2 所示 People.java public class People { private int averheight=166; public int getaverheight() { return averheight; 图 3.2 对象调用继承的方法 ChinaPeople.java public class ChinaPeople extends People { int height; public void setheight(int h) { height=h; public int getheight() { return height;

4 Application.java public class Application { public static void main(string args[]) { ChinaPeople zhangsan = new ChinaPeople(); System.out.println(" 子类对象未继承的 averageheight 的值是 :"+ zhangsan.getaverheight()); zhangsan.setheight(178); System.out.println(" 子类对象的实例变量 height 的值是 :"+ zhangsan.getheight()); 3.5 隐藏继承的成员 定义子类时, 仍然可以声明成员变量, 一种特殊的情况就是, 所声明的成员变量的名字和从父类继承来的成员变量的名字相同 ( 声明的类型可以不同 ), 在这种情况下, 子类就会隐藏掉所继承的成员变量 子类隐藏继承的成员变量的特点如下 : (1) 子类对象以及子类自己定义的方法操作与父类同名的成员变量是指子类重新声明的这个成员变量 (2) 子类对象仍然可以调用从父类继承的方法操作被子类隐藏的成员变量, 也就是说, 子类继承的方法所操作的成员变量一定是被子类继承或隐藏的成员变量 (3) 子类继承的方法只能操作子类继承和隐藏的成员变量 子类新定义的方法可以操作子类继承和子类新声明的成员变量, 但无法操作子类隐藏的成员变量 下面的代码演示货物价格的计算 父类在按重量计算货物的价格时, 重量的计算精度是 double 型, 对客户的优惠程度较小 子类在按重量计算货物的价格时, 重量的计算精度是 int 型, 对客户的优惠程度较大 代码中, 父类 Goods 有一个名字为 weight 的 double 型成员变量, 子类 CheapGoods 本来可以继承这个成员变量, 但是子类 CheapGoods 又重新声明了一个 int 型的名字为 weight 的成员变量, 这样就隐藏了继承的 double 型的名字为 weight 的成员变量 但是, 子类对象可以调用从父类继承的方法操作隐藏的 double 型成员变量, 按照 double 型重量计算价格, 子类对象可以调用子类新定义的方法操作新声明的 int 型成员变量, 按照 int 型重量计算价格 程序运行效果如图 3.3 所示 Goods.java 图 3.3 隐藏成员变量 public class Goods { public double weight; public void setdoubleweight(double w) { 29 第 3 章

5 面向对象与设计模式 30 weight=w; public double getprice() { double price=weight*10; return price; CheapGoods.java public class CheapGoods extends Goods { public int weight; public void setintweight(int w) { weight=w; public double getcheapprice() { double price=weight*10; return price; Application.java public class Application { public static void main(string args[]) { CheapGoods cheapgoods=new CheapGoods(); cheapgoods.setintweight(198); System.out.println(" 对象 cheapgoods 的 weight 的值是 :"+ cheapgoods.weight); System.out.println("cheapGoods 用子类新增的优惠方法计算价格 :"+ cheapgoods.getcheapprice()); cheapgoods.setdoubleweight( ); // 调用继承的方法操作隐藏的 double 型变量 weight System.out.println("cheapGoods 使用继承的方法 ( 无优惠 ) 计算价格 :"+ cheapgoods.getprice()); 3.6 通过重写实现多态 子类通过重写可以隐藏已继承的方法 ( 方法重写称为方法覆盖 (method overriding)) 1. 重写的语法规则如果子类可以继承父类的某个方法, 那么子类就有权利重写这个方法 方法重写是指子类中定义一个方法, 这个方法的类型和父类的方法的类型一致或者是父类的方法的类型的子类型 ( 所谓子类型, 是指如果父类的方法的类型是 类, 那么允许子类的重写方法的

6 类型是 子类 ), 并且这个方法的名字 参数个数 参数的类型和父类的方法完全相同 子类如此定义的方法称做子类重写的方法 ( 不属于新增的方法 ) 2. 重写与多态多态性就是指父类的某个方法被其子类重写时, 可以各自产生自己的行为功能 子类通过方法的重写可以隐藏继承的方法, 子类通过方法的重写可以把父类的状态和行为改变为自身的状态和行为 如果父类的方法 f() 可以被子类继承, 子类就有权利重写 f(), 一旦子类重写了父类的方法 f(), 就隐藏了继承的方法 f(), 那么子类对象调用方法 f() 一定调用的是重写方法 f(); 如果子类没有重写, 而是继承了父类的方法 f(), 那么子类创建的对象当然可以调用 f() 方法, 只不过方法 f() 产生的行为和父类的相同而已 重写方法既可以操作继承的成员变量 调用继承的方法, 也可以操作子类新声明的成员变量 调用新定义的其他方法, 但无法操作被子类隐藏的成员变量和方法 3.7 上转型对象体现多态 人们经常说 老虎是哺乳动物 狗是哺乳动物 等 若哺乳类是老虎类的父类, 这样说当然正确, 因为人们习惯地称子类与父类的关系是 is-a 关系 但需要注意的是, 当说老虎是哺乳动物时, 老虎将失掉老虎独有的属性和功能 从人的思维方式上看, 说 老虎是哺乳动物 属于上溯思维方式 1. 上转型对象假设 A 类是 B 类的父类, 当用子类创建一个对象, 并把这个对象的引用放到父类的对象中时, 例如 : A a; a=new B(); 或 A a; B b=new B(); a=b; 这时, 称对象 a 是对象 b 的上转型对象 ( 好比说 老虎是哺乳动物 ) 对象的上转型对象的实体是子类负责创建的, 但上转型对象会失去原对象的一些属性和功能 ( 上转型对象相当于子类对象的一个 简化 对象 ) 上转型对象具有如下特点( 如图 3.4 所示 ): 对象的上转型对象 新增的变量 对象 新增的方法继承或隐藏的变量继承或重写的方法图 3.4 上转型对象示意图 31 第 3 章

7 面向对象与设计模式 32 (1) 上转型对象不能操作子类新增的成员变量 ( 失掉了这部分属性 ), 不能调用子类新增的方法 ( 失掉了一些行为 ) (2) 上转型对象可以访问子类继承或隐藏的成员变量, 也可以调用子类继承的方法或子类重写的实例方法 上转型对象操作子类继承的方法或子类重写的实例方法, 其作用等价于子类对象去调用这些方法 因此, 如果子类重写了父类的某个实例方法后, 当对象的上转型对象调用这个实例方法时一定是调用了子类重写的实例方法 (3) 如果子类重写了父类的静态方法, 那么子类对象的上转型对象不能调用子类重写的静态方法, 只能调用父类的静态方法 2. 用上转型对象体现多态当一个类有很多子类时, 并且这些子类都重写了父类中的某个实例方法, 那么当把子类创建的对象的引用放到一个父类的对象中时, 就得到了该对象的一个上转型对象, 那么这个上转型对象在调用这个方法时就可能具有多种形态, 因为不同的子类在重写父类的方法时可能产生不同的行为 人们经常说 : 哺乳动物有很多种叫声, 比如, 吼 嚎 汪汪 喵喵 等, 这就是叫声的多态 比如, 狗类的上转型对象调用 叫声 方法时产生的行为是 汪汪, 而猫类的上转型对象调用 叫声 方法时, 产生的行为是 喵喵, 等等 下面的代码使用上转型对象体现多态 程序运行效果如图 3.5 所示 Animal.java public class Animal { void cry() { 图 3.5 多态 Dog.java public class Dog extends Animal { void cry() { System.out.println(" 汪汪..."); Cat.java public class Cat extends Animal { void cry() { System.out.println(" 喵喵..."); Application.java public class Application { public static void main(string args[]) { Animal animal;

8 animal=new Dog(); animal.cry(); animal=new Cat(); animal.cry(); 3.8 通过 final 禁止多态 可以使用 final 将类声明为 final 类 final 类不能被继承, 即不能有子类 例如 : final class A { A 就是一个 final 类, 将不允许任何类声明成 A 的子类 有时候是出于安全性的考虑, 将一些类修饰为 final 类 例如,Java 在 java.lang 包中提供的 String 类对于编译器和解释器的正常运行有很重要的作用,Java 不允许用户程序扩展 String 类, 为此 Java 将它修饰为 final 类 如果用 final 修饰父类中的一个方法, 那么这个方法不允许子类重写, 也就是说, 不允许子类隐藏可以继承的 final 方法 ( 老老实实继承, 不许做任何篡改 ) 3.9 通过 super 解决多态带来的问题 子类一旦隐藏了继承的成员变量, 那么子类创建的对象就不再拥有该变量, 该变量将归关键字 super 所拥有, 同样, 子类一旦隐藏了继承的方法, 那么子类创建的对象就不能调用被隐藏的方法, 该方法的调用由关键字 super 负责 因此, 如果在子类中想使用被子类隐藏的成员变量或方法, 就需要使用关键字 super 比如,super.x super.play() 就是访问和调用被子类隐藏的成员变量 x 和方法 play() 在下面的代码中, 父类 WaterUser 有 double watermoney(int amount) 方法, 该方法根据参数 amount 的值, 即根据用水量 ( 吨 ) 返回水费 水费按每吨 2 元计算 但 WaterUser 的子类 BeijingWaterUser 决定重写 double watermoney(int amount) 方法, 重写的方法按参数 amount 的值, 即根据用水量 ( 吨 ) 返回水费 重写规则是 : 对于小于或等于 6 吨的水量, 按父类 WaterUser 类的 double watermoney(int amount) 方法计算水费 ; 对于大于 6 吨的水量, 按每吨 3 元计算 这样一来,BeijingWaterUser 类就必须使用 super 调用被隐藏的 double watermoney(int amount) 方法 程序运行效果如图 3.6 所示 WaterUser.java public class WaterUser { double unitprice; WaterUser() { unitprice=2; 图 3.6 使用 super 33 第 3 章

9 面向对象与设计模式 34 public double watermoney(int amount) { double money=amount*unitprice; // 每吨 2 元 if(money>0) return money; else return 0; BeijingWaterUser.java public class BeijingWaterUser extends WaterUser { double unitprice; BeijingWaterUser() { unitprice=3; public double watermoney(int amount) { double money=0; if(amount<=6) { money= super.watermoney(amount);// 使用 super 调用隐藏的 watermoney 方法 else if(amount>6){ money=(super.watermoney(6)+(amount-6)*3); // 使用 super 调用隐藏的 watermoney 方法 return money; Application.java public class Application { public static void main(string args[]) { BeijingWaterUser user=new BeijingWaterUser(); int wateramount=6; System.out.printf(" 水量 :%d 吨, 水费 :%f 元 \n", wateramount,user.watermoney(wateramount)); wateramount=11; System.out.printf(" 水量 :%d 吨, 水费 :%f 元 \n", wateramount,user.watermoney(wateramount)); 3.10 接口 1. 定义接口与实现接口 1) 定义接口使用关键字 interface 来定义一个接口 接口的定义和类的定义很相似, 分为接口的声

10 明和接口体 例如 : interface Printable { public final static int MAX=100; public abstract void add(); public abstract float sum(float x,float y); 接口使用关键字 interface 来声明自己是一个接口, 格式如下 : interface 接口的名字接口体中包含常量的声明 ( 没有变量 ) 和抽象方法两部分 接口体中只有抽象方法, 没有普通的方法, 而且接口体中所有的常量的访问权限一定都是 public, 而且是 static 常量 ( 允许省略 public final 和 static 修饰符, 因此, 接口中是声明不出变量的 ) 所有的抽象方法的访问权限一定都是 public( 允许省略 public abstract 修饰符 ) 例如: interface Printable { int MAX=100; // 等价于 public final static int MAX=100; void add(); // 等价于 public abstract void add(); float sum(float x,float y); // 等价于 public abstract float sum(float x,float y); 2) 实现接口接口由类来实现, 即由类重写接口中的方法 一个类可以在类声明中使用关键字 implements 声明实现一个或多个接口 如果类实现多个接口, 用逗号隔开接口名, 如 A 类实现 Printable 和 Addable 接口 : class A implements Printable,Addable 如果一个非抽象类实现了某个接口, 那么这个类必须重写这个接口中的所有方法 需要注意的是, 由于接口中的方法一定是 public abstract 方法, 所以类在重写接口方法时不仅要去掉 abstract 修饰符 给出方法体, 而且方法的访问权限一定要明显地用 public 修饰 ( 否则就降低了访问权限, 这是不允许的 ) 3) 耦合关系类与接口之间一旦确定是实现关系, 那么这种关系是强耦合关系, 接口方法的修改都会影响到实现接口的类, 因此, 面向对象将类与其实现的接口之间的关系看做强耦合关系 ( 组合关系是弱耦合关系, 见后续的第 4 章 ) 2. 接口的 UML 图表示接口的 UML 图和表示类的 UML 图类似, 使用一个长方形描述一个接口的主要构成, 将长方形垂直地分为 3 层 顶部第一层是名字层, 接口的名字必须是斜体字形, 而且需要用 <<interface>> 修饰名字, 并且该修饰和名字分列在两行 第二层是常量层, 列出接口中的常量及类型, 格式是 常量名字 : 类型 35 第 3 章

11 面向对象与设计模式 36 第三层是方法层, 也称操作层, 列出接口中的方法及返回类型, 格式是 方法名字 ( 参数列表 ): 类型 图 3.7 是接口 Computable 的 UML 图 如果一个类实现了一个接口, 那么类和接口的关系是实现关系, 称类实现接口 UML 通过使用虚线连接类和它所实现的接口, 虚线起始端是类, 虚线的终点端是它实现的接口, 但终点端使用一个空心的三角形表示虚线的结束 图 3.8 是 China 和 Japan 类实现 Computable 接口的 UML 图 <<interface>> Computable f(int):int MAX:int <<interface>> Computable China Japan f(int):int f(int):int f(int):int 图 3.7 接口 UML 图 图 3.8 实现关系的 UML 图 3.11 接口回调体现的多态 1. 接口回调和类一样, 接口也是 Java 中的一种重要数据类型, 用接口声明的变量称做接口变量 那么接口变量中可以存放怎样的数据呢? 接口属于引用型变量, 接口变量中可以存放实现该接口的类的实例的引用, 即存放对象的引用 比如, 假设 Com 是一个接口, 那么就可以用 Com 声明一个变量 : Com com; 内存模型如图 3.9 所示 称此时的 com 是一个空接口, 因为 com 变量中还没有存放实现该接口的类的实例 ( 对象 ) 的引用 假设 ImpleCom 类是实现 Com 接口的类, 用 ImpleCom 创建名字为 object 的对象 : ImpleCom object=new ImpleCom(); 那么 object 对象不仅可以调用 ImpleCom 类中原有的方法, 而且可以调用 ImpleCom 类实现的接口方法, 如图 3.10 所示 接口回调是指可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量, 那么该接口变量就可以调用被类实现的接口方法 实际上, 当接口变量调用被类实现的接口方法时, 就是通知相应的对象调用这个方法

12 类实现的接口方法 com null object Ox12ab9 类原有的方法 图 3.9 空接口 图 3.10 对象调用方法的内存模型 比如, 将上述 object 的对象的引用赋值给 com 接口 : com=object; 那么内存模型如图 3.11 所示, 箭头示意接口 com 变量可以调用类实现的接口方法 ( 这一过程被称为接口回调 ) 类实现的接口方法 com Ox12ab9 object Ox12ab9 类原有的方法 图 3.11 接口回调的内存模型 接口回调非常类似于上转型对象调用子类重写的方法 2. 回调体现的多态性把实现接口的类的实例的引用赋值给接口变量后, 该接口变量就可以回调类重写的接口方法 由接口产生的多态就是指不同的类在实现同一个接口时可能具有不同的实现方式, 那么接口变量在回调接口方法时就可能具有多种形态 例如, 对于两个正数 a 和 b, 有的人使用算术平均公式 : ( a b)/2 计算 ( 算术 ) 平均值, 而有的人使用几何平均公式 : a b 计算 ( 几何 ) 平均值 在下面的代码中,A 类和 B 类都实现了 ComputerAverage 接口, 但实现的方式不同 程序运行效果如图 3.12 所示 ComputerAverage.java 图 3.12 接口与多态 public interface ComputerAverage { public double average(double a,double b); A.java public class A implements ComputerAverage { public double average(double a,double b) { double aver=0; aver=(a+b)/2; 37 第 3 章

13 面向对象与设计模式 38 return aver; B.java public class B implements ComputerAverage { public double average(double a,double b) { double aver=0; aver=math.sqrt(a*b); return aver; Application.java public class Application { public static void main(string args[]) { ComputerAverage computer; double a=11.23,b=22.78; computer=new A(); double result=computer.average(a,b); System.out.printf("%5.2f 和 %5.2f 的算术平均值 :%5.2f\n",a,b,result); computer=new B(); result=computer.average(a,b); System.out.printf("%5.2f 和 %5.2f 的几何平均值 :%5.2f",a,b,result); 3.12 重载体现的多态 通过子类或接口体现多态是最重要的多态体现形式, 但 Java 也提供另一种所谓的重载多态 (Overload) 重载多态和子类进行重写所体现的多态不同, 重载体现的多态是指一个类可以有多个方法有相同的名字, 但参数必须不同, 而重写体现的多态是指一个类的多个子类可以对父类某个方法采取不同的重写方式 重载体现的多态习惯称为行为多态, 重写体现的多态习惯称为继承多态 例如, 让一个人执行 求面积 操作时, 他可能会问你求什么面积, 在这里 求面积 操作是一个行为多态 因此, 必须向 求面积 操作传递所需要的消息, 以便让对象根据相应的消息来产生相应的行为 对象的行为通过类中的方法来体现, 那么行为的多态性就是方法的重载 方法重载的意思是 : 一个类中可以有多个方法具有相同的名字, 但这些方法的参数必须不同 两个方法的参数不同是指满足下列条件之一 : (1) 参数的个数不同 (2) 参数个数相同, 但参数列表中对应的某个参数的类型不同 下面的代码中 Student 类中的 computerarea 方法是重载方法 程序运行效果如图 3.13

14 所示 Circle.java public class Circle { double radius,area; void setradius(double r) { radius=r; double getarea(){ area=3.14*radius*radius; return area; 图 3.13 computerarea 方法是重载方法 Tixing.java public class Tixing { double above,bottom,height; Tixing(double a,double b,double h) { above=a; bottom=b; height=h; double getarea() { return (above+bottom)*height/2; Student.java public class Student { double computerarea(circle c) { double area=c.getarea(); return area; double computerarea(tixing t) { double area=t.getarea(); return area; // 是重载方法 // 是重载方法 Application.java public classapplication{ public static void main(string args[]) { Circle circle=new Circle(); circle.setradius(196.87); 39 第 3 章

15 面向对象与设计模式 40 Tixing lader=new Tixing(3,21,9); Student zhang=new Student(); System.out.println("zhang 计算圆的面积 :"); double result=zhang.computerarea(circle); System.out.println(result); System.out.println("zhang 计算梯形的面积 :"); result=zhang.computerarea(lader); System.out.println(result);

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

Microsoft Word - 第5章.doc

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

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 点 复习 类的复用 组合 (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 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 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

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

模板

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

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

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

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

More information

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

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

More information

chp5_1

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

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

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

More information

<4D6963726F736F667420506F776572506F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

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

More information

Microsoft Word - 第5章.doc

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

More information

《大话设计模式》第一章

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

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

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

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

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

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

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

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

Microsoft Word - 第5章.doc

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

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 - 第2章.doc

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

More information

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

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

More information

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0,

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0, http://debut.cis.nctu.edu.tw/~chi Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0, : POSITIVE_INFINITY NEGATIVE_INFINITY

More information

Strings

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

More information

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

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

More information

chp4

chp4 Java 软件开发基础 4. 面向对象的程序设计基础 4.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

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

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

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

More information

<4D6963726F736F667420506F776572506F696E74202D20B5DA3035D5C220C3E6CFF2B6D4CFF3B8DFBCB6B3CCD0F2C9E8BCC6>

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

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

Guava学习之Resources

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

More information

<4D6963726F736F667420576F7264202D20C8EDC9E82DCFC2CEE7CCE22D3039C9CF>

<4D6963726F736F667420576F7264202D20C8EDC9E82DCFC2CEE7CCE22D3039C9CF> 全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 考 试 2009 年 上 半 年 软 件 设 计 师 下 午 试 卷 ( 考 试 时 间 14:00~16:30 共 150 分 钟 请 按 下 述 要 求 正 确 填 写 答 题 纸 1. 在 答 题 纸 的 指 定 位 置 填 写 你 所 在 的 省 自 治 区 直 辖 市 计 划 单 列 市 的 名 称 2. 在 答

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

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

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

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

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

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

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

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

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

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

基于CDIO一体化理念的课程教学大纲设计

基于CDIO一体化理念的课程教学大纲设计 Java 语 言 程 序 设 计 课 程 教 学 大 纲 Java 语 言 程 序 设 计 课 程 教 学 大 纲 一 课 程 基 本 信 息 1. 课 程 代 码 :52001CC022 2. 课 程 名 称 :Java 语 言 程 序 设 计 3. 课 程 英 文 名 称 :Java Programming 4. 课 程 类 别 : 理 论 课 ( 含 实 验 上 机 或 实 践 ) 5. 授

More information

教案模板4-2

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

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

untitled

untitled 1 Outline 料 類 說 Tang, Shih-Hsuan 2006/07/26 ~ 2006/09/02 六 PM 7:00 ~ 9:30 聯 ives.net@gmail.com www.csie.ntu.edu.tw/~r93057/aspnet134 度 C# 力 度 C# Web SQL 料 DataGrid DataList 參 ASP.NET 1.0 C# 例 ASP.NET 立

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

Microsoft Word - 第6章.doc

Microsoft Word - 第6章.doc 100 第 6 章 继 承 第 6 章 继 承 继 承 是 面 向 对 象 编 程 的 重 要 特 征 之 一 顾 名 思 义, 继 承 就 是 在 现 有 类 的 基 础 上 构 建 新 类 以 满 足 新 的 要 求 在 继 承 过 程 中, 新 的 类 继 承 原 来 的 方 法 和 实 例 变 量, 并 且 能 添 加 自 己 的 方 法 和 实 例 变 量 在 本 章 中 主 要 讲 解

More information

Microsoft Word - word模板-教师.doc

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

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

基于ECO的UML模型驱动的数据库应用开发1.doc

基于ECO的UML模型驱动的数据库应用开发1.doc ECO UML () Object RDBMS Mapping.Net Framework Java C# RAD DataSetOleDbConnection DataGrod RAD Client/Server RAD RAD DataReader["Spell"].ToString() AObj.XXX bug sql UML OR Mapping RAD Lazy load round trip

More information

untitled

untitled 4.1AOP AOP Aspect-oriented programming AOP 來說 AOP 令 理 Cross-cutting concerns Aspect Weave 理 Spring AOP 來 AOP 念 4.1.1 理 AOP AOP 見 例 來 例 錄 Logging 錄 便 來 例 行 留 錄 import java.util.logging.*; public class HelloSpeaker

More information

从 个简单的模拟鸭 应用开始 问题 Joe 的公司做了 套模拟鸭 游戏 : SimUDuck 游戏中会出现各种鸭, 边游泳戏, 边呱呱叫 此系统的内部设计使用了标准的 OO 技术, 设计了 个鸭 超类 (Superclass), 并让各种鸭 继承此超类, 复用超类的代码 1 / 16

从 个简单的模拟鸭 应用开始 问题 Joe 的公司做了 套模拟鸭 游戏 : SimUDuck 游戏中会出现各种鸭, 边游泳戏, 边呱呱叫 此系统的内部设计使用了标准的 OO 技术, 设计了 个鸭 超类 (Superclass), 并让各种鸭 继承此超类, 复用超类的代码 1 / 16 面向对象设计模式 门 曹东刚 caodg@pku.edu.cn 北京 学信息学院研究 课程 - 面向对象的分析与设计 http://sei.pku.edu.cn/ caodg/course/oo 从 个简单的模拟鸭 应用开始 问题 Joe 的公司做了 套模拟鸭 游戏 : SimUDuck 游戏中会出现各种鸭, 边游泳戏, 边呱呱叫 此系统的内部设计使用了标准的 OO 技术, 设计了 个鸭 超类 (Superclass),

More information

<4D F736F F D204A617661B3CCD0F2C9E8BCC6CFB0CCE2D3EBCAB5D1B5BDCCB3CC20B5DA33D5C22E646F63>

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

More information

untitled

untitled 1 Outline ArrayList 類 列類 串類 類 類 例 理 MSDN Library MSDN Library 量 例 參 列 [ 說 ] [] [ 索 ] [] 來 MSDN Library 了 類 類 利 F1 http://msdn.microsoft.com/library/ http://msdn.microsoft.com/library/cht/ Object object

More information

untitled

untitled 1 MSDN Library MSDN Library 量 例 參 列 [ 說 ] [] [ 索 ] [] 來 MSDN Library 了 類 類 利 F1 http://msdn.microsoft.com/library/ http://msdn.microsoft.com/library/cht/ Object object 參 類 都 object 參 object Boxing 參 boxing

More information

第1章 Delphi简介

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

More information

第9讲 类与对象

第9讲 类与对象 第 9 讲类与对象 第 1/152 页 类和对象的基本概念 第 2/152 页 本节内容 面向对象对象类消息面向对象的程序设计思想面向对象的基本特征 封装 继承 多态 第 3/152 页 第 4/152 页 什么是面向对象 面向对象其实是现实世界模型的自然延伸 -- 现实世界中任何实体都可以看作是对象 对象之间通过消息相互作用 另外, 现实世界中任何实体都可归属于某类事物, 任何对象都是某一类事物的实例

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

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

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 - string_kruse [兼容模式]

Microsoft PowerPoint - string_kruse [兼容模式] Strings Strings in C not encapsulated Every C-string has type char *. Hence, a C-string references an address in memory, the first of a contiguous set of bytes that store the characters making up the string.

More information

res/layout 目录下的 main.xml 源码 : <?xml version="1.0" encoding="utf 8"?> <TabHost android:layout_height="fill_parent" xml

res/layout 目录下的 main.xml 源码 : <?xml version=1.0 encoding=utf 8?> <TabHost android:layout_height=fill_parent xml 拓展训练 1- 界面布局 1. 界面布局的重要性做应用程序, 界面是最基本的 Andorid 的界面, 需要写在 res/layout 的 xml 里面, 一般情况下一个 xml 对应一个界面 Android 界面布局有点像写 html( 连注释代码的方式都一样 ), 要先给 Android 定框架, 然后再在框架里面放控件,Android 提供了几种框架,AbsoluteLayout,LinearLayout,

More information

Microsoft Word - JCS5.doc

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

More information

Microsoft Word - JAVA3.rtf

Microsoft Word - JAVA3.rtf Java2 lesson The aim of this lesson is concept and method. ( 赵 卓 宁 ) 教 学 计 划 学 习 进 度 Java 3 6.1~6.34 内 容 介 绍 教 材 内 容 : 第 六 课 描 绘 的 层 次 和 关 系 主 要 议 程 1. 的 复 用 2. 的 继 承 3. 关 于 多 态 4. 应 用 约 束 ( 封 装 ) 5. 接

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

<4D F736F F F696E74202D20B8DFBCB6D3C3BBA7BDE7C3E6D3EBB6E0CFDFB3CC2E707074>

<4D F736F F F696E74202D20B8DFBCB6D3C3BBA7BDE7C3E6D3EBB6E0CFDFB3CC2E707074> 高级用户界面与多线程 LCDUI 高级 LCDUI LCDUI 与多线程 多线程在手机编程中尤为重要 手机游戏开发中, 通常由游戏主线程负责游戏的基本控制, 除此之外还会由一个或者多个线程用于播放背景音乐或声效 网络接受数据时, 传输速度通常都比较慢, 因此可以使用一个独立的线程负责接收数据, 另外一个线程负责 UI 界面和与用户的交互 LCDUI 与多线程 J2ME 是通过线程体来实现多线程的 线程体就是用于实现线程活动的主体,

More information

第八章类和对象的扩展 实验目的 (1) 类的继承 a. 掌握父类及子类的关系及创建方法 b. 掌握上转型对象的使用方法 c. 掌握子类对象创建过程中与父类构造方法的关系, 及 super 关键字的用法 (2) 多态与接口 a. 掌握抽象类与抽象方法的概念 b. 掌握多态的实现原理及方法 c. 了解成

第八章类和对象的扩展 实验目的 (1) 类的继承 a. 掌握父类及子类的关系及创建方法 b. 掌握上转型对象的使用方法 c. 掌握子类对象创建过程中与父类构造方法的关系, 及 super 关键字的用法 (2) 多态与接口 a. 掌握抽象类与抽象方法的概念 b. 掌握多态的实现原理及方法 c. 了解成 第八章类和对象的扩展 实验目的 (1) 类的继承 a. 掌握父类及子类的关系及创建方法 b. 掌握上转型对象的使用方法 c. 掌握子类对象创建过程中与父类构造方法的关系, 及 super 关键字的用法 (2) 多态与接口 a. 掌握抽象类与抽象方法的概念 b. 掌握多态的实现原理及方法 c. 了解成员变量的隐藏 d. 掌握接口的设计方法 实验范例 例 1:( 继承 ) (1) 编写一个圆类 Circle,

More information

Microsoft Word - 第3章.doc

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

More information

Microsoft PowerPoint - 04-Inheritance.ppt

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

More information

拦截器(Interceptor)的学习

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

More information

The Embedded computing platform

The Embedded computing platform 嵌入式系統及實驗 Embedded System and Experiment 詹曉龍 長庚大學電機系 Java 的類別與物件 : 宣告類別 建構子 public class Customer { private String name; private String address; // Customer 類別宣告 // 成員資料 public int age; // 建構子 : 使用參數設定成員資料初始值

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

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

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

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 - 第3章.doc

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

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

電機工程系認可證照清單 2011/7/1

電機工程系認可證照清單                  2011/7/1 南 台 科 技 大 學 電 機 工 程 系 專 業 證 照 課 程 實 施 要 點 96 年 10 月 05 日 系 務 會 議 通 過 100 年 06 月 30 日 系 務 會 議 修 正 通 過 101 年 06 月 21 日 系 務 會 議 修 正 通 過 一 本 系 為 提 升 學 生 的 專 業 技 能, 特 訂 定 本 辦 法 二 實 施 對 象 : 本 系 日 間 部 96 學 年

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

全国计算机技术与软件专业技术资格(水平)考试

全国计算机技术与软件专业技术资格(水平)考试 全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 ) 考 试 2008 年 上 半 年 程 序 员 下 午 试 卷 ( 考 试 时 间 14:00~16:30 共 150 分 钟 ) 试 题 一 ( 共 15 分 ) 阅 读 以 下 说 明 和 流 程 图, 填 补 流 程 图 中 的 空 缺 (1)~(9), 将 解 答 填 入 答 题 纸 的 对 应 栏 内 [ 说 明

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

第3章.doc

第3章.doc 3 3 3 3.1 3 IT Trend C++ Java SAP Advantech ERPCRM C++ C++ Synopsys C++ NEC C C++PHP C++Java C++Java VIA C++ 3COM C++ SPSS C++ Sybase C++LinuxUNIX Motorola C++ IBM C++Java Oracle Java HP C++ C++ Yahoo

More information

建模与图形思考

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

More information

2 Java 语 言 程 序 设 计 教 程 1.2.1 简 单 性 Java 语 言 的 语 法 与 C 语 言 和 C++ 语 言 很 接 近, 使 得 大 多 数 程 序 员 很 容 易 学 习 和 使 用 Java 另 一 方 面,Java 丢 弃 了 C++ 中 很 少 使 用 的 很 难

2 Java 语 言 程 序 设 计 教 程 1.2.1 简 单 性 Java 语 言 的 语 法 与 C 语 言 和 C++ 语 言 很 接 近, 使 得 大 多 数 程 序 员 很 容 易 学 习 和 使 用 Java 另 一 方 面,Java 丢 弃 了 C++ 中 很 少 使 用 的 很 难 第 1 章 Java 概 述 Java 的 诞 生 Java 的 特 点 Java 开 发 环 境 安 装 与 配 置 创 建 并 运 行 一 个 简 单 的 Java 程 序 Java 语 言 是 当 今 计 算 机 软 件 行 业 中 最 热 门 的 网 络 编 程 语 言, 以 Java 为 核 心 的 芯 片 技 术 编 译 技 术 数 据 库 连 接 技 术, 以 及 基 于 企 业 级

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

JBuilder Weblogic

JBuilder Weblogic JUnit ( bliu76@yeah.net) < >6 JUnit Java Erich Gamma Kent Beck JUnit JUnit 1 JUnit 1.1 JUnit JUnit java XUnit JUnit 1.2 JUnit JUnit Erich Gamma Kent Beck Erich Gamma Kent Beck XP Extreme Programming CRC

More information

ChinaBI企业会员服务- BI企业

ChinaBI企业会员服务- BI企业 商业智能 (BI) 开源工具 Pentaho BisDemo 介绍及操作说明 联系人 : 杜号权苏州百咨信息技术有限公司电话 : 0512-62861389 手机 :18616571230 QQ:37971343 E-mail:du.haoquan@bizintelsolutions.com 权限控制管理 : 权限控制管理包括 : 浏览权限和数据权限 ( 权限部分两个角色 :ceo,usa; 两个用户

More information

PowerPoint Presentation

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

More information

教 务 信 息 教 学 日 常 运 行 工 作 4 月 6 日, 教 务 部 高 丽 琴 老 师 参 加 南 昌 市 教 育 局 2016 年 中 小 学 教 师 资 格 认 定 工 作 培 训 会 2016 年 教 师 资 格 认 定 工 作 是 从 省 考 向 国 考 过 渡 后 的 第 一 次

教 务 信 息 教 学 日 常 运 行 工 作 4 月 6 日, 教 务 部 高 丽 琴 老 师 参 加 南 昌 市 教 育 局 2016 年 中 小 学 教 师 资 格 认 定 工 作 培 训 会 2016 年 教 师 资 格 认 定 工 作 是 从 省 考 向 国 考 过 渡 后 的 第 一 次 教 学 动 态 江 西 农 业 大 学 南 昌 商 学 院 教 务 部 主 办 2016 年 第 3 期 ( 总 第 45 期 ) 本 期 导 读 教 务 信 息 系 部 动 态 督 导 之 声 联 系 电 话 : 0791-83901432 电 子 邮 箱 :18251930216@163.com ( 本 期 共 印 18 份 2016 年 5 月 17 日 ) 教 务 信 息 教 学 日 常 运

More information